All Projects
Intermediate · Case Study

Blood Donor Application

Connecting donors with recipients when it matters most.

A full-stack platform that bridges the gap between blood donors and recipients — with donor registration, blood bank inventory management, emergency request broadcasting, and location-based matching built into a single healthcare web application.

JavaScriptHTMLCSSPHPDatabase
Live DemoGitHub
Blood Donor Application

The Problem

What needed solving.

In a medical emergency requiring blood, the bottleneck is almost never availability — it is discovery. Hospitals have blood but don't broadcast it. Donors are willing but don't know who needs them. Family members post frantic requests on WhatsApp and hope someone sees it in time. There is no structured, reliable system connecting these two sides.

The Solution

How I solved it.

A centralised platform where donors register with blood type and location, blood banks update their inventory in real time, and recipients post emergency requests that are matched and broadcast to compatible nearby donors — with email and SMS notifications triggered automatically.

Features

What it does.

Donor Registration & Profiles

Donors register with blood type, location, availability status, and last donation date. The system enforces the 3-month donation interval and marks donors as eligible/ineligible automatically.

Donor Registration & Profiles

Emergency Request Broadcasting

Recipients post blood requests with type, units needed, hospital, and urgency. The system finds all eligible donors of the matching type within a configurable radius and sends immediate notifications.

Blood Bank Inventory

Blood banks maintain live unit counts per blood type. The system flags critical stock levels and surfaces nearby banks with available inventory to requesting hospitals.

Donor Finder

Public search for available donors by blood type and city — for non-emergency situations where family members are organising donations in advance.

System Architecture

How it's built.

FrontendHTML + CSS + JavaScriptDonor portal, request form, blood bank dashboard
BackendPHPREST-style endpoints, business logic, email triggers
DatabaseMySQLDonors, requests, blood banks, inventory tables
HostingVercel + PHP serverFrontend on Vercel, PHP backend on shared hosting

Technology Stack

Frontend

JavaScriptHTML5CSS3

Backend

PHP

Database

MySQL

Challenges & Solutions

Real problems, real fixes.

Challenge

Matching donors by blood type and proximity without a geospatial DB.

Solution

Stored city names and used a pre-computed adjacency list of nearby cities — not as precise as GPS radius but practical for the target use case.

Challenge

Preventing donors from registering for requests before their 3-month cooldown.

Solution

Added a server-side eligibility check on every donor action — last donation date fetched from DB and compared to current date before any match is made.

Demo & Screenshots

See it live.

Blood Donor platform

Donor registration and emergency request flow

Explore the full source code and documentation.

View on GitHubLive Demo← All Projects