Skip to content

lbruton/WhoseOnFirst

Repository files navigation

WhoseOnFirst

Python FastAPI Version Codacy Badge

Automated on-call rotation and SMS notification system for the technical support team.


Overview

WhoseOnFirst manages shift assignments and sends daily SMS notifications to on-call team members. The system uses a simple circular rotation to ensure fair, predictable shift distribution across the team.

Key Features:

  • Role-based access control (Admin/Viewer)
  • Configurable 24-hour and 48-hour shifts
  • Automated 8:00 AM CST daily notifications via Twilio
  • Manual schedule overrides for vacation/sick coverage
  • Drag-and-drop rotation ordering
  • Weekly escalation contact summaries

Technology Stack

Component Technology
Backend FastAPI, Python 3.12
Database SQLite with SQLAlchemy ORM
Scheduler APScheduler
SMS Twilio
Frontend Vanilla JS, Tabler CSS
Container Red Hat UBI9 (OpenShift compatible)

Usage

Access

  • URL: http://localhost:8900/ (dev) or http://localhost:8000/ (prod)
  • Default Admin: admin / Admin123!
  • Default Viewer: viewer / Viewer123!

Change passwords immediately after first login.

Pages

Page Access Purpose
Dashboard All Current on-call, escalation chain, calendar
Team Members Admin Add/edit members, drag-drop rotation order
Shift Configuration Admin Configure shift durations and days
Schedule Generation Admin Generate rotation schedules
Schedule Overrides Admin Manual coverage for vacation/sick
Notifications Admin SMS history and template editing
Help All Twilio setup guide

Docker

# Development (port 8900)
docker-compose -f docker-compose.dev.yml up -d

# Production (port 8000)
docker-compose up -d

Acknowledgments


Version 1.5.0 · Changelog

About

On Call Managment

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages