Back to Projects

Case Study

Life-Flow — Blood Donation Platform

A Django-based blood donation platform connecting donors with seekers through real-time matching, ASGI/Channels support, and an intuitive donor management interface. Implemented real-time donor-seeker matching using Django Channels and ASGI.

DjangoPythonDjango ChannelsSQLiteHTML/CSSJavaScript

Life-Flow

— Blood Donation Platform

The Problem

Blood banks and hospitals struggled to find compatible donors quickly during emergencies. Existing systems relied on phone trees and social media posts — slow, unreliable, and poorly targeted. The gap between urgent need and available supply was a coordination failure, not a supply failure.

My Approach

Django for rapid full-stack development with built-in ORM and authentication. Django Channels with ASGI for real-time donor notifications and matching updates. SQLite for zero-config deployment. Modular architecture with a dedicated donor_app containing models, views, forms, and routing.

Architecture

The Django project (hello/) hosts settings, ASGI configuration, and the main donor_app which contains all models, views, forms, templates, and URL routing. Django Channels with ASGI (asgi.py + consumers.py) enables real-time features like live donor availability updates. SQLite serves as the default database with Django ORM managing structured donor and request data. Authentication is handled through Django's built-in system with an admin panel for management. Static files are organized in a dedicated static/ directory alongside HTML templates in templates/.

Challenges

Privacy was the hardest technical challenge. Donors need to be discoverable by blood type and location, but their personal information must remain protected until they explicitly consent to a match. Built a two-layer data model: public profiles contain only blood type and approximate location, while verified contact details are revealed only after mutual opt-in. Integrating Django Channels for real-time notifications required careful ASGI configuration and optional Redis channel layer setup for production scalability.

Outcome

The platform reduced average donor-matching time from hours to minutes in pilot testing. Real-time notifications via Django Channels ensure donors are alerted instantly when a matching request is posted. The geographic filtering eliminated irrelevant notifications — donors only see requests they can realistically fulfill.