Hardware
Data Collection
Data collection is done with Palm m130 handhelds. The software however should run on any Palm Pilot running PalmOS 3.x or newer. If needed, the collection software can run on any device which will run java applications targeted at the MIDP 1.0 platform.
Server
The Hov database is currently running a dual Intel Xeon desktop machine for testing and development purposes. Since all the software is cross platform, it may be run on most common hardware platforms including x86 (Intel, AMD, etc) and PPC (Power PCs).
Software
Data Collection
The data collection software is a specialy programmed
Midlet that can be run on
any MIDP 1.0 compatible device. To run on a Palm Pilot, Midp4Palm
is used to package the Midlet into a Palm Pilot .prc file.
Data Retrieval
The data is downloaded from the palm pilots using a custom
HotSync conduit written in Java. The process for creating such a conduit
in Java is detailed in JavaWorld's
"Sync Up Palm OS with J2ME" . Currently the data is dumped into text
files on the user's computer, however soon the data will be directly imported into
the HOV database and marked as Unchecked.
Database
The data is stored in a MySQL database, though with a few changes to the SQL query code, any relational database could be used. Tables which do not require foreign key restraints, and are relatively small are stored as MyISAM tables. Tables which require greater consistancy or contain large amounts of data, such as the records table and the location tables use the InnoDB table format.
For more information about the Database, check the table structure documentation.
Web Server
Apache Tomcat is used to serve up the Hov Database's dynamic content. Almost all of the pages are written using Java Server Pages. To ease page development, various Tag Libraries were used.
The default cascading stylesheet is based on BlueRobot.com's "2 columns - right menu", the original CSS is available here.
The icons used on these pages are from Everaldo's crystal icon theme.
General Site Design
The HOV website is split into resources available to the general public and
restricted pages. Any page that allows a user to modify data in the database
is placed in the restricted area. This section requires that a user have
the hov_admin role.
Any task that are used to modify the contents of the underlying database are generaly broken into 3 or 4 pages. The first is generaly a "view" page which lets an administrator get an overview of the available data. When a user chooses an element to modify, they are taken to an "edit" page where they may enter changes to the data into a web form. The data is then submitted to a "submit" page. If the changes to the data are valid, then the user is returned to the "view" page, otherwise they are taken to the "edit" page with an explanation of the problem.
Alternatively a user may choose to delete an element from the database. In this case they will be taken to a "delete" page where the data is described, and the user is prompted whether or not to delete the data. If the user deletes the data, they will be brought back to the "view" page.
An example of this process can seen in the progression through the following pages:
viewsitedata.jsp: The user selects a site to add data to.editsitedata.jsp: The user specifies the new data.submit_data.jsp: The data is inserted and the user returns to viewsitedata.jsp.