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
-
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. -
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
-
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
-
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 -
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. -
Reporting
Reporting endpoints to support the following data reports are needed:
- https://marvelapp.com/b4dcj2e/screen/54512814
- https://marvelapp.com/b4dcj2e/screen/54512815
-
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 -
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. -
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