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
- Auto-scheduling Engine: Generates an optimal two-week schedule in under 30 seconds; supports manual adjustments and re-optimization when changes occur.
- Telegram Bot Integration: Staff receive notifications, view schedules, and submit swap/leave requests in Telegram — response rate increased 4x compared to email.
- QR Code Attendance: Personal QR code check-in via tablets at the entrance of each location; data syncs in real time to the central system.
- Leave Management: Automated approval workflow that checks coverage levels before approving — eliminates scheduling gaps from overlapping leave.
- Payroll Export: Automatically exports attendance and overtime data in the format required by the accounting software, removing end-of-month manual data entry.
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.