Haiti Reporter

One of the websites I’ve built is Haiti Reporter. You can find the source code here on GitHub. Haiti Reporter is a database used to track gender-based violence (such as rape) in Haiti. Once installed, authorized users can create, edit and delete records, upload files such as PDF’s and WAV’s to a record, automatically create monthly reports in various formats including Excel, and create and delete users. The database is automatically backed up each night onto a different secure server, and logins are secure over SSL. I wrote it in PHP with a little Javascript, and the server runs Linux, Apache and MySQL. The source code has been released under the GPL.

Haiti Reporter could be adapted as a database frontend for any kind of data. It was built without the use of any frameworks to magically take care of database tables, which means the source code does not adhere to the “don’t repeat yourself” principle. The good news is, for a beginner trying to learn how to use PHP and MySQL, the code could not be any more straightforward. This project is more useful as a learning tool for a beginning programmer than actual deployment.

I used the book Learning PHP, MySQL and Javascript to build Haiti Reporter. Some parts of the book are outdated, in particular, the portion about passwords should use bcrypt instead. But to its credit, the book makes building a modern website easy enough for a first-time web developer.

If I were building Haiti Reporter again, I would use a modern framework like Drupal or Django to greatly simplify editing the database interactions. Despite this, the code functions perfectly, and the team in Haiti has collected data from over 600 victims.


One thought on “Haiti Reporter

  1. human mathematics says:

    Ah. This is where you worked up the bare LAMP stack w/o using a framework.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: