How memonriyaz/wardwatch works
WardWatch is a live hospital ward-capacity and patient-flow system. Staff create and prioritize admissions, assign patients to beds, manage discharge and cleaning transitions, while clinicians update patient records and administrators review hospital capacity. The server persists these workflows and publishes live events to role-specific dashboards. It also monitors operational anomalies and captures shareable shift handovers. The README documents analytics and capacity features whose controller implementations were not sampled, so their wiring is shown only where supported by the repository structure and documentation.
Main entry points: index.js Express API · models Domain records · App.jsx Role dashboards · eventStream.js Event stream
Components 24
Dashboards
- Role dashboards
client/src/App.jsx - Staff dashboard
client/src/pages/staff/StaffDashboard.jsx - Doctor dashboard
client/src/pages/doctor/DoctorDashboard.jsx - Admin dashboard
client/src/pages/admin/AdminDashboard.jsx - Shared handover
client/src/pages/shared/SharedHandoverReport.jsx - Login
client/src/pages/auth/Login.jsx
API and access
- Express API
server/index.js - Authentication
server/src/controllers/authController.js - Domain records
server/src/models
Ward operations
- Admission queue
server/src/controllers/admissionController.js - Queue and bed assignment
server/src/services/admissionService.js - Bed management
server/src/controllers/bedController.js
Clinical and oversight
- Patient care
server/src/controllers/patientController.js - Capacity analytics
server/src/controllers/capacityController.js - Ward analytics
server/src/controllers/analyticsController.js - Escalation monitoring
server/src/services/escalationService.js
Live updates and handover
- Handover snapshots
server/src/controllers/handoverController.js - Scheduled handovers
server/src/cron/handoverCron.js - Event stream
server/src/sse/eventStream.js - SSE endpoint
server/src/routes/sseRoutes.js
Other components
- Nursing staff
- Doctor
- Administrator
- MongoDB
Connections 44
- Nursing staff → Role dashboards: opens dashboard
- Doctor → Role dashboards: opens dashboard
- Administrator → Role dashboards: opens dashboard
- Role dashboards → Login: routes login
- Role dashboards → Staff dashboard: routes staff
- Role dashboards → Doctor dashboard: routes doctor
- Role dashboards → Admin dashboard: routes admin
- Role dashboards → Shared handover: routes shared report
- Login → Express API: authenticates via API
- Staff dashboard → Express API: uses ward APIs
- Doctor dashboard → Express API: uses patient APIs
- Admin dashboard → Express API: uses analytics APIs
- Shared handover → Express API: fetches snapshot
- Express API → Authentication: dispatches auth routes
- Express API → Admission queue: dispatches admission routes
- Express API → Bed management: dispatches bed routes
- Express API → Patient care: dispatches patient routes
- Express API → Capacity analytics: dispatches capacity routes
- Express API → Ward analytics: dispatches analytics routes
- Express API → Handover snapshots: dispatches handover routes
- Admission queue → Queue and bed assignment: queues and assigns
- Admission queue → Domain records: reads and writes
- Queue and bed assignment → Domain records: reads and assigns
- Bed management → Domain records: updates bed state
- Bed management → Queue and bed assignment: processes freed beds
- Patient care → Domain records: updates patient records
- Patient care → Event stream: publishes changes
- Admission queue → Event stream: publishes admissions
- Bed management → Event stream: publishes bed changes
- Express API → Escalation monitoring: runs checks periodically
- Escalation monitoring → Domain records: checks and records alerts
- Escalation monitoring → Event stream: publishes alerts
- Express API → Scheduled handovers: starts scheduled worker
- Scheduled handovers → Handover snapshots: generates snapshots
- Handover snapshots → Domain records: reads ward state and stores snapshots
- Express API → SSE endpoint: mounts event endpoint
- SSE endpoint → Event stream: streams events
- Event stream → Staff dashboard: pushes live updates
- Event stream → Doctor dashboard: pushes live updates
- Event stream → Admin dashboard: pushes live updates
- Domain records → MongoDB: persists records
- Capacity analytics → Domain records: reads capacity data
- Ward analytics → Domain records: reads analytics data
- Handover snapshots → Shared handover: serves shared snapshot