Reference no: EM133356806
Novigrad is a new Canadian province. The new and first government of Novigrad wants to build a system to offer services to residents of Novigrad similar to the services offered by Service Ontario and Services Québec. You have been asked to provide a design for the proposed system. The system should keep track of all different branches of Service Novigrad. A branch is characterized by its address, date the branch entered into service, the opening time, and the closing time. Several employees work at every Service Novigrad branch, and every branch must have one manager. The manager can manage only one branch. The system must support at least two types of employees: managers that can supervise other employees, and regular employees that do not have supervision duties. Different branches of Service Novigrad might offer different services. For example, a branch on Roach st might offer the following services: Driver's license, Photo ID, and Health card. While the branch on Geralt st might only offer the following services: Driver's License, and a Photo ID. To benefit from the offered services, an applicant may submit a service request where they specify their name, email address, phone number, and type of request, and submit any relevant supporting documents. An applicant must submit a service request in person at one branch of Service Novigrad.
Initially, when a service request is created by the user, it is in the invalidated state. The system will perform some basic AI powered checks to filter out applications with wrong or missing critical information. If the application fails the AI processing, it is rejected as incomplete. If it passes the AI processing, it is put in a queue to be processed by the next available employee. An employee can approve an application if it meets all requirements, reject it if the employee is not satisfied with the provided documents, or mark the application as incomplete if it has missing documents. At any time in the process, a manager can re-assign a specific application to another employee, in which case the processing of the application restarts (excluding the AI processing part). In addition, an application might withdraw an application at any time before a decision is made.
Create a state machine diagram that depicts the states a service request goes through after it is submitted.