Badhan Blood Donation (Amar Ekushey Hall Unit)
Offline-first PWA for the Badhan blood donation organization of Amar Ekushey Hall, University of Dhaka. Donor search runs against local IndexedDB in under 10ms regardless of network state — built specifically to work in hospital basements and emergency wards where mobile connectivity is unreliable.
- Client
- Badhan — Amar Ekushey Hall Unit, University of Dhaka
- Role
- Lead Full-Stack Developer & Platform Architect
- Timeline
- 2024 – 2025
- Stack
- 7 technologies
A closer look



- All donor search runs locally against IndexedDB — results in under 10ms with no network request required
- Pre-computed donation eligibility flag: 90-day interval calculated at sync time, enabling instant filtering without date arithmetic on every query
- Workbox NetworkFirst strategy with 4-second timeout: fresh data when network is available, cached data when it isn't
- Installable PWA with home screen icon on Android — launches like a native app
- Donor records include name, phone, blood group, batch, hall, room number, last donation date, and referral source
- Export functionality for volunteer coordinators to pull filtered donor lists for emergency dispatch
Need a similar delivery process for your product? I can help shape the scope and ship the implementation end to end.
Start a projectBadhan volunteer coordinators at Amar Ekushey Hall need to match blood donors to patient requests quickly. The Dhaka Medical College Hospital — where most emergencies are handled — has poor mobile reception in many wards and the basement. A platform that requires network connectivity to show a donor list is useless exactly when it's most needed.
The previous system was a shared spreadsheet. Searching it on a phone during a stressful emergency was slow. There was no eligibility check, so coordinators sometimes contacted donors who had donated too recently.
The offline-first design treats IndexedDB as the primary data source. Every read — donor search, blood group filter, eligibility check — hits IndexedDB directly. Network requests are used only to synchronize changes from the server, not to serve the user's immediate request.
Donation eligibility (90 days since last donation) is pre-computed and stored as a boolean flag during each sync. Rather than running date arithmetic on every search query for hundreds of records, it runs once per record per sync. The stored flag makes filtering instantaneous regardless of dataset size.
Workbox manages the service worker with a NetworkFirst strategy for API endpoints: attempt the network with a 4-second timeout, fall back to the cached response if the network is slow or unavailable. Static assets are pre-cached at install time.
The platform is installed on volunteers' Android phones as a PWA. When a coordinator receives an emergency blood request, they open the app (which loads immediately from the service worker cache), enter the required blood group, and get an instant list of eligible donors sorted by last donation date.
The dashboard shows real-time donation statistics — total donations logged, blood group breakdown, monthly trends — giving the unit's leadership visibility into their operational capacity. The export function lets coordinators pull a filtered donor list for dispatch coordination.
The platform actively tracks over 590 total donations and 400+ unique donors for the Amar Ekushey Hall Unit. Search performance is consistent regardless of network state — the offline-first design means hospital basement reception doesn't affect usability.
The pre-computed eligibility flag has eliminated coordinator errors where donors were contacted too soon after a previous donation. The 90-day rule is enforced automatically in the filter results.