Project Report

Project Summary

This project produced a responsive staff management and shift scheduling system for YongAn, a long-term care home. The application replaces disconnected spreadsheet, paper, and phone-based tasks with one system for employees, certifications, availability, schedules, requests, attendance, notifications, and reports.

The most important objective was to improve scheduling reliability. A manager can prepare a schedule, assign employees, and check overlap, rest time, approved leave, availability, expected hours, minimum staffing, and certification coverage before publication. The same scheduling rules are reused when approving an open-shift response or a shift swap.

Completed Outcomes

The system provides secure administrator, manager, and employee roles. Managers can maintain employee and certification records without deleting historical information. They can create schedule periods, add shifts, assign staff, validate coverage, acknowledge a general shortage, and publish the schedule.

Employees can maintain availability, submit time-off requests, respond to open shifts, request swaps, view notifications, and record attendance. Managers can review requests and schedule changes, correct attendance with a reason, and view coverage, hours, and overtime reports.

The manager dashboard summarizes current staff, upcoming warnings, pending work, and certification expiry. Reports use date filters and include a printable layout. Seed data provides thirty employees, three shift types, certifications, schedules, assignments, and attendance for demonstration.

Technical Result

The completed application uses Next.js, React, Express, PostgreSQL, Prisma, and TypeScript. The client, server, and database are separated so that permissions and business rules stay on the server. Passwords use Argon2 hashes, sessions are stored on the server, request data is validated, and protected operations use role checks.

Important multi-record changes use database transactions. Schedule publication validates the current database state, updates schedule statuses, records audit information, and creates notifications as one operation. Historical employee, assignment, request, and attendance records are preserved during normal workflows.

Verification

The final automated test run passed all eight tests across three test files. The server and client production builds both completed successfully. Prisma generation, migration, seed loading, API health checking, sign-in, and all main manager pages were verified in the local environment.

The browser evidence includes the login page, dashboard, employee list, schedule periods, requests, open shifts, attendance, reports, and notifications. The coverage report demonstrates both clear shifts and shifts with staffing or certification issues.

Main Decisions and Lessons

The most difficult part of the project was keeping assignment rules consistent. Direct assignment, open-shift approval, and swap approval are different workflows, but each can create the same overlap, rest, leave, availability, hour, or qualification problem. Moving these checks into a reusable validation service reduced inconsistent behaviour.

It was also important to separate warnings from blocking errors. A manager may need to publish a generally understaffed shift while arranging more coverage, so the system allows this with a recorded explanation. It does not allow the manager to bypass overlap, insufficient rest, approved leave, or missing required qualifications.

The iterative and incremental development model worked well for this project. Authentication and employee data created the foundation for scheduling. Stable scheduling rules could then be reused by requests and swaps. Attendance and reporting were added after published assignments were available.

Limitations and Future Work

External email delivery is not enabled. The application creates notification records, but a production deployment still needs an approved email provider, templates, retry processing, and monitoring. Production use would also require organization-specific privacy review, managed secrets, HTTPS, backups, restore testing, centralized logging, and acceptance testing.

Possible future additions include calendar export, push notifications, recurring schedule templates, configurable overtime rules, payroll export, and administrative audit search. The system should continue to exclude resident and clinical data.

Conclusion

The project delivers a connected scheduling application rather than a group of independent forms. Employee status, certifications, availability, leave, shifts, assignments, attendance, and reports use one relational data model and server-side rules. The result meets the main project objectives and provides a practical foundation for further deployment work.

 

Leave a Reply

Your email address will not be published. Required fields are marked *