Project Architecture - ikke6992/specops GitHub Wiki
Database design
This diagram presents our database design. At the center of our system are tasks. The task system is used by users (employees and supervisors). There are also other entities: status, category, department and user roles.
Tasks
Tasks are described using a name and categories. Tasks are assigned to a department and an employee within that department. A task is repeated within a certain interval, and must be completed within a certain timeframe. These properties are stored using the deadline, timeframe and interval rows. Finally, a task has a status. This status informs about the schedule status (pending, planned, overdue). In task records, created after completion, the status informs about completion status (completed, late).
Users
Users are authenticated using an username and password. Users are assigned a role, employee or supervisor. Users are also assigned a department.
Task records
In our database, we will create task records when a task is completed. This task record will be a deep copy of the current version of a task. The only thing that differs is the status, which will be turned into a completion status instead of a schedule status.