The Vacation Sysytem Idea is presented in the Object Oriented Analysis And Design textbook, 3rd edition. I worked on designing the system workflow and defining its use cases in detail including Flow diagrams, State diagrams, and ERD diagrams.
- System Features
- All Possible Use Cases
- Manage Time Use Case Details
- The Tools which I used In the project
We will take the rules from the Human Resources department, and establish a system based on them, and the HR employee will be responsible for entering and updating the employees' vacation times and dates in the system
- Implementation of flexible rules for validating and verifying leave time requests.
- Enable manager approval.
- Provide access for the previous 12 months and the next 6 Months.
- Use email notification to notify the manager when a new request and the employee after response.
- Enable the HR and System Admin to override all actions restricted by rules by logging those overrides.
- Allow managers to award personal leave time with system limits directly.
- provide a UI to give the employee a vacation request summary.
- Manage Time [create new Request, Edit pending request, withdraw request, cancel Approved Request]
- Award Time
- Edit Employee Record
- Manage Locations
- Manage Leave categories
- Override Leave records
- Backup system Logs
- Employee
- manage time
- Manager
- Approve or refuse Request
- Award time
- HR Clerk
- Edit Employee Records
- Manage Locations
- Manage leave Categories
- Override Leave Records
- System Admin
- Back-Up System Logs
preconditions: The employee is authenticated to access the vacation System with privileges to manage his vacation dashboard
- The employee clicks on the link to access the vacation system.
- The system uses Employee credentials to look up the current status of the employee's previous 12M and the next 6 months' vacations
- The employee chooses to create a new vacation request.
- The system asks the employee which data and time he wanted for the vacation
The employee should have access to a visual calendar to help select and compare chosen dates.
- The employee selects the desired dates and hours per data with a short title and description. Then submit the request.
- If the submitted information is incomplete or incorrect or doesn't pass the validation, the app displays the request again with errors highlighted and documented
- At this point, the employee can edit any info or cancel the request and remove all info.
- if the request is submitted:
- The employee is returned to the homepage which contains a vacation request summary.
- If the employee’s vacation time requests require manager approval, an e-mail is immediately sent to the manager(s) authorized to approve the employee’s requests.
- The request status should be updated to pending.
- The manager responds to the e-mail by clicking on a link embedded in the e-mail or by explicitly logging into the System
- The manager may be required to supply the necessary authentication credentials to gain access
- The System home page lists the manager’s own vacation time requests and outstanding balances but also has a separate section listing requests pending approval by subordinate employees The manager selects each of these one at a time to individually approve or deny.
- Employee Table:[ EmployeeID (PK), FirstName, LastName, Email, Password, Role (Employee, Manager, HR Clerk, System Admin) ]
- Manager Table: [ ManagerID (PK), EmployeeID (FK) ]
- HR Clerk Table:[ HRClerkID (PK), EmployeeID (FK) ]
- LeaveCategory Table:[ CategoryID (PK), CategoryName, Description ]
- Location Table: [ LocationID (PK), LocationName, Description ]
- VacationRequest Table:[RequestID (PK), EmployeeID (FK), CategoryID (FK), LocationID (FK), StartDate, EndDate, StartTime, EndTime, Title, Description, Status (Pending, Approved, Denied), ManagerID (FK) ]
- OverrideLog Table: [ LogID (PK), Action (e.g., Edit Employee Record, Override Leave Record), EmployeeID (FK), Timestamp, Description ]
- SystemLog Table: [LogID (PK), Action (e.g., Backup System Logs), AdminID (FK referencing Employee Table), Timestamp, Description ]
- The Employee Table stores employee information, including their roles (Employee, Manager, HR Clerk, System Admin).
- The Manager Table and HR Clerk Table establish relationships between employees and their respective roles.
- The LeaveCategory Table stores information about different leave categories (e.g., vacation, personal leave).
- The Location Table stores information about different locations for vacation.
- The VacationRequest Table is the core table for tracking vacation requests. It includes details about the request, such as start and end dates, times, and status. It also references the employee making the request and, if applicable, the manager who approved it.
- The OverrideLog Table logs any actions where HR or System Admin overrides leave records.
- The SystemLog Table logs system-level actions like backups performed by the System Admin.
Here is the Flow Digrams for the Main Flow and the other alternative flows
If you want to access a good recap overview of what I learned in my Object-Oriented-Design journey with the book and my mentor advices, I posted here a one flow chart page containing all of my learning