Shiftly was developed as a group project for the Software Engineering and Project Management course at TU Wien (Vienna University of Technology) during the summer semester of 2025.
Shiftly is a web-based application designed to simplify shift scheduling for large organizations. It efficiently assigns employees to shifts while ensuring that each shift meets its required staffing levels. If adequate staffing cannot be achieved, the system automatically notifies the responsible manager via email. Among its key features, Shiftly includes an intelligent shift generation algorithm that considers employee vacations and assigns substitute workers ("jumpers") where needed.
Time spent: approx. 600h total
Powered by https://github.com/lannodev/angular-tailwind Copyright (c) 2024 Luciano Oliveira
Role: System Administrator
- Invite users to the system via email
- Manage departments
- Manage shift schedules across the organization
- View sick leave notifications, including uploaded medical documents
Role: Supervisor
- Manage shift schedules for their assigned department
- Invite users to their department as Employees or Jumpers
- View sick leave notifications for their department, including uploaded documents
- Review and approve or reject vacation requests within their department
Role: Employee
- View personal shift schedule
- Upload sick leave documentation
- Submit vacation requests
- Export personal shift schedule as a .ics file
- Each shift has a defined required headcount.
- Employees are automatically assigned using a rotation algorithm that ensures fair distribution of shifts.
- Approved vacation requests are taken into account during shift planning. * However, unplanned events like sudden resignations or sick leave are not considered.
- If staffing requirements are not met, available jumpers from an external pool are flexibly assigned to fill gaps.
- The jumper assignment algorithm respects individual availability and prevents multiple shift assignments on the same day.
Backend: Spring Boot (Java)
Frontend: Angular (TypeScript)
Database: H2 (In-Memory Database)
You can start the application using Docker Compose by running docker-compose up from the project's root directory.
- Frontend: http://localhost:80
- Backend: http://localhost:8080
- Mailhog Web Interface http://localhost:8025.
Default credentials (password is password for all users):
-
admin@shyft.local - System Administrator
-
Department Production
- alex_doe@shyft.local - Supervisor
- john_doe@shyft.local - Employee
- jane_doe@shyft.local - Employee
- max_doe@shyft.local - Employee
- anna_doe@shyft.local - Employee
- lisa_doe@shyft.local - Employee
- mike_doe@shyft.local - Jumper
- sara_doe@shyft.local - Jumper
-
Department Customer Support
- julia_doe@shyft.local - Supervisor
- david_doe@shyft.local - Employee
- laura_doe@shyft.local - Employee
- chris_doe@shyft.local - Employee
- nina_doe@shyft.local - Employee
- paul_doe@shyft.local - Employee
- eva_doe@shyft.local - Jumper
- mark_doe@shyft.local - Jumper
Light mode
Supervisor - Creation of Shift Plan

Supervisor - Details of a Shift

Supervisor - Vacation Requests

Dark mode







