🏥 MediClear
💡 Inspiration
Going to the Emergency Room is already stressful—the worst part? The waiting room. Patients often have no idea when they’ll be seen or what tests they’re waiting for. This fundamental lack of communication creates anxiety and frustration for patients and adds pressure to already overworked healthcare staff.
We wanted to transform the waiting experience from uncertainty into clarity. MediClear bridges the communication gap between hospitals and patients, turning passive waiting into an informed and supportive experience. By incorporating Vivirion-inspired patient wellness and education, MediClear helps patients better understand their care journey while reducing anxiety during ER visits.
🧠 What it does
MediClear is a dual-portal hospital transparency platform that allows triage nurses to communicate patient progress in real time.
📱 For Patients
Patients receive a 6-character access code at triage.
Entering this code unlocks a personalized patient dashboard.
Patient Experience Flow
$$ \text{Patient Arrives} \rightarrow \text{Receives Access Code} \rightarrow \text{Logs Into Portal} \rightarrow \text{Views Treatment Timeline} $$
The dashboard provides:
- Live Tracking: A dynamic timeline showing completed, active, and upcoming steps in the patient's ER journey, along with machine availability when relevant.
- Wait Room Wellness: A suite of clinical anxiety-reduction tools designed to help patients stay calm and supported while waiting.
- Condition-Specific Education (Powered by Vivirion): Patients receive tailored educational modules related to their symptoms, helping them understand possible tests, procedures, and what to expect next.
👩⚕️ For Nurses & Administrators
The nurse interface acts like an ER traffic control center.
Nurse Workflow
$$ \text{Patient Intake} \rightarrow \text{Symptoms Tagged} \rightarrow \text{Diagnostic Steps Assigned} \rightarrow \text{Treatment Stage Updated} $$
The dashboard allows staff to:
- A desktop dashboard that acts like an ER traffic controller.
- Nurses can quickly intake patients, tag symptoms, and drag-and-drop diagnostic steps into a patient’s treatment timeline.
- Staff can advance or revert a patient’s treatment stage with a single click.
- Diagnostic machine statuses can be updated in real time to reflect availability and reduce patient uncertainty.
⚙️ How we built it
MediClear was designed as a cloud-native full-stack healthcare coordination system with two synchronized user interfaces connected through a centralized API layer.
🖥️ Frontend Architecture
The client applications were built using React with Vite for fast development and optimized build performance.
Routing between the Patient Portal and Nurse Command Center is handled through React Router, allowing the application to behave as a seamless single-page interface while still supporting multiple operational dashboards.
We used Tailwind CSS to rapidly prototype a responsive UI system that prioritizes accessibility, clarity, and calm visual design—key for healthcare environments where cognitive load should remain low.
The frontend communicates with the backend through a configurable API endpoint defined via environment variables, allowing the same client build to work across local development and cloud deployment environments.
🧩 Backend System
The backend is a RESTful API built with Node.js and Express, designed to manage patient workflow state and hospital resource data.
API Capabilities
- Patient creation and intake routing
- Treatment stage advancement and rollback
- Machine availability tracking
- Patient lookup via secure 6-character access code
Patient records and facility resource data are modeled using Mongoose schemas, enabling structured validation and consistent state management.
☁️ Deployment
The frontend is deployed globally on Vercel, while the backend API runs independently on Render.
Both services connect to a centralized MongoDB Atlas cloud database.
🧱 System Architecture
MediClear is designed as a distributed full-stack application with two independent user portals interacting through a centralized API layer.
$$ \text{Patient Portal (React)} \qquad \text{Nurse Portal (React)} $$
$$ \Downarrow $$
$$ \text{REST API Layer (Node.js + Express)} $$
$$ \Downarrow $$
$$ \text{Data Models (Mongoose)} $$
$$ \Downarrow $$
$$ \text{MongoDB Atlas Cloud Database} $$
🏗 Infrastructure Layers
| Layer | Technology | Role |
|---|---|---|
| Frontend | React + Vite + Tailwind | Interactive UI portals |
| Routing | React Router | Handles patient vs nurse portal navigation |
| API | Express.js | Central application logic |
| Database | MongoDB Atlas | Persistent storage |
| ODM | Mongoose | Schema validation + data modeling |
| Deployment | Vercel + Render | Distributed hosting |
🔄 End-to-End Workflow
1️⃣ Patient Intake Workflow
$$ \text{Patient Arrives} \rightarrow \text{Triage Nurse Intake} \rightarrow \text{Symptoms Tagged} \rightarrow \text{Diagnostic Steps Assigned} \rightarrow \text{6-Character Access Code Generated} $$
This code acts as a temporary authentication token that allows the patient to view their treatment journey without exposing sensitive hospital systems.
2️⃣ Patient Portal Workflow
$$ \text{Enter Access Code} \rightarrow \text{API Request: GET /patients/code/:code} \rightarrow \text{Patient Data Retrieved} \rightarrow \text{Timeline Generated} \rightarrow \text{Live Journey Visualization} $$
The UI dynamically constructs the patient journey using:
$$ \text{nextSteps[]} + \text{currentStepIndex} $$
Which produces:
$$ \text{Completed Steps} \quad | \quad \text{Current Step} \quad | \quad \text{Upcoming Steps} $$
3️⃣ Nurse Portal Workflow
$$ \text{Patient Record Selected} \rightarrow \text{Advance Treatment Stage} \rightarrow \text{PUT /api/patients/:id} \rightarrow \text{Database Update} \rightarrow \text{Patient Portal Auto-Refresh} $$
This creates real-time synchronization between both portals.
🏥 Machine Resource Tracking
Hospitals often have limited diagnostic equipment.
MediClear tracks machine availability using:
$$ \text{Machine Status} \in {\text{Available},\text{In Use},\text{Maintenance}} $$
When a nurse updates machine status:
$$ \text{PUT /api/machines/:id} \rightarrow \text{MongoDB Update} \rightarrow \text{Updated Status Reflected on Patient Dashboard} $$
Patients can therefore see why delays occur, increasing transparency.
🗄 Data Model
Patient Schema
$$ Patient = { code,, name,, healthCard,, symptoms[],, nextSteps[],, currentStepIndex,, createdAt,, updatedAt } $$
Treatment Progress Calculation
$$ CurrentStep = nextSteps[currentStepIndex] $$
$$ CompletedSteps = nextSteps[0:currentStepIndex] $$
$$ UpcomingSteps = nextSteps[currentStepIndex+1:] $$
This enables dynamic rendering of a patient's journey without storing redundant state.
Machine Schema
$$ Machine = { id,, name,, status,, createdAt,, updatedAt } $$
Where:
( status \in {Available, InUse, Maintenance} )
🌐 API Architecture
| Method | Endpoint | Purpose |
|---|---|---|
| GET | /api/health |
Server health check |
| GET | /api/patients |
Retrieve patient list |
| GET | /api/patients/code/:code |
Patient lookup |
| POST | /api/patients |
Create patient |
| PUT | /api/patients/:id |
Update treatment stage |
| GET | /api/machines |
Retrieve facility resources |
| PUT | /api/machines/:id |
Update machine status |
🔗 Data Synchronization Model
Both portals operate on the same centralized dataset.
$$ \text{Nurse Portal} \rightarrow \text{API} \rightarrow \text{Database} \rightarrow \text{Patient Portal} $$
This architecture ensures:
- Consistent patient state
- Immediate propagation of treatment updates
- Shared visibility between staff and patients
🚀 Future System Extensions
SMS Notifications
$$ \text{Stage Update} \rightarrow \text{Webhook Trigger} \rightarrow \text{Twilio API} \rightarrow \text{Patient SMS Alert} $$
Hospital Data Integration
Future integration with HL7 / FHIR could allow MediClear to pull real-time hospital scheduling data.
$$ Hospital Systems \rightarrow FHIR API \rightarrow MediClear Backend \rightarrow Patient Dashboard $$
🎯 Design Philosophy
$$ \text{Transparency} \rightarrow \text{Reduced Anxiety} \rightarrow \text{Better Patient Experience} $$
By combining clinical workflow visibility, machine resource transparency, and patient education, the platform transforms passive waiting into an informed and supportive healthcare experience.
🧗 Challenges we ran into
One of the biggest engineering challenges was transitioning from a local development environment to a fully cloud-hosted architecture during the hackathon.
When we deployed the frontend to Vercel and the backend to Render, we encountered several cross-origin communication issues (CORS) that prevented the client from successfully interacting with the API. Resolving this required reconfiguring the server middleware and ensuring proper environment-based API routing.
We also encountered schema synchronization issues while evolving the patient workflow system. As we added new fields to track treatment stages and educational modules, several records began returning NaN values due to improper schema validation during stage updates.
Debugging this required restructuring how the patient’s current step index was stored and ensuring that all database updates were properly validated through the Mongoose schema.
Finally, designing a system that simultaneously supports two different user roles (patients and nurses) interacting with the same underlying dataset required careful API design to ensure that state updates remained consistent across both portals.
🏆 Accomplishments that we're proud of
We’re proud that MediClear evolved from an idea into a fully deployed, production-style full-stack platform within the time constraints of a hackathon.
Instead of building a static prototype, we successfully implemented:
- A dual-interface system for both patients and hospital staff
- A live cloud database architecture
- A state-driven patient treatment workflow
- A machine availability tracking system
- A symptom-based educational recommendation engine
Both portals communicate through the same backend API and database, allowing nurses to update patient treatment stages while patients instantly see their journey update on their own dashboard.
We’re also proud of how the system balances technical infrastructure with human-centered design. The Vivirion-inspired wellness tools and educational modules ensure that MediClear doesn’t just track hospital logistics—it actively improves the emotional experience of waiting for care.
📚 What we learned
Building MediClear gave us practical experience designing and deploying a distributed full-stack application under real-time constraints.
We gained hands-on experience with:
- Structuring a React + Express full-stack architecture
- Designing RESTful APIs for multi-role systems
- Managing environment variables across multiple hosting platforms
- Deploying single-page React applications with client-side routing
- Debugging cross-origin network communication
- Building schema-driven database models with Mongoose
Beyond the technical challenges, we also learned how small improvements in transparency and communication can have a large impact on the healthcare experience. Reducing uncertainty for patients in high-stress environments can meaningfully improve both patient wellbeing and staff efficiency.
🔮 What's next for MediClear
SMS Patient Notifications
Integrating Twilio would allow the system to automatically notify patients when their treatment stage advances, allowing them to step away from the waiting room while still staying informed.
Hospital System Integration
Future versions could integrate with healthcare interoperability standards such as HL7 and FHIR, enabling MediClear to pull real-time diagnostic scheduling data directly from hospital systems.
Predictive Wait-Time Modeling
With enough operational data, MediClear could implement machine learning models to estimate wait times, helping patients understand realistic timelines for upcoming diagnostic steps.
Expanded Patient Support
The wellness and education modules could be expanded into interactive guided experiences designed in collaboration with clinical psychologists, helping patients manage stress and uncertainty during medical visits.
Built With
- css
- express.js
- github
- html
- javascript
- lucide
- mongodb
- mongoose
- node.js
- react
- render
- tailwind
- vercel
- vite
Log in or sign up for Devpost to join the conversation.