Challenge Overview

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 proliferation 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

Welcome to third assembly in the series of five EPA Android App Assembly Contests.

In this contest, we are looking for you to develop the module assembly for back-end module of the system of EPA Android App. We want you to use all the available information architecture in system architecture and application requirements specification to develop this module architecture. The EPA Android App system has four modules:

1.) Admin Website Module

2.) Data Management Module

3.) Back-End Module

4.) Front-End Module

We have concluded the architecture contests of all the four modules and we have recently run a contest to sync all the architectures so that they are compatible to each other. On the development end, we have already completed the first two modules  - admin website and data management module and we recently updated them based on the new architectures.

In this contest, we want you to develop the most critical part of the system - Back-end module.

 

enlightened Tips for Success:
  • Asking questions early and getting feedback is very important for the success of this competition.
  • Ask questions if you feel anything is confusing, or if you have any questions on the provided resources.

 

EPA Android App Back-end Module:

This module will be responsible for doing all the back-end operations of the app. It will house prediction algorithm(s) (to be developed separately in marathon match) and statistical analytic engine (to be built as part of this module) in addition to mundane backend tasks of message passing and information transfer. Hence, this module will be computationally intensive and will require great performance consciousness. Please note that performance is the key for this module. So, please make sure to include all possible optimizations so as to make this a very efficient module.

Following are key components for backend:

1.) Prediction algorithm: This algorithm has been developed as a part of marathon match. The current algorithm has been provided in the \Prediction_Algorithm folder. The current implementation is C++ and it runs against PredictionPoint input. The developer will need to write a main method so that the algorithm can be run from command line and will take two arguments:

1. The prediction point as a string (simple number)

2. The output of the file will go the CSV file defined in the second argument. The file structure is defined as: latitude, longitude, sampleDate, value, imageFilename, thumbImageFilename

Note that any value not provided will simply be left blank.

2.) Statistical Engine: We want to house a small statistical engine that will calculate basic statistical values from the provided data. It will also use the same data as provided to the algorithm.

3.) Interaction with Data Management Module

4.) Interaction with Admin Website

5.) Interaction with Front-End

6.) Logging

7.) Extra Tools

Please note: All the above mentioned points have been fully captured in back-end architecture. Please follow back-end architecture thoroughly and in case of any doubt, the latest back-end architecture precedes all other resources. Also we are running this contest in parallel to front-end assembly. Hence, we expect there will be some integration points with front-end which may have to kept open in this assembly. Please mention any such points in your submission and we will cover it in integration assembly.

 

3. Technology Overview

This section provides a comprehensive list of all technologies used in the project. Please refer to back-end architecture for specific technologies relevant to this contest.

Please note that the developers are not allowed to use any component from TC Catalog for this contest.

 4. Process Flow and Storage Considerations

Please follow the Architecture Design completely for process flows and storage.

 5. Resources Provided

The following resources have been provided in the forums. You will be able to access it after registration:

1.) Module Architectures of all four modules

2.) EPA Admin Website and Data management assembly code

3.) Prediction Algorithm

4) System Design Specification and System Architecture TCUML

5.) Application Requirements Specification and Use Case TCUML

6.) EPA Android App front-end prototype



Final Submission Guidelines

We want you to submit the following deliverables:

  • Complete code as required in assembly spec.
  • A complete and detailed deployment guide explaining how to deploy the application including comnfiguration information.
  • Unit Tests to verify that your application successfully meets the requirements.

You can refer here to know more description on the templates and other details related to above mentioned required documents.

Please Note: For Section 508 compliance, this contest must follow the accessibility rules provided here:  http://developer.android.com/guide/topics/ui/accessibility/index.html

ELIGIBLE EVENTS:

2015 topcoder Open

REVIEW STYLE:

Final Review:

Community Review Board

Approval:

User Sign-Off

SHARE:

ID: 30042497