Register
Submit a solution
The challenge is finished.

Challenge Overview

Challenge Objectives

  • Design the DB schema and API for the project

Project Background

We are building a tool for user to observe, record, and tracking their employee activities within their company/shop/store and gather statistical report in order to gather necessary information for further usage (education, set a SOP, etc). 

Technology Stack

  • Node 12
  • Express
  • MongoDB
  • Ionic + Sqlite for mobile app

Requirements

You are responsible for creating the Swagger API and MongoDB schema for the mobile app. 
The model structure is very intuitive:
Project -> Process -> Task -> Observation

And as you can see on the task screen, when user taps the lap button, an observation is recorded. 
And the observation times are used in all the calculation. You can refer to this google doc for some calculation logic: https://docs.google.com/spreadsheets/d/1rS95AggpN3vPRx5eyamI-RkJ42-nWYrQValhQ-59Uqg/edit#gid=1208160869

Note that task's cycleTime = mean value of all observations in the task
process' cycleTime = sum of cycleTime of its tasks
project's cycleTime = sum of cycleTime of its processes

You can find the latest marvel app here: https://marvelapp.com/76j7jcb
Here are the UI screens descriptions:
  • Here are the UI screens descriptions:
  • Login (2 & 3)
    • Only username/pass is required
    • Social login is not needed
  • Register (4)
    • User can register in this app
  • Projects Screen (5 & 6 & 7)
    • It lists all the projects, and it should support paging
    • On the same row of "process / comments", show the number of tasks in project as well. 
    • User can create, edit, and delete a project
    • User can invite people to the project
  • Project Details (8, 9, 10, 11)
    • It shows the project details, as well the process and task info
    • User can edit or delete the project
    • User can add / edit / delete the process of the project
    • User can view or invite people
  • Process Details (12, 13)
    • It shows the process details.
    • User can edit or delete the process
    • mark as complete - if the task is marked as complete, it cannot be changed again. 
    • User an add / edit / delete the task of the process
    • User can add photo / video to the process
  • Task Details (14 - 17)
    • it shows the task details
    • user can add observations, each lap represents an obversation
    • User can export the observations as Excel file to download
  • StopWatch (18)
    • All Clips - show all tasks  - paging should be supported
    • Favorite Clips - shows the favorite tasks - paging should be supported
  • Help (19) - this screen is static
  • Settings (20, 21, 22)
    • User can logout
    • User can edit account settings, as well upload profile picture
    • User can edit measurement units
  • Create Project (23) 
  • Create Process (24 & 25)
  • Create Task (26, 27, 28) 
    • Calculate Target Time (29, 30)
  • Edit Project (31)
  • Edit Process (32, 33)
  • Edit Task (34, 35)
  • Project Level Report (36, 37, 38)
    • User can export the report as Excel file. The excel file template will be provided. 
    • User can share the report excel file
  • Process Level Report (39 - 43)
    • User can select a date range, and only the observations within the date range will be considered in the report. 


Final Submission Guidelines

  • Swagger YAML file
    • For each API, provide a simple description about how it should be implemented
    • Error cases should be well defined for all APIs.
  • MongoDB Schema
  • UI and API mapping

Review style

Final Review

Community Review Board

Approval

User Sign-Off

ID: 30095797