This is a data modeling exercise; the requirements here may not be the same as the requirements for the class project.
Suppose we want to develop a work order system.
A user must first log into the system using a username and a password. A user without an account in the system can register one.
After logging in, a user can create a new work order and view the previous work orders created by the same user.
To create a work order, a user must first select the unit that will service the order. Each unit has one supervisor and one or more technicians, and each unit is responsible for certain type of work. For example, all work orders related to computers and networking should be directed to the unit ITC, and all work orders related to electricity and plumbing should be directed to the unit Facilities Services.
A work order must have a subject (i.e. an one-sentence summary of the work), and optionally, a more detailed description of the work. The location of the work, the contact information of the requester (name, email, and phone number), and the time when the work order is submitted should also be included.
After a work order is submitted, the supervisor of the selected unit should receive an email notification. The supervisor may log into the system, view the work order, and either close it (e.g. if the work order is submitted to the wrong unit), or assign it to one or more technicians. The technician(s) will perform the work and update the status of the work order.
The status of a work order can be: Submitted, Assigned, In Process, On Hold, Completed, Closed. Each time the status of a work order is changed, some comments must be included regarding the status change, and all parties involved (except the one who made the status change) should receive an email notification.