Inspiration

Scheduling is often done through spreadsheets, group chats, or last-minute messages, which leads to confusion, unfair shift distribution, and unnecessary back-and-forth. We wanted to build a tool that makes availability collection simple for workers and schedule creation effortless for managers.

What it does

ShiftFlow is a web-based scheduling platform where workers submit their availability on a calendar by selecting morning and evening shifts for each day. Admins can then generate a full monthly schedule with a single click, automatically assigning workers to shifts based on availability and fairness rules.

How we built it

We built the frontend with React to create a clean, interactive calendar experience for both workers and admins. The backend uses Node.js with Express and MongoDB, secured with JWT authentication. Availability data is stored per worker and per day, and a custom scheduling algorithm processes all worker availability to generate shift assignments. The algorithm takes account for the amount of shift each worker wants per month and makes sure the shifts are distributed equally.

Challenges we ran into

One of the biggest challenges was aligning frontend availability data with backend scheduling logic, especially when handling multiple workers and per-day shift selection. Designing a fair assignment algorithm while keeping the system flexible and scalable also required careful iteration and testing.

Accomplishments that we're proud of

We’re proud of building a fully working end-to-end scheduling system that supports multiple users, real availability data, and automatic schedule generation. The admin can generate a schedule for an entire month in seconds, replacing what would normally take hours of manual work.

What we learned

We learned how important clear data models and consistent contracts between frontend and backend are in full-stack applications. We also gained experience designing role-based systems, working with MongoDB schemas, and implementing scheduling logic that balances constraints and fairness.

What's next for ShiftFlow

Next, we plan to add schedule publishing, worker notifications, manual shift overrides, and improved fairness controls. In the future, ShiftFlow could support different shift types, recurring availability, and analytics to help managers optimize staffing decisions.

Share this project:

Updates