Back to projects
SaaS/AppsLive

Duty Roster

HR and duty scheduling — auto shift assignment, attendance tracking, Telegram bot integration.

80%faster scheduling
ReactNode.jsMongoDBDocker

Overview

Duty Roster is an HR and shift scheduling system built for a medical clinic chain with 8 locations and over 200 staff members, including doctors, nurses, receptionists, and technicians. Each location operates 7 days a week across 3 shifts, creating an extremely complex scheduling problem.

The system not only automates shift assignment but also integrates QR code attendance tracking, leave request management, and staff communication via Telegram bot — all within a unified platform that helps HR and operations managers run the clinic chain more efficiently.

The Challenge

Scheduling for medical staff is far more constrained than in most industries: specialist doctors cannot be on the same shift without adequate coverage, nurses must meet minimum experience requirements per ward, and labor law specifies maximum weekly hours and minimum rest days between night shifts.

Before Duty Roster, the HR manager spent two full days every week building schedules manually in Excel — and still regularly had conflicts when staff swapped shifts or requested sudden leave.

Our Solution

Ventra Rocket built a constraint satisfaction (CSP) scheduling engine that automatically generates an optimized two-week roster in under 30 seconds, ensuring all hard constraints are satisfied while maximizing staff preference fulfillment based on pre-registered preferences.

The Telegram bot integration lets staff check their roster, submit shift-swap requests, receive next-week schedule notifications, and get upcoming-shift reminders — all inside the messaging app they already use, with no additional app to install.

Key Features

Impact & Results

Scheduling time dropped from 2 days per week to 2 hours per week — an 80% reduction. Schedule conflicts fell 95% because the engine validates all constraints before publishing. Staff satisfaction improved because rosters are published earlier (Monday instead of Friday) and accessible on mobile at any time.

Attendance discrepancies dropped to near zero, saving HR an average of 15 hours per month previously spent handling attendance complaints. Payroll export integration saves an additional 8 hours of manual data entry each month.

Tech Stack Details

React with TypeScript powers the complex scheduling UI — enabling intuitive calendar view and drag-and-drop schedule adjustments. Node.js with Express handles the API and runs the scheduling engine at high throughput. MongoDB stores shift roster data with the flexible document schema well-suited to the hierarchical data structure (location → ward → staff → shift). Docker ensures consistent deployment across 8 clinic locations with different environment configurations.

Duty Roster — Intelligent HR & Shift Scheduling | Ventra Rocket