Step-1: Final Timesheet Application

The final Timesheet application has four different roles - Admin, Developer, Manager, and an Employee. As explained below, each of these roles has a specific set of permissions to perform tasks:

Employee:

  1. Should be able to create Timesheetdetails for each day and save them.
  1. Should be able to submit a Timesheet for a Timesheet period (1st-15th or 16th to end-of-month in our sample application) when the Timesheet is in Open or Rejected status.
  1. Should be able to set daily reminders to receive an email at a specific time during the day.

Manager:

  1. Should be able to view a list of timesheets submitted by employees for each specific time period and approve/reject timesheets.
  1. Should be able to view the details of each submitted timesheet and approve/reject timesheets.

Developer:

  1. Should be able to enter the lookup data in Timeofftype and Timesheetstatus entities/tables.

  2. Should be able to access Entity Audit add-on to debug production issues.

  3. Should be able to access Reports to setup the Cube.js schema files for ad-hoc end-user reporting.

Admin:

  1. Should be able to create users/roles and assign permissions to users/roles.

  2. Should be able to setup data in four lookup tables - Customer, Project, Task, UserTask.

  3. Should be able to access reports & dashboard functionality for generating administration type of reports & dashboards.

  4. Should be able to access Jobs scheduler to schedule jobs coded by the developer from the back-end.