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
- Intel Pentium 4 equivalent or faster processor
- Linux, BSD, or Unix like OS
- MySQL database server installed
- Apache web server installed
- Sun Java SE Development Kit
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:
- Copy or Move a file or directory
- Delete a file or directory
- Create a compressed archive of a directory
- Expand a compressed directory archive
- Create a new file or directory
- Edit a text file
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:
- PDF
- M$ Word
- M$ PowerPoint
- HTML
- Text
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.
- A web site is identified as content desired to be added to the
PIM Fusion knowledge base
- Using a web browser such as firefox, the site is saved to the
local file system.
- An archive is created using the site files saved locally
(filename and associated directory) in a zip or tar file
- The zip file is uploaded to PIM Fusion via the file manager
- The archive is expanded using the expand archive function within
the PIM Fusion file manager
- The PIM Fusion content is reindexed using the Document Search tool
- The content is then searchable within PIM Fusion
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.
- Purchase or download a 3rd party software for your cell that
allows importing contact data. (Requires phone to have a USB or
Bluetooth connection)
- Download the Excel Spreadsheet containing the contact information
that is desired to be exported
- Execute the macro within the spreadsheet to export contact data
to VCF or XML format
- Import the VCF or XML data into the 3rd party software cell phone
software
- Use the phone software to sync to your cell phone
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.