PIM Fusion FAQ

Introduction

What is PIM Fusion?

PIM Fusion provides web based distributed information management.  The idea is to accumulate knowledge and information in electronic format, upload through the file manager via the web interface, and provide indexing and search capabilities to retrieve the information on demand.  The software provides search capabilities within native document types such as PDF, Word docs, PowerPoint, and HTML.  When used over time, a powerful  knowledge base can evolve.

PIM Fusion includes web enabled support for a File Manager, Contact Manager (with support to sync to cell phone), Calendar, Image / Video gallery, and finally support for terminal sessions through the web browser.

PIM Fusion relies heavily upon open source projects and is a collective mashup of other existing software applications and technologies.

What language is it developed in?

Primarily PHP, but also includes some JavaScript, Ajax, Java and C++.

Disclaimer

PIM Fusion requires a fair amount of Linux know-how to set up, so the setup is recommended only for advanced users.  After the initial setup process, the web interface provides an intuitive and easy to use interface for all users.  I have been enjoying the use of this tool for a couple of years now, however, no guarantees or warranties, including (but not limited to) any express or implied warranties of merchantability or fitness for a particular use or purpose, are made by Aquarius Software.

Installation

System Requirements

Installation Notes

The following installation notes were generated based on a  Fedora 7 Linux installation. 
Your mileage might vary with other distros and versions..

1) Need to have Linux installed and verify that the Apache web server is
   operational.  See the Apache documentation for more details.

2) PIM Fusion uses the wv package for parsing and indexing M$ Word documents. 
   Install this package as root from the support directory using the standard:
   'configure'
   'make'
   'make install'

   The contents should be installed to /usr/local/bin.
  
3) Verify that the software pdftotext is installed if you would like the ability
   to index Adobe PDF documents.  This program is a part of the Xpdf suite at
   http://ftp.foolabs.com/xpdf/.
  
4) Verify that the xls2csv software is installed if you would like the ability
   to index M$ excel documents.  This software and installation instructions
   can be found at http://www.cpan.org/.
  
5) a) Install a Java runtime such as the Sun Java SE Development kit.  If you
      are not planning on making modifications to document indexing used by PIM
      Fusion document searching, then use the Java Runtime (JRE) edition.  See
      the Sun Java installation documentation for more details.
     
   b) If you do not see a home directory in /home for apache, create one
      setting directory permission to the apache user and modify the
      /etc/passwd file accordingly.
     
      'mkdir /home/apache'
      'chown apache: /home/apache'
     
      Example showing the mods for the apache user in /etc/passwd (apache UID
      is 48 in this configuration):
     
      apache:x:48:48:Apache:/home/apache:/sbin/nologin
     
   c) Several env variables need to be defined in apache's environment.  This
      can be accomplished by adding the following lines to the script that
      starts apache (/etc/init.d/httpd).  Setting these variables in the apache
      shell profile doesn't always seem to work, so it is recommended to modify
      this file to provide consistent installation instructions.
     
      find the start() function within /etc/init.d/httpd and add the lines:
     
        HOME=/home/apache
        JAVAHOME=/usr/local/jdk1.6.0_01
        PATH=$JAVAHOME/bin:$HOME/bin:/usr/local/bin:$PATH
        export PATH JAVAHOME HOME

      using your Java path, before the line that starts the httpd daemon:
     
      example before:
     
      start() {
              echo -n $"Starting $prog: "
              check13 || exit 1
     
              LANG=$HTTPD_LANG daemon $httpd $OPTIONS
              RETVAL=$?
              echo
              [ $RETVAL = 0 ] && touch ${lockfile}
              return $RETVAL
      }
     
      example after:
           
      start() {
              echo -n $"Starting $prog: "
              check13 || exit 1
     
              HOME=/home/apache
              JAVAHOME=/usr/local/jdk1.6.0_01
              PATH=$JAVAHOME/bin:$HOME/bin:/usr/local/bin:$PATH
              export PATH JAVAHOME HOME
     
              LANG=$HTTPD_LANG daemon $httpd $OPTIONS
              RETVAL=$?
              echo
              [ $RETVAL = 0 ] && touch ${lockfile}
              return $RETVAL
      }

6) The following instructions assumes the use of /var/www/html as the document
   root of the web server.
  
   a) Remove or move the existing directory at /var/www/html.
  
   b) Recursively copy the subdirectory html within the PIM Fusion directory to
      the location: /var/www/
      'cp -r html/ /var/www/'
  
7) Recursively copy the contents of usr_local to the directory /usr/local/
   respectively.
   'cp -r usr_local/* /usr/local/'
  
8) Install the anyterm/rote tools from the PIM Fusion support directory using
   the installation instructions from the anyterm website.  The web components
   of anyterm should already be installed in /var/www/html/anyterm at this
   point.  If you install a newer version of anyterm, replace the equivalent
   files at this location respectively.  To obtain the latest version of these
   tools, visit:
  
   http://anyterm.org
   http://sourceforge.net/projects/rote.
  
   Note your linux platform equivalents of the following software packages are
   required before installing rote and anyterm:
  
   apr-devel-1.2.2-7.2.x86_64.rpm
   apr-util-devel-1.2.2-4.2.x86_64.rpm
   httpd-devel-2.2.0-5.1.2.x86_64.rpm
 
   Also note that you need to have the line:

   /usr/local/lib

   in the file /etc/ld.so.conf so that the shared libraries will be found.

   After installing anyterm type ldconfig as root to ensure shared libraries
   are properly resolved.
  
   The default user can be set in the file /var/www/html/anyterm/.htaccess.
   Modify the line:
  
      anyterm_command '/usr/bin/ssh username@localhost'


