1. Project Overview
The EPA is a U.S. federal government agency devoted to safeguarding the environment. One of the EPA's great concerns is the profileration of cyanobacterial harmful blooms (cyanoHABs) in the nation's lakes. The following resources provide information on what cyanoHABs are and how they threaten the environment.
The TopCoder project on cyanoHABs aims to develop an algorithm that will be deployed in an Android app with mapping and data visualization capabilities. The app will inform local and federal policy makers about locations where bloom events are likely to occur, allowing them to concentrate their efforts in those areas.
2. Contest Overview
In this contest, we are looking for you to design the system architecture for complete EPA Android App. There are a series of modules that have already been developed and many more to complete. We want you to use all the available information architecture in form of wireframes, storyboards and conceptualization document in designing this system architecture. We will also provide access to the prototype and front-end that have been already developed. Finally, we will also provide you component design for a component that we are planning to embed into the backend. We will require integration plans for all the currently available and new modules that will be developed after this contest.
We have four major modules in this Android App and following are the short description for each of them:
1.) EPA Android App Front-End: This module has already been developed using Prototype Assembly. We have the prototype available which has all the dummy data and charts available. The architecture must cover the necessary data flow that will be sent to this front-end from the back-end. This module has very heavy UI and very less computation. This is the presentation layer of the App.
2.) EPA Android App Back-End: This module will house all the back-end operations of the app. We envision it to be hosted on a server like Amazon EC2. The backed will contain a computation-intensive prediction algorithm which is going to be developed using Marathon match. The details of algorithm will not be available for this contest. The module will also be responsible for aggregation analysis to be done using the available data which will be sent to this module from the data management module explained next. This module will have very heavy computation, complete automation and very less data computation.
3.) EPA Android App Data Management Module: This module will be responsible for doing all the data-processing tasks. There is a lot of data available in different formats - mostly geo-spatial data and hence it is required to be preprocessed before wither sending it to front-end or sending to the above back-end module for algorithm analysis. All the validation, conversion and standardization of data will be done in this module. In addition to other tasks, this module will also contain a component that will be used for data standardization. We are in development process for this component but we will provide design document of the component.
4.) EPA Android App Admin Website: This is a front-end module for the admins of EPA. This module will be used for uploading all the data and reviewing the results of all analysis that happens in backend. This module is envisioned to interact with data management module by passing data to it. We have a functional prototype website already developed for this module which currently uses dummy data. We will need integration plans for this website too along with above three modules.
3. Data Details
We have two types of input data:
- Image Data : GeoTiff images which has geo-encoded information
- Text Data: Excel files containing data.
The data is in very large amounts. The images will always be GeoTiff. The data management module will have the component which will read all this data and convert into single canonical structure. The component design document will provide information about this process.
4. Technology Overview
1. The Android App front-end has been developed for Android 4.1-4.4 support using android developer tools. It also uses Google Maps Android API v2, AChartEngine 1.1.0 and ProgressWheel.
2. The Data Standardization component (to be embedded in data management module) is being developed in Java.
3. The Admin Website is a CMS developed using Django framework 1.6.1, Python 2.7x and PIL 1.1.7.
4. We are open to use of any technology for the back-end and data management module as far as it does not limit any specific OS requirements.
5. We plan to host the back-end and data management module along with the admin website on a single (same) server - ex. Amazon EC2 Server.
6. Open source software resources are welcome, but they must have third party support services available.
7. Image data is being read using gdal Library.
5. Resources Provided
The following resources have been provided in the forums. You will be able to access it after registration:
1.) Conceptualization Document
2.) EPA Android App Wireframes
3.) EPA Android Website Wireframes
4.) EPA Android App Storyboards
5.) EPA Android App Front-End Prototype
6.) EPA Android Website Prototype.
7.) EPA Android App Data Standardization Design Document.