Software Projects


### Making data available offline

November 2013

Olutindo is a webapp for managing citizen complaints in Uganda. It is the html5 companion to the Olutindo-app Android application, which uses Phonegap/Cordova 3.x. Olutindo uses Coconut for most of its front-end form rendering, backbone.js for MVC, pouchdb for browser-based data store and replication, and CouchDB for the master data store.

Slides for Using PouchDB for PhoneGap/Cordova apps that features technical aspects of Olutindo.

Screenshot of Olutindo


Migrating a Mobile-Couchbase project to PouchDB

October, 2013

Tangerine logo

Tangerine is a tablet/phone application for assessing students. It was originally deployed using Mobile Couchbase, which embedded an Erlang interpreter to provide a mobile CouchDB implementation. I worked with Jeff Rafter to port Tangerine over to PouchDB, which implements the CouchDB API using Javascript and the html5 IndexedDB database API.

Github: Tangerine


Backbone.js and the Stanford Javascript Crypto Library

September, 2013

Tangelo uses the Backbone Comments example as a basis for testing the Stanford Javascript Crypto Library. This project provides some examples how to encrypt data for a PouchDB/CouchDB-based application.

Github: Tangelo


WebGL FTW (eventually)

May 2013

Screenshot of AlloChrome browser and url chooser

WebGL is a Javascript API for creating awesome 3D graphics for games and other apps. Unfortunately (circa 2013) it is not available to developers who wish to create html5 apps using Phonegap/Cordova. I built upon Victor Costan's work on ChromeView by creating an app that tests the performance of 2D and 3D Javascript frameworks - two.js, three.js, and pixi - in ChromeView. A future goal would be to include WebGL tests once that API is available in ChromeView.

Github: AlloChrome

voxeljs projects

Browser-based Games

Summer 2013

I have worked on a few projects supporting VoxelJS, which enables the creation of 3D voxel games like Minecraft in the browser: Screenshot of minecraft-like players with labels Github:


Managing Android Deployments

February 2013

Screenshot of record listing

Andromeda demonstrates how to manage the user registration and management process using Syncpoint-Android. It is a demo of TouchDB-Android and Syncpoint-Android using Apache Cordova (formerly PhoneGap), Couchapp, TodoMVC, and ActionBarSherlock. It is an extension of Android-TouchDB-Cordova, which is a demonstration of the TodoMVC backbone-require app, which has been modified to work as a Backbone boilerplate project. It is based upon Android-Couchbase-Callback.

Github: Andromeda


Form Generation

2011 - 2013

Coconut renders JSON defined forms in a browser and then saves the results to CouchDB. Coconut uses CouchDB for data storage and synchronization, Backbone.js for MVC, backbone-couchdb to connect backbone to CouchDB, and D3 for charts.

Coconut can be run on a computer or installed on a mobile phone or tablet. Some examples:

Screenshot of record listing

Github: coconut

My Repositories and Other Work