ShiftSync is a Spring Boot-based REST API backend for managing workforce scheduling across multiple locations. It handles employee availability, shift assignments, leave requests, notifications, and audit logging, while enforcing role-based access control.
Horizon Hospitality Group (HHG) operates multiple restaurants and retail locations, and shift scheduling is a challenge. ShiftSync provides a clean, well-documented API backend to streamline scheduling, enforce business rules, and prevent conflicts.
Key features:
- Employee and user account management
- Role-based authentication with JWT
- Multi-location and department support
- Employee availability management (recurring & one-off)
- Leave request workflow
- Shift creation, assignment, and conflict detection
- Shift swap requests
- Asynchronous notifications
- Audit logging via Spring AOP
- Reporting endpoints (JSON & CSV)
- OpenAPI/Swagger documentation
- Language: Java 17+
- Framework: Spring Boot 3.x
- Auth: Spring Security + JWT
- Database: PostgreSQL (with Flyway/Liquibase migrations)
- Caching: Spring Cache + Caffeine
- Async: Spring @Async
- Testing: JUnit 5 + Mockito + Spring Boot Test
- API Docs: SpringDoc OpenAPI (Swagger UI at
/swagger-ui.html) - Build Tool: Maven
-
Clone the repository:
git clone https://github.com/eugenenaokye99/shiftsync.git cd shiftsync -
Create and switch to a feature branch:
git checkout -b feature/<feature-name>
-
Build and run locally:
mvn clean install mvn spring-boot:run
-
Access API documentation:
http://localhost:8080/swagger-ui.html
- Main branches:
main(production-ready),develop(integration branch) - Feature branches:
feature/<feature-name> - Pull Requests: Create a PR from your feature branch to
developfor review and CI validation - CI/CD is configured to run build and tests on
main,develop, andfeature/**branches
This project is organized into weekly milestones:
- Foundation & Authentication
- Availability & Leave
- Shift Scheduling & Conflict Detection
- Async Notifications & Swap Requests
- Audit Logging, Caching & Reporting
- Testing, Documentation & Polish
Each milestone includes specific features and checkpoints.
- All passwords are hashed with BCrypt
- JWTs are used for role-based access control
- Audit logs are append-only and stored for all write operations
- Shift conflict detection is enforced before persisting assignments