Challenge Overview

 

Challenge Objectives

 
  • Design API specification (Swagger)

  • Design database entity models

 

Project Background

 
  • Desktop Deployment Management Tool application - a web application to help the desktop migration team in managing activities at customer end. The tool will help in quick view of user and asset (desktop data including OS,applications & hardware), rationalize and report asset categories, validate user information and help in scheduling migration activities through automated emails.

  • Application frontend interface will be built based on the previous designs and Angular styling package. In the following challenges we will develop the backend API, integrate with the frontend and build a test suite.

 

Technology Stack

 
  • Swagger Open API Specification

  • ERD

  • SQLite

 

Resources

 

Application frontend design is available at https://marvelapp.com/b4dcj2e/screen/54512822 . See the below description for individual screen features.

 

Individual requirements

  1. Authentication
    Application will support two user types:
    - admin users (login required) - most of the application screens will be used by admin users only
    - self service - users will open a magic link (delivered via email) and will be automatically logged in.

  2. Data import and onboarding
    Data import screen allows the user to import the raw data about users/applications/computers into the app. We will support only csv import at this point, (SCCM, AD and HR options are out of scope). Once raw data is imported, the user has the option to onboard it into a project (so project is essentially a grouping for a single migration activity - ex “Upgrade Win7 to Win10 for Marketing Department”. User will select the records from the database that aren’t already onboarded to a different project and click the “Publish” button. That will create a new project record with the selected migration data records (users, computers, applications and departments). There will need to be an endpoint to list all the records in the database for displaying in the application dashboard. Sort and filter operations will be handled on the client side as the number of records will not be large.
    Screens in scope:
    - https://marvelapp.com/b4dcj2e/screen/54512826
    - https://marvelapp.com/b4dcj2e/screen/54512825
    - https://marvelapp.com/b4dcj2e/screen/54512828
    - https://marvelapp.com/b4dcj2e/screen/54512827
    - https://marvelapp.com/b4dcj2e/screen/54512829
    - https://marvelapp.com/b4dcj2e/screen/54512832
    - https://marvelapp.com/b4dcj2e/screen/54512831
    - https://marvelapp.com/b4dcj2e/screen/54512834
    - https://marvelapp.com/b4dcj2e/screen/54512833
    - https://marvelapp.com/b4dcj2e/screen/54731073
    - https://marvelapp.com/b4dcj2e/screen/54512836
    - https://marvelapp.com/b4dcj2e/screen/54512835
    - https://marvelapp.com/b4dcj2e/screen/54512838
    - https://marvelapp.com/b4dcj2e/screen/54512837
    - https://marvelapp.com/b4dcj2e/screen/54512840
    - https://marvelapp.com/b4dcj2e/screen/54512839
    - https://marvelapp.com/b4dcj2e/screen/54512817
     

  3. Migration schedule planning
    Schedule planning screen enables admin to configure which teams are available on particular days for migration (and setting up the capacity for each team) - this will be used in the self service screens to enable/disable some dates based on the migration team availability. Also, this screen shows a calendar with scheduled migrations for all teams
    Screens in scope:
    - https://marvelapp.com/b4dcj2e/screen/54512816

 
  1. Self service
    There are two self service sections: selecting the migration date and filling out post migration survey. In both cases the user will visit the page through a magic link (delivered via email) and the app has to save migration data (date, applications list, comment, etc). Survey responses can be saved in json format (note that survey questions list is configurable, see settings section)
    Screens in scope:
    - https://marvelapp.com/b4dcj2e/screen/54512818
    - https://marvelapp.com/b4dcj2e/screen/54512819
    - https://marvelapp.com/b4dcj2e/screen/54666110
    - https://marvelapp.com/b4dcj2e/screen/54666111

  2. App readiness
    App readiness screen enables the admin to set the status of each application that should be migrated. All the applications are listed on this screen and there is no pagination/sorting/filtering.

  3. Reporting

Reporting endpoints to support the following data reports are needed:
- https://marvelapp.com/b4dcj2e/screen/54512814
- https://marvelapp.com/b4dcj2e/screen/54512815

  1. Settings
    There are two setting sections that are available to the admin: email template settings and survey forms settings. Email templates will support placeholders. Each template is used to send reminder emails at defined periods (ex T-20 template is used to send a reminder email 20 days before the actual migration, T1 is used to send an email 1 day after the migration). There will be a separate job that will send out the emails. NOTE: Email templates are specific for a project (each project has a different set of templates) - remove the "Group" and "Migration type" fields on schedule configuration screen
    Screens in scope:
    - https://marvelapp.com/b4dcj2e/screen/54666106
    - https://marvelapp.com/b4dcj2e/screen/54666107
    - https://marvelapp.com/b4dcj2e/screen/54666109
    - https://marvelapp.com/b4dcj2e/screen/54710928
    - https://marvelapp.com/b4dcj2e/screen/54710927
    - https://marvelapp.com/b4dcj2e/screen/54666111

  2. ER Diagram
    Create an Entity relationship diagram that will map the application data to database tables. We will use SQLite as the main database so use SQLite native data types.

  3. Screen api calls mapping
    Create a document that maps API calls to the individual application screens - a simple spreadsheet that lists all the api calls for each screen will be sufficient

 

General for all requirements

 

Use camelCase for all JSON data attribute names, TitleCase for table names and camelCase for columns.

 

What To Submit

 

Submit a Swagger API specification

Submit an ER diagram

Submit api calls to screen mapping diagram



Final Submission Guidelines

Submit a Swagger API specification

Submit an ER diagram

Submit api calls to screen mapping diagram

ELIGIBLE EVENTS:

Topcoder Open 2019

Review style

Final Review

Community Review Board

Approval

User Sign-Off

ID: 30087015