URL: https://lifelinedoc.netlify.app
![]() |
![]() |
![]() |
![]() |
Emergency Help in Seconds - A medical emergency coordination demo app for filming and prototype walkthroughs.
LifelineDoc is a frontend-only SPA that simulates medical emergency coordination in real time. There is no backend; all flows use local state and mock data to support demo and filming scenarios.
- User opens
/(landing + splash). - User either:
- signs in via
/login(role selected in the login form), or - selects role via
/select-roleand creates account on/signup.
- signs in via
- App stores selected role (
patient,doctor, orambulance) in auth context and redirects to/dashboard.
- Patient dashboard: SOS button, profile snapshot, emergency contacts, quick access to doctors/ambulances/health.
- Doctor dashboard: incoming emergency simulation and quick action to open doctor emergency POV.
- Ambulance dashboard: dispatch-oriented overview and quick action into ambulance view.
When a patient starts SOS, the emergency session advances through mock states:
INITIATEDSEARCHING_DOCTORDOCTOR_FOUNDCONNECTING_VIDEOVIDEO_CONNECTEDDISPATCHING_AMBULANCEAMBULANCE_ASSIGNEDAMBULANCE_EN_ROUTESUMMARY_SYNC
Supporting pages:
/emergency- patient emergency timeline/session view/doctor/emergency-pov- doctor perspective/ambulance- ambulance perspective
| Route | Description |
|---|---|
/ |
Landing page |
/login |
Sign in (role required) |
/select-role |
Role selection before signup |
/signup |
Account creation using selected role |
/dashboard |
Role-aware home dashboard |
/emergency |
Active emergency session (patient) |
/doctor/emergency-pov |
Emergency handling (doctor) |
/ambulance |
Active dispatch view (ambulance) |
/doctors |
Registered doctors list |
/ambulances |
Available ambulances list |
/health |
Patient health & wellness dashboard |
/notifications |
Notifications center |
.
├── public/
│ ├── assets/ # App logos and static visual assets
│ ├── manifest.json # PWA manifest
│ └── sw.js # Service worker
├── src/
│ ├── components/
│ │ ├── ui/ # shadcn/ui primitives
│ │ ├── BottomNav.tsx
│ │ ├── PwaInstallManager.tsx
│ │ ├── VideoCallUI.tsx
│ │ ├── StatusLog.tsx
│ │ ├── DoctorCard.tsx
│ │ ├── AmbulanceCard.tsx
│ │ └── ...
│ ├── context/
│ │ └── AuthContext.tsx # Current role/auth state
│ ├── data/
│ │ └── mockData.ts # Mock users, doctors, ambulances, patient data
│ ├── hooks/
│ │ ├── useEmergencySession.tsx
│ │ └── ...
│ ├── pages/
│ │ ├── Landing.tsx
│ │ ├── Login.tsx
│ │ ├── RoleSelect.tsx
│ │ ├── Signup.tsx
│ │ ├── Dashboard.tsx
│ │ ├── Emergency.tsx
│ │ ├── EmergencyDocPOV.tsx
│ │ ├── AmbulanceView.tsx
│ │ ├── DoctorsList.tsx
│ │ ├── AmbulancesList.tsx
│ │ ├── Health.tsx
│ │ └── notifications.tsx
│ ├── services/
│ │ └── mockEmergencyService.ts
│ ├── types/
│ │ └── emergency.ts
│ ├── App.tsx
│ └── main.tsx
├── index.html
├── vite.config.ts
└── package.json
- React 18 + TypeScript
- Vite
- Tailwind CSS
- shadcn/ui components
- React Router 6
- TanStack Query
- PWA support
- Node.js 18+
- npm
npm install
npm run devnpm run build
npm run preview- Authentication is simulated (no real backend).
- Emergency progression is mocked for demo predictability.
- Video, maps, and dispatch integrations are visual simulations.



