
A blood emergency app that finds the nearest matching donor in seconds — Flutter app, Django + Celery backend, real geo-matching. Full source code and report included.
Flutter 3 | Django 4.2 + DRF | Celery + Redis | Firebase Cloud Messaging | PostgreSQL | Riverpod
Someone's family member needs O-negative blood at 2 AM at a hospital in Jayanagar. They open RaktSetu, file a request with the blood group, the hospital location, and how urgent it is. That's it. The backend takes over from there — it runs a Haversine distance calculation against every registered donor, filters out the ones who aren't blood-group compatible, aren't verified, aren't marked available, or donated less than 90 days ago, sorts whoever survives that filter by distance, and fires a push notification to the closest ones first.
The donor gets a notification on their phone. They tap Accept right there. Request status moves from Open to Partially Fulfilled to Fulfilled.
And if nobody responds? A background job widens the search ring — 15 km, then 30, then 50 — on a timer that scales with urgency. Critical requests expire after 6 hours, Urgent after 24, Scheduled after 72. A Celery Beat job sweeps the dead ones out every 5 minutes so the donor feed never fills up with requests from last Tuesday.
core/matching.py, not a fake "nearby donors" list sorted by ID. You can literally change a donor's lat/long in the admin and watch the match order flip.widen_search_task re-runs the match at the next radius ring if the wait window passes with no accepts.python manage.py seed_data gives you donors spread across a city with different blood groups and donation dates, so the matching demo works two minutes after setup.This isn't a made-up problem. Blood banks in India run on WhatsApp forwards and Facebook groups — someone posts "urgent B+ needed at St. John's", it gets shared 400 times, and the six people who could actually help never see it because they're not in that group.
Hospital blood banks could run this to maintain a standby donor pool. NGOs and college NSS units already keep donor registers in Excel sheets; this replaces that. Thalassemia support groups need recurring donors on a schedule, and the 90-day eligibility tracker is exactly the thing they track by hand right now. Corporate CSR blood drives, district-level Red Cross chapters, even a single large hospital covering a 30 km catchment — all of it maps onto what this thing does.
Look — if you're a BCA or MCA student with a submission in three weeks and you need something that isn't the fifteenth "Student Management System" your guide has seen this semester, this is a good pick. Social impact angle, real algorithm inside, two-part architecture. Guides like all three of those things.
It's also right for BTech CSE students who need a major project with genuine backend depth. Celery task queues, Redis, push notification pipelines, geospatial matching — this is the stuff that comes up in interviews, not just in vivas.
Honest bit: if you've never touched Flutter or Django before and your submission is in four days, this will be tight. Doable with our setup session, but tight. If you have two weeks and you're willing to actually read the code, you'll be fine.
Firebase. The backend push pipeline is complete — it builds the payload, logs every dispatch to NotificationLog, handles retries. In dev mode it prints pushes to your console instead of sending them, which means the entire flow works and demos perfectly with zero Firebase account. But to make a real notification land on a real phone, you need your own Firebase project and a google-services.json. Same story for Google Maps — the app has google_maps_flutter wired into the Android manifest, the iOS AppDelegate and the web index, with an empty key slot waiting for your Google Cloud key. Location capture via geolocator works without any key at all.
Both are free to set up. Both take about twenty minutes. Both are covered in the setup session if you'd rather not fight with the Firebase console at midnight.
Dev mode. SMS and FCM both run on console backends locally, and the OTP endpoint returns debug_otp straight in the response body. So the entire login flow — enter number, receive OTP, verify, get JWT — works on your laptop with no Twilio account, no SMS credits, no Firebase. Most students expect to lose a whole day on auth. You'll lose about ten minutes.
You get the complete monorepo — backend/ and raktsetu_app/, each with its own README covering setup commands, the full API endpoint table, and deploy notes. There are systemd units and an nginx config in backend/deploy/ from an actual VPS deployment, not templates someone copied off a blog. The college-format project report comes with it: abstract, literature survey, system design, ER and data flow diagrams, testing, the whole structure your department wants. If something breaks during setup, we get on a call and fix it — that's what the project setup service is for. Browse the rest of our Flutter final year projects with source code or the Django project collection if you want to compare before deciding.
Add any of these professional upgrades to save time and impress your evaluators.
We'll install and configure the project on your PC via remote session (Google Meet, Zoom, or AnyDesk).
1-hour live session to explain logic, flow, database design, and key features.
Want to know exactly how the setup works? Review our detailed step-by-step process before scheduling your session.
Fully customized to match your college format, guidelines, and submission standards.
Need feature changes, UI updates, or new features added?
Charges vary based on complexity.
We'll review your request and provide a clear quote before starting work.
Reviews