How shanigarapusheshanth2007-wq/hackathon works
MediGrid coordinates emergency bed reservations and inter-hospital transfers: ambulance requests enter the API, which finds and atomically holds a suitable bed, records patient state and an outbox event, then returns a result to clients. RabbitMQ distributes events to independent tracker, notifier, audit and transfer-saga workers; a sweeper releases expired holds. Redis arbitrates live availability, while Postgres keeps the durable ledger. The README documents the browser map, hospital console and operations dashboard; unsampled UI and worker details are represented at their documented paths, not treated as inspected source.
Main entry points: api.js REST and WS API · db.js Postgres ledger · events.js Outbox and relay · redis.js Redis bed state
Components 20
Clients and entry
- Browser clients
public/index.html - Load simulator
src/sim/cli.js - nginx gateway
nginx.conf
API workflows
- REST and WS API
src/api.js - Bed dispatch
src/api.js - Transfer requests
src/api.js - Ops and replay
src/api.js
Event processing
- Outbox and relay
src/lib/events.js - RabbitMQ topology
src/lib/mq.js - Occupancy tracker
src/workers.js - Notifications
src/workers.js - Audit and dead letters
src/workers.js - Transfer saga
src/workers.js - Hold sweeper
src/workers.js
State and infrastructure
- Hospital seeding
src/seed.js - Runtime configuration
src/config.js - Redis bed state
src/lib/redis.js - Postgres ledger
src/lib/db.js
Live operations
- Metrics
src/lib/metrics.js - Realtime fan-out
src/lib/rt.js
Connections 40
- Browser clients → nginx gateway: REST and WebSocket
README.md - nginx gateway → REST and WS API: routes requests
README.md - Load simulator → REST and WS API: posts demo requests
src/sim/cli.js - REST and WS API → Bed dispatch: handles dispatch
src/api.js - REST and WS API → Transfer requests: handles transfers
src/api.js - REST and WS API → Ops and replay: serves ops and replay
src/api.js - REST and WS API → Redis bed state: reserves and reads beds
README.md - REST and WS API → Postgres ledger: records patient state
src/api.js - REST and WS API → Outbox and relay: emits events
src/api.js - REST and WS API → Hospital seeding: seeds and syncs
src/api.js - REST and WS API → Metrics: records metrics
src/api.js - REST and WS API → Realtime fan-out: publishes bed updates
src/api.js - Bed dispatch → Redis bed state: atomic reservation
README.md - Bed dispatch → Postgres ledger: stores patient
src/api.js - Bed dispatch → Outbox and relay: writes outbox event
src/api.js - Transfer requests → Redis bed state: holds receiver bed
README.md - Transfer requests → Postgres ledger: stores transfer
src/api.js - Transfer requests → Outbox and relay: emits transfer event
src/api.js - Ops and replay → Postgres ledger: reads dead letters
src/api.js - Ops and replay → RabbitMQ topology: replays messages
src/api.js - Hospital seeding → Postgres ledger: seeds hospitals
src/seed.js - Hospital seeding → Redis bed state: rebuilds bed state
src/seed.js - Outbox and relay → Postgres ledger: writes outbox
src/lib/events.js - Outbox and relay → RabbitMQ topology: relays confirmed events
src/lib/events.js - RabbitMQ topology → Occupancy tracker: delivers events
README.md - RabbitMQ topology → Notifications: delivers events
README.md - RabbitMQ topology → Audit and dead letters: delivers events and DLQ
README.md - RabbitMQ topology → Transfer saga: delivers events
README.md - Occupancy tracker → Postgres ledger: updates occupancy
src/workers.js - Notifications → Postgres ledger: stores notifications
src/workers.js - Notifications → Realtime fan-out: publishes notifications
src/workers.js - Audit and dead letters → Postgres ledger: records audit and DLQ
src/workers.js - Transfer saga → Postgres ledger: updates transfers
src/workers.js - Transfer saga → Redis bed state: releases source bed
src/workers.js - Transfer saga → Outbox and relay: emits completion events
src/workers.js - Hold sweeper → Redis bed state: releases expired holds
README.md - Hold sweeper → Outbox and relay: emits expiry events
src/workers.js - Occupancy tracker → Metrics: records processing
src/workers.js - REST and WS API → Realtime fan-out: streams updates to clients
README.md - Realtime fan-out → Redis bed state: publishes and subscribes
src/lib/rt.js