Register
Submit a solution
The challenge is finished.

Challenge Overview

Challenge Objectives

 

  • Implement Rest API in Python/Flask/MongoDB

 

Project Background

  • Telecom providers sell products such as broadband and mobile phone contracts. These contracts consist of products of different types and capabilities and that are then sold in different markets. In this project we’re building a forecasting tool to predict variables like volume base, gross adds, churn, net migrations, average revenue per customer, etc

  • We’re implementing the application backend in this challenge

  • In the follow-up challenges we will integrate with the frontend and third party APIs and build a test suite.

 

Technology Stack

 

  • Python

  • Flask

  • MongoDb

 

Code access

 

The base code is available in the forums and contains user build & configuration instructions and user management endpoints. API specification document (swagger) is available in the repository. 

 

Individual requirements

 

Base code already contains endpoints for security and user management. The following endpoints are in scope of this challenge: 

  1. Security (/me, /resetPassword, /forgotPassword)

  2. Data import endpoint (sample document is provided in the forums)

  3. Forecasting endpoints
    These endpoints allow the user to create a new forecast, update an existing one (ex lock it), get forecast values, list existing forecasts etc

  4. User settings
    These endpoints save user settings - favourite charts, chart settings

  5. Lookup endpoints
    These endpoints provide raw lookup values for various dropdowns in the app

 

General requirements

 

  • Unit tests are out of scope.

  • All configuration parameters should be extracted to a common settings module. Sensitive configuration parameters should be set from environment variables (DB URL, credentials, etc).

  • Logging is required for all service calls

  • Base code contains lint configuration and your submission should pass the same lint checks (PEP8, etc)

What To Submit

 

  • All source code

  • Deployment guide

  • Postman collection containing sample calls for all endpoints (success/failure)

  • Verification guide - how to set up the environment, start the API, and verification screenshots



Final Submission Guidelines

See above

ELIGIBLE EVENTS:

Topcoder Open 2019

Review style

Final Review

Community Review Board

Approval

User Sign-Off

ID: 30094577