Challenge Overview
Overall Description
We're building an application for construction project managers to track tasks and the number of hours spent on each task. End users frequently need to perform this tracking while on construction sites without Internet access. Currently, they are passing emails back and forth with tracking data, which is then manually reconciled with the central database. We're looking to modernize this process by building an HTML5 web-based application that allows this tracking to occur offline and then syncs to the central database when the user comes online and chooses to synchronize. This will replace/supplement an existing PowerBuilder application currently being run in the main office.
Current Phase (this challenge)
For this phase of the project, we're looking for a proof of concept HTML5 application with the following capabilities:
- Application can be launched while offline
- Application can store data on the local computer
- Application can sync locally stored data when online
UI Requirements
- Must be HTML5
- Input fields to enter data are presented to the user
- A sync button is presented to the user which will sync the data to the online datastore
Offline Requirements
- Application must be able to be launched when offline
- Application will run, by default, in offline mode and all data must be stored locally
- User must be able to request a sync to the central datastore when online (a manual "sync" button)
- Performing the sync will upload changes from the local datastore to the central datastore
- Local changes will take precedence (e.g. will overwrite data on the central datastore)
Other Requirements
- For this challenge, Heroku Postgres should be used as the database backend
Submission Deliverables
- Working proof of concept
- Live Heroku instance serving as the central datastore for this POC (using Postgres)
- Detailed deployment documentation on how to install the front-end application on the end user's system
- Full description of online/offline process flow including how the data is synchronized when online and how the application is installed and launched while offline
- Postgres database dump
Final Submission Guidelines
- HTML5 application
- Heroku for hosting the back end database
- Offline and sync requirements can be assisted with open-source software (such as StrongLoop) or using native HTML5