Inspiration:The idea for Blood Uber began at the hackathon organizers’ meeting on Friday, August 1st, which focused on creating solutions for thalassemia patients. We learned how these patients rely on regular blood transfusions, often needing 8–10 donors every 160 days, and how difficult it is for families to consistently find compatible donors on time.
Hearing about these challenges during the meeting made us realize the need for a systematic, ml-driven solution that could make the process more reliable and less stressful for everyone involved.
What it does:
Blood Uber is a platform built to streamline blood management for thalassemia patients who require 8–10 different donors over a 160-day cycle. It combines a app for patients and donors with machine learning models to automate matching and scheduling.
For Patients Register health details (blood group, transfusion frequency, urgency level). Get automatically matched with compatible donors. View a personalized 160-day transfusion schedule optimized by ML. Receive alerts when a donor confirms availability or when rescheduling is needed.
For Donors Sign up with blood group, health metrics, and availability. Get notified when they are the safest and most compatible match. Track donation history and recovery windows. Earn blockchain-based rewards for consistent participation,which can be used for free health checkups etc.
How we built it:Currently, Blood Uber is powered by mock data to simulate how the system will work once real patient and donor data is integrated. This approach allowed me to focus on building the core logic and interface before connecting actual databases and training ML models.
- Frontend (React + Tailwind + ShadCN UI) Built with React (Vite) for fast development and ShadCN UI for a clean, modern interface. Pages include: Landing Page: Introduces Blood Uber and encourages sign-ups. Login & Role Selection: Chooses between patient or donor roles.
Dashboards: Patient Dashboard: Displays mock schedules, donor matches, and maps. Donor Dashboard: Shows mock requests and donation history. Health Details Form: Collects input, but currently stores it in mock APIs.
Backend (Node.js + Express) Created REST APIs that serve mock JSON data for: Patients (/api/patients) Donors (/api/donors) ML predictions (/api/ml-prediction) Used TypeScript for type safety and ts-node for runtime compilation.
ML Integration (Mocked for MVP) The ML pipeline is simulated using static JSON outputs: Donor matching returns ranked mock donors. Transfusion scheduling returns a pre-generated 160-day schedule.
Future integration will include: Scikit-learn for donor classification. TensorFlow/PyTorch for time-series forecasting. FastAPI or Flask to expose trained models as endpoints.
- Database (Planned) Currently using in-memory mock data. Will transition to MongoDB for patient/donor records and Firebase for real-time updates.
Challenges we ran into:Access to Medical Data
Thalassemia patient data is sensitive and regulated under privacy laws (HIPAA, GDPR). Challenge: Partnering with hospitals or blood banks while ensuring secure data pipelines. Data Quality for ML Models Predicting donor availability and patient transfusion needs requires consistent historical records. Challenge: Missing or inconsistent data can lead to unreliable predictions. Scaling the Matching Algorithm As the number of patients and donors grows, finding optimal matches (blood type, location, scheduling) becomes computationally heavy. Challenge: Implementing efficient matching algorithms without slowing the app. Regulatory Compliance Medical apps often need certifications (like CDSCO in India or FDA approvals elsewhere). Challenge: Meeting regulatory standards while iterating quickly. User Trust & Adoption Patients and donors must trust the system for something as critical as blood transfusion. Challenge: Building transparency in ML predictions (why a donor was matched). Model Drift in Predictions Donor availability and patient conditions may change over time. Challenge: Continuously retraining ML models to adapt to new trends. Infrastructure Costs Running ML models (especially deep learning for forecasting) can be expensive at scale. Challenge: Balancing cloud costs with a free/affordable service.
Accomplishments that we're proud of:A functional MVP without real data
Using mock data, we demonstrated how patients and donors would interact with the platform. The dashboards, health forms, and matching flows already behave like a live system. Seamless API design for future ML integration Even though predictions are mocked, the backend is structured so trained ML models can be plugged in later without rewriting routes. Unified UI despite merging two different projects We combined a landing page from Bolt with the Blood Uber app built in Replit, resolved Tailwind conflicts, and maintained a consistent design using ShadCN UI. Simulated ML behavior Mock APIs produce donor rankings and transfusion schedules, giving a realistic preview of how AI will guide decisions in the full version. Scalable architecture The MERN stack with TypeScript ensures we can expand to real databases (MongoDB) and ML endpoints (FastAPI/Flask) when ready.
What we learned:Mock data can drive real insights
Building APIs and dashboards with mock data helped me identify the exact features the ML model will need later (blood type, availability, donation history, urgency). Designing for future ML is about structure, not complexity By separating prediction endpoints (/api/ml-prediction) from core business logic, we can easily swap in a trained model without breaking the app. UI consistency is harder than expected Merging two Tailwind setups (Bolt landing page and Blood Uber app) taught me how important shared design tokens and CSS variables are for large projects. The complexity of thalassemia scheduling Simulating donor cycles (8–10 donors per 160-day period) gave me a better understanding of the data requirements for realistic ML forecasting. Cross-functional thinking matters This project required me to think like engineers (APIs), designers (user flow), and data scientists (future ML strategy) at the same time.
What's next for Blood Uber:Replace mock ML with real predictive models
Demand Forecasting: Use time-series models (e.g., LSTMs or Prophet) to predict each patient’s transfusion schedule based on historical hemoglobin data. Donor Availability Prediction: Train classification models to estimate donor reliability using donation frequency, past cancellations, and health indicators. Optimal Matching: Implement a recommendation engine that balances compatibility (blood type, proximity) with availability forecasts. Data Pipeline Development Integrate with hospital/blood bank systems to collect anonymized patient and donor data. Use ETL pipelines (Airflow or Prefect) to clean and store data in MongoDB or a data warehouse. API for Real-Time ML Deploy models as microservices (FastAPI/Flask) that the existing MERN app can query via /api/ml-prediction. Introduce confidence scores for transparency (e.g., why a donor was suggested). User Feedback Loop Add a feedback system where patients and donors confirm or decline matches, enabling reinforcement learning to improve predictions over time. Security and Compliance Implement end-to-end encryption, role-based access, and compliance measures for medical data (HIPAA, GDPR). Scalable Infrastructure Move from local mock servers to cloud deployment (AWS/GCP) with containerized services (Docker + Kubernetes) for handling growth.
Built With
- airflow/prefect
- animate)
- cross-env
- custom-css-variables
- docker
- express.js
- fastapi
- framer-motion
- mock-/api/ml-prediction
- mongodb
- nodemon
- optimized-matching-algorithms
- postcss
- prophet/lstm
- react
- shadcn-ui
- tailwind-css
- tailwind-plugins-(typography
- tanstack-query
- ts-node
- tsconfig-paths
- typescript
- vite
- wouter
- xgboost
Log in or sign up for Devpost to join the conversation.