Challenge Overview

CHALLENGE OBJECTIVES
The purpose of this challenge is to define the full architecture details for a mobile app, tasks include:
  • Design a fully working backend based on the provided UI mockup, database schema and base code
  • You must provide full details on the syncing implementation, not just a high level description of the API. This is a critical requirement since the number of API endpoints would be small but logic would be complicated.
  • Clearly map different your api endpoints to the steps of the syncing process
 
PROJECT BACKGROUND
  • Our customer is building a full web portal to manage SWMS and a lot of other things. In the meantime they are also building a mobile app to manage SWMS.
  • The purpose of this project is to implement this mobile app to fully support management of SWMS and it needs to work in offline mode as well, making data syncing a critical piece of the implementation.
  • The backend design and implementation must provide full support for this syncing mechanism.
 
DOCUMENTATION
  • UI Design: link provided in forum
  • Please also check the web app prototype to see how SWMS screens flow, you’ll find details on this in the forum
  • Please check this for the database models which is provided in forum
  • Please check this for data model explanation which is provided in forum
  • Finally, please check the business logic requirement here to understand details on sync which is provided in forum
  • Base code that this will be implemented upon
 
CHALLENGE SCOPE
For this challenge, you need to cover the following tasks:
  1. Fully understand how the mobile app is supposed to work and map the UI to the data model we provided, and design a working sync mechanism / algorithm to cover the requirements, make sure you cover everything, some examples are: handling versioning / conflicts, handling transactions (i.e. sync should be either successful or failed, can NOT be partially successful)
  2. You must provide full details on the implementation of this mechanism / algorithm since it’s the core of this task, a submission with only high level details won’t be accepted
  3. You must design this based on the provided data model, any changes to it must be approved in the forum first
  4. Make sure only the specified role(s) can sync data as stated
  5. Define REST API to expose this syncing mechanism to the mobile app (which will be a universal app that runs on both iOS and Android). API design should be provided in Swagger format
  6. Provide details on how the mobile app will use these API to complete the syncing process (both download and upload)
  7. Please keep in mind the backend implementation will be based on the base code we provided in the forum, so make sure it fits into the existing code design (for example: authentication / authorization mechanism)
 
TECHNOLOGY
  • .NET Core 2.1
  • PostgreSQL 10
  • Azure
  • REST


Final Submission Guidelines

WHAT TO SUBMIT
  • A single zip containing all the details we specified in the Challenge Scope section

ELIGIBLE EVENTS:

Topcoder Open 2019

Review style

Final Review

Community Review Board

Approval

User Sign-Off

ID: 30088568