Tree [48331c] master /

File Date Author Commit
WebRoot 2012-10-08 Hilmar Lapp Hilmar Lapp [944235] Fixes issue: #7 (printing of the string "null" ...
doc 2010-02-02 Hilmar Lapp Hilmar Lapp [a63ab0] The PLHDB codebase that is running the database...
lib 2010-02-02 Hilmar Lapp Hilmar Lapp [a63ab0] The PLHDB codebase that is running the database...
src 2011-11-03 Hilmar Lapp Hilmar Lapp [af0a77] Revert "Location of MOU has changed to a Google...
.gitignore 2011-08-08 Hilmar Lapp Hilmar Lapp [5645a6] Excluding build/ directory from being inadverta...
LICENSE 2010-02-02 Hilmar Lapp Hilmar Lapp [a63ab0] The PLHDB codebase that is running the database...
README 2011-01-07 Mark James Adams Mark James Adams [ecaaef] Instructions to create the bulk import schema a...
build.xml 2011-08-08 Hilmar Lapp Hilmar Lapp [d4bcc3] Incremented version number and last year. Some ...
hibernate.reveng.xml 2010-02-02 Hilmar Lapp Hilmar Lapp [a63ab0] The PLHDB codebase that is running the database...

Read Me

Primate Life Histories Online Database


Primate Life Histories is an online database project with database and web interface to archive, manage, search and download individual-based life history data that have been collected from wild primate populations.

1. check out source code to a desired location
2. Install required jar files (see Technology)
3. Create a postgresql database by running the sql scripts under the src/db.sql folder by folliwng order
   1) create tables, including:
      * plhdb.ddl.sql: create major tables to hold scientific data
      * plhdb.audit.sql: create table to store audit information 
      * plhdb.auth.sql: create auth schema with tables to store user and authentication and authorization information
   2) create views: plhdb.views.sql
   3) install the SQL procedural language if it is not already avalable: CREATE LANGUAGE plpgsql;
   4) create table: plhdb.bulkimp.sql: tables for bulk data import
   5) create functions:plhdb.funcs.sql
   6) create rules: plhdb.rules.sql
   7) initialize data: import cvterm data in the file src/db/data/event_types.txt with term relationship defined in src/db/data/cvterms.ttl
4. Create a user with access to the database
5. Compile java classes and generate web application war file
	The web-application is built using Apache Ant. You must have ant installed in
	order to build it. On MacOSX, installing the Developer package (which includes
	the C compiler) will also install ant in /Developer/Java/Ant/bin/ant.

	Properties need to be specified with the '-D' option:
	* project.version: the application version
	* hibernate.database: the hibernate database URL 
	* hibernate.username: the hibernate database user name  
	* hibernate.password: the hibernate database password 

	please use the database user account you created in step 4.    
6. Copy the war file generated in step 5 to Tomcat or Jboss deploy folder
7. Start Tomcat (restart is not necessary for Jboss)
8. The web application should be visible now at


    * Database: PostgreSQL 8.3
    * Database ORM : Hibernate
    * Programming Language: java
    * Web Framework: Sping
    * Other Libraries
          o c3p0 Database Connection Pooling
          o struts
          o dojo

Source Code

Source code is available on GitHub ( and SourceForge ( under a GPL v3 license ( Git repositories are available 
on both Source Forge and Github:
    * SourceForge: git://
    * GitHub: git://

    * Concept, content, and scientific requirements: the Evolutionary Ecology of Primate Life Histories Working Group, Susan C Alberts (Duke University, PI), Karen B Strier (University of Wisconsin-Madison, PI)
    * Database and application programming: Hilmar Lapp (NESCent), Xianhua Liu (NESCent) 



    * The website is maintained by the National Evolutionary Synthesis Center (NESCent).
      2024 W. Main Street, Suite A200
      Durham, NC 27705-4667
      Tel: (919) 668-4551
      Fax: (919) 668-9198
    * Send email to
      leading scientists of the working group (
      report bugs or request technical help (

Released under the GPL v3 license (included)