RaktConnect
It is an AI-powered blood donation platform that connects donors,hospitals, and patients to ensure timely and efficient blood supply.It optimizes blood availability, reduces shortages, and saves lives
Created on 13th April 2025
•
RaktConnect
It is an AI-powered blood donation platform that connects donors,hospitals, and patients to ensure timely and efficient blood supply.It optimizes blood availability, reduces shortages, and saves lives
The problem RaktConnect solves
--> For Patients: Quickly find available blood, submit urgent requests, AI-powered haemoglobin level and disease predictors .
--> For Donors: Dynamically displays nearby blood banks, track donation history and receive smart reminders for the next eligible donation.
--> For Hospitals: Manage blood inventory, predict blood demands using AI, and connect patients.
Why It’s Better?
Connects patients, donors and hospitals through a single platform
Smart Demand Forecasting → Prevents blood shortages
AI-powered disease predictor → Predicts probable diseases based on user symptons
RaktConnect saves lives by making blood donation smarter, safer, and more efficient!
Challenges I ran into
AI Model Accuracy – Training the Blood Demand Prediction Model
🐞 The Bug/Hurdle
One major hurdle I faced while building the Blood Demand Prediction System was handling MongoDB time-series data efficiently for Prophet model training.
Issues Encountered:
Inconsistent timestamps: Some records had missing or incorrect timestamps.
Slow queries: Aggregation queries for time-series data were too slow, affecting model retraining.
Data format issues: Prophet requires a ds (datetime) and y (value) column, but MongoDB stores dates in different formats.
🔧 How We Fixed It
1️⃣ Standardizing Timestamps
✅ Ensured all timestamps were stored in ISODate format in MongoDB.
✅ Used MongoDB’s
$dateFromString
in aggregation queries to fix incorrect formats.
2️⃣ Optimizing Queries
✅ Indexed the timestamp field to speed up filtering.
✅ Used MongoDB’s "$match" before "$group" to reduce the amount of scanned data.
3️⃣ Preprocessing Before Prophet Training
Transformed MongoDB documents into a clean DataFrame before passing them to Prophet:
import pandas as pd
Fetch data from MongoDB
blood_data = list(mongo_collection.find({}, {"_id": 0, "timestamp": 1, "demand": 1}))
Convert to DataFrame and rename columns
df = pd.DataFrame(blood_data)
df.rename(columns={"timestamp": "ds", "demand": "y"}, inplace=True)
Ensure correct datetime format
df["ds"] = pd.to_datetime(df["ds"])
Technologies used