9) Modify the Apache config file /etc/httpd/conf/httpd.conf:

   a) Add the following line to /etc/httpd/conf in the Dynamic Shared Object (DSO)
      Support section

      LoadModule anyterm /usr/lib/httpd/modules/anyterm.so

   b) Add the following code block to the apache directory access section which
      is located at the bottom of file.
  
      <Directory "/var/www/html">
         Options Indexes Includes FollowSymLinks
         AllowOverride All
      </Directory>
     
      <Directory "/var/www/html/phpAutoGallery">
         Options Indexes Includes FollowSymLinks
         AllowOverride FileInfo
      </Directory>
     
10) Install both the Xapian and the modified Omega packages from the support
   directory as the root user.  These packages install using the standard:
   'configure'
   'make'
   'make install'
  
   Issue the following commands from the extracted Omega directory after building:
   'cp omega /usr/local/omega/'
   'cp omindex /usr/local/omega/'
   'cp -r omega_icons /var/www/icons/omega'

11)  Set the proper permissions on directories:
     'chown -R apache: /var/www/icons'
     'chown -R apache: /var/www/html'
     'chown -R apache: /var/www/cgi-bin'
  
12)  Setup the web calendar database.

     a) As the root user, type:
     'mysql'
    
     b) At the mysql monitor prompt create the web calendar database.
     mysql> create DATABASE web_calendar;
     mysql> GRANT ALL PRIVILEGES ON web_calendar.* TO pimfusion@localhost IDENTIFIED BY 'pimfusion';

     c) From a web browser, type in the url:
     http://localhost/calendar/caladmin/create.php

Web Enabled Features.

File Manager

The File Manager is the default control interface for PIM Fusion providing web based file management as well as access to the other components.  Hover over each icon with the mouse pointer to determine the icon's function.

The following functionality is provided by the File Manager:

Document Search and Indexing

Document search and indexing is provided by the Xapian / Omega software.  Additional indexing of M$ documents is achieved through PIM Fusion using Jakarta.  The following document types are currently supported for indexing and search:

To add additional documents to the database to support text searching, simply upload the document to any directory in the File Manager and click the Reindex button within the Document Search page.  The new documents will then be indexed and available for text searches.

Remote terminal sessions

Support for remote terminal sessions through a web browser is provided by the Anyterm / Rote software.  By using a web browser and http protocol, the ssh terminal connection is available without problems encountered by network firewalls.

Image and Video Gallery

PIM Fusion provides an integrated image and video gallery using the SPGM software.  The image gallery supports graphics files in the jpeg, png and gif file formats.  SPGM was modified to additionally support Flash videos using the FlowPlayer flash video software.

A source directory of images must be processed for use within SPGM.  First, the filenames need to be normalized with all spaces removed or replaced with underscores.  After filename normalization, set the source and destination directories in the spgm/tools/make_thumbnails script and execute the script.  Upon completion, the gallery will be viewable within a web browser.

Calendar

PIM Fusion includes a web calendar which is a derived work of the Proverbs web calendar.  The calendar utilizes the MySQL database for storing calendar entries supporting view by year, month, week, or day.

When viewing in year mode, each month of the year is displayed as well as holidays and user defined events.  New user defined events can be added in the webdocs/calendar/userevents.js file.  Example:

   userEvents[index] = {
      text: "Wedding Anniversary",
      month: 3,
      day: 11
   }

The current year displayed can be selected by either selection within the listbox or appending the year to the query string. 
Example: calendar_year.htm?2008.

Contact Manager

PIM Fusion includes a web based contact manager for managing contact information.  The contact manager uses an Excel spreadsheet as a backing store, which allows the data to be readily accessible in M$ format.

The available spreadsheets are displayed in a listbox with the Contact Manager, allowing different groups of contacts to be stored separately.  New spreadsheets can be created by copying the file from webdocs/phpCIM/backup/template.xls to a new name in the webdocs/phpCIM directory.

The spreadsheets contain two macros:

which can be used for exporting the data into VCF or XML formats respectively.

Use Case Scenarios

Web based knowledge base

The following scenario describes using PIM Fusion as a web based knowledge base.
The same approach can be used for M$ Word documents, Power Point Presentations, and Adobe PDFs.

Syncing Contact Information with Cell Phone

The following technique can be used to sync your cell phone with PIM Fusion contacts.

Miscellaneous questions

Why isn't the remote terminal or document search functional in the web demo?

These components of PIM Fusion require web server customization with administrative (root) privilages. 

The web demo is hosted Source Forge so this is not possible, however, these components are complete and functional in the download.

If you have additional questions or want to provide feedback on the PIM Fusion project, please leave feedback in Source Forge.