Judge guide: about 10 minutes, no setup
Everything you need is on this page: ready-to-use accounts, a guided walkthrough from the first search to the admitted patient, and where to find every requirement.
Credentials
Patients and families need no account. Staff, coordinator and administrator accounts are below. Copy a value, or press Sign in and the form is filled for you.
Administrator
admin@bedgrid.testPassword
Admin123456!Hospital staff
Latifabad Teaching Hospital
staff1@bedgrid.testPassword
Staff123456!Referral coordinator
coord@bedgrid.testPassword
Coord123456!Hospital staff
Indus Critical Care Centre
staff2@bedgrid.testPassword
Staff123456!Hospital staff
Hyderabad City Hospital
staff3@bedgrid.testPassword
Staff123456!Pending hospital
Tando Road Community Hospital
pending@bedgrid.testPassword
Staff123456!These are seeded test accounts on fictional data. In a live deployment they are removed and this panel switches off.
The flow
Every screen belongs to one of these eight steps. The walkthrough below follows them in order.
Need
Describe the patient by typing or speaking
Search
Hospitals filtered by resource, service and distance
Match
NEO ranks them and explains every score
Refer
One tap sends a structured referral
Hold
Accepted bed is held for 15 minutes
Transfer
Ambulance GPS and live arrival estimate
Admit
Signed QR or one click admits the patient
Update
Capacity, analytics and audit log update
Guided walkthrough
Steps 1 to 5 are one patient's journey. Use two browser windows: one for the patient and one for the hospital.
Do this
You should see
NEO puts Latifabad Teaching Hospital first even though Hyderabad City Hospital is closer, because that would take Hyderabad City's last ICU bed and ventilator. Under Not suitable, Indus Critical Care is listed with its reason: ICU free but no ventilator. Each result shows its match percentage, travel time and why it scored that way.
Tip: Voice works in Chrome, Edge and Safari. Allow the microphone when asked.
Open Find a bedDo this
You should see
A live timeline starts at Request Sent. The request expires in 10 minutes if the hospital does not answer.
Do this
You should see
One ICU bed and one ventilator move to held on the bed grid with a 15-minute countdown. The tracking tab updates to Accepted without a refresh.
Tip: Two accounts at once need two browser sessions. A private window is the easiest.
Sign in as staff1Do this
You should see
The first GPS fix moves the referral to Patient Transferred automatically. The map shows the ambulance, and the arrival time is labelled Estimated with the formula one tap away.
Tip: On a laptop without GPS, open Chrome DevTools, then More tools, then Sensors, and set a location near Hyderabad (25.40, 68.36).
Use your tracking tabDo this
You should see
The status becomes Admitted, the held bed turns into an occupied bed, and the hospital's capacity and analytics update. The code works once and only for signed-in staff of the receiving hospital.
Do this
You should see
Small edits apply at once. A very large jump is accepted but flagged for admin review. The forecast shows the trend, hours until the resource fills, and its fit quality.
Do this
You should see
Per-hospital capacity, forecasts, referrals, staff and audit trail. The review queue shows the flagged jump and stale hospitals. Every action you took is in the audit log with who, what and when.
Do this
You should see
A comparison table across resources, travel time and data freshness, and a live list of the referrals this coordinator created.
Sample patients
Paste into the description box on Find a bed, or read it aloud with Speak.
Cardiac, ICU plus ventilator (full flow)
Man, 58, chest pain for 40 minutes, sweating and short of breath. Needs ICU with a ventilator.
Expect: Latifabad first, Indus ruled out
Road accident
Motorbike accident, leg bleeding heavily, conscious. Needs trauma bay and emergency bed.
Expect: Trauma and emergency, urgent
Newborn
Newborn, premature, struggling to breathe. Needs NICU.
Expect: NICU only
Urdu, spoken or typed
مریض بے ہوش ہے، سانس نہیں آ رہی، آئی سی یو اور وینٹی لیٹر چاہیے
Expect: Classified as critical: ICU plus ventilator
Roman Urdu
Mareez behosh hai, saans nahi aa rahi, ICU aur ventilator chahiye
Expect: Same result without Urdu script
Seeded scenarios
The test data includes the cases from the brief, so you can see how the system behaves when things are not ideal.
| Hospital | Situation | What to look for |
|---|---|---|
| Hospital A: Latifabad Teaching | 3 ICU beds filling about 1.2 per hour, 2 ventilators | Tops the ICU plus ventilator search. Forecast warns the ICU fills in about 2.5 hours. |
| Hospital B: Indus Critical Care | 4 ICU beds free, 0 ventilators | Ruled out for ICU plus ventilator with the reason shown. Still eligible for ICU alone. |
| Hyderabad City Hospital | Nearest to the demo patient, 1 ICU bed and 1 ventilator left | Last-unit protection: NEO prefers a slightly farther hospital to keep the region a spare bed. |
| Kotri Emergency Hospital | Last capacity update about 3 hours ago | Flagged stale, ranked lower, lowers confidence, and appears in the admin review queue. |
| Tando Road Community Hospital | Registered, not yet verified | Never appears in search. Staff sign-in is refused until the administrator verifies it. |
| Sehwan Road Medical Centre | Suspended by an administrator | Never selected, never receives a referral, visible only in admin. |
What to verify
Live capacity of 10 resource types
General, emergency, ICU, NICU, ventilator, operation theatre, isolation, dialysis, trauma bay and ambulance.
Open the mapNEO network-aware matching
Eight weighted factors, last-unit protection, decision trace and a "why not nearest" sentence.
Run a searchVoice input in English, Urdu and Hindi
Speak the patient description. Urdu and Roman-Urdu keywords are understood.
Try SpeakGolden-hour transfer
Signed ambulance link, live GPS, estimated arrival and single-use QR admission.
Steps 4 and 5Notifications
Bell, unread count, toast, sound and desktop alerts. Patients can opt in without an account.
Step 3No double-booking
Guarded SQL in one transaction. A 20-way race on one bed has exactly one winner.
See the proofAnalytics, forecasting and audit
Regional trends, peak hours, response times, time-to-full forecasts and an audit log.
Steps 6 and 7Honest data
Every figure shows its age. Estimates are labelled. Test data carries a badge.
Requirements coverageProof of correctness
Reservations are the part that must never be wrong, so the tests run against real PostgreSQL, not mocks.
Run the tests
npm install
npm test # 21 tests
npm run race-test # 20 parallel accepts, 1 free bedExpected: exactly one accept wins, the other nineteen are refused, and the database constraint never trips.
Also in the repository
docs/, plus the demo script.Troubleshooting
Click the lock icon in the address bar, set Microphone to Allow, then reload. Voice needs Chrome, Edge or Safari, an internet connection and an https address (localhost also works). Typing always works.
Tiles come from OpenStreetMap and need an internet connection. Hospital markers and everything else still work.
Laptops often have no GPS. In Chrome press F12, open More tools, then Sensors, and set a location. Or open the crew link on a phone.
It is distance multiplied by 1.35 for road winding, divided by 32 km/h (45 km/h for a critical patient), plus 2 minutes. With a routing key it shows real road time in green.
Unanswered requests expire after 10 minutes and unclaimed holds after 15, so capacity returns on its own. Send a new referral to continue.
Five wrong passwords lock an account for 15 minutes. Copy the credentials from this page instead of typing them.
Everything is fictional seeded test data, marked with a banner and Test data badges. Setting HIDE_TEST_DATA=1 hides it, and hospitals register at /register for verification.
Ready to try it?
Start as a patient. It takes under a minute to see NEO explain its choice.