Back to projects

CallRoster Pro

Automated call-center scheduling that models weekly rosters as a constraint-optimization problem, honoring staff requests fairly under hard rules.

  • Python
  • FastAPI
  • OR-Tools
  • React
  • PostgreSQL
  • TypeScript

Overview

CallRoster Pro

An intelligent workforce scheduling system that automates call center roster planning using constraint optimization. It replaces manual spreadsheet scheduling with an optimized, fair, and rule-compliant roster generated in a single click.

✨ Key Features

👨‍💼 Manager Portal

  • Configure agents, skills, shifts, and departments
  • Define coverage requirements and shift capacities
  • Manage leave balances and public holidays
  • Generate optimized weekly rosters with one click
  • Review, publish, and lock generated schedules
  • Import and export rosters using Excel

👤 Agent Portal

  • Submit leave requests
  • Request preferred off-days
  • Apply for shift changes
  • Request overtime
  • View published schedules from any device

🧠 Optimization Engine

Powered by Google OR-Tools CP-SAT to generate high-quality schedules.

Hard Constraints

These rules are never violated:

  • No double-booking of agents
  • Guaranteed weekly rest days
  • Maximum one shift per day
  • Shift capacity limits
  • Valid skill-to-shift assignments

Soft Constraints

The solver optimizes for:

  • Employee leave and off-day preferences
  • Shift change requests
  • Overtime preferences
  • Balanced workload distribution
  • Coverage targets

💡 Key Design Decisions

  • Graceful Understaffing: Coverage minimums are modeled as soft constraints using shortfall variables, ensuring a feasible roster is produced even when perfect staffing isn't possible.
  • Fairness First: Uses a minimax optimization strategy to distribute denied requests as evenly as possible.
  • First-Come, First-Served Tie-Breaking: Applied only after fairness optimization, ensuring request order never overrides a better overall schedule.
  • Reusable Solver: Database-independent optimization engine that is unit-tested and shared across roster generation and Excel validation.

🔄 Roster Workflow

Draft ↓ Published ↓ Locked

  • Automated scheduling lifecycle
  • Friday night roster generation
  • Monday morning publication
  • Locked rosters prevent accidental modifications

🔒 Security

  • JWT-based authentication
  • Role-Based Access Control (RBAC)
  • Secure API endpoints
  • Protected manager and agent dashboards

🛠️ Tech Stack

Backend

  • FastAPI
  • SQLAlchemy 2.0
  • PostgreSQL
  • Google OR-Tools (CP-SAT)

Frontend

  • React 19
  • TypeScript
  • TanStack Query
  • Progressive Web App (PWA)

Deployment & Infrastructure

  • Cloud Run
  • Supabase
  • Vercel

Additional Tools

  • openpyxl (Excel Import/Export)
  • JWT Authentication

Interested in something similar?

I'm open to new projects and collaborations — let's build something great together.

Get in touch