Challenge Overview

Challenge Overview

  • Refactor the existing code to follow the 3-tier architecture

 

Project background

Proteus platform targeted to achieve resource efficiency, focus on Lean process, standards and policies by assisting in automating device on-boarding and device acceptance process

 

More specifically, Platform designed to have integration with NMT tools in order to perform device registration and validation for given devices

 

 

Technology Stack

  • Backend

    • Python 2.7

    • Flask

    • MySql

    • Celery + Flower + Redis

  • Frontend

    • React - React Hooks and Material UI

 

Individual Requirements

 

The existing code has the front-end and back-end code mixed up, we want to refactor the code to follow the 3-tier architecture, so that the front-end and back-end can be deployed separately. 

 

In existing code, some front-end pages are implemented as flask templates, and some pages are implemented with React.js, and these pages are compiled and served by the flask. 

 

After refactoring, all front-end pages should be moved into a front-end project using React.js only, and it will communicate with the back-end through the exposed REST API. For any new or updated React.js code, make sure you follow the same pattern as existing code. 

 

Please also remove the current LDAP authentication, and make the login api return a JWT token, all the other APIs should be protected by the JWT token in Authorization Header. (Note that we will change to use Okta SSO later). 

 

 The existing code will also interact with several external systems:

  • BCG API - you should mockup this API

  • VA (Validation) API - you should mockup this API

  • Devices Connection (check the celery tasks code) - you can define a separate “topcoder-dev” environment variable to skip these code.  

 

We also created a code analysis document earlier for the existing app (using a slightly older codebase), you may find it helpful: https://docs.google.com/document/d/1rmMulEQLEVpCjobz0wl3cbQYIsQFdtlRGblWOSUWmms/edit#heading=h.x296ek6b6z98

 

 



Final Submission Guidelines

Submission Deliverable

  • Source code with two directories for front-end and back-end separately

  • Detailed Deployment and Verification Guide

ELIGIBLE EVENTS:

2020 Topcoder(R) Open

Review style

Final Review

Community Review Board

Approval

User Sign-Off

ID: 30116342