Badhan Blood Donation (Amar Ekushey Hall Unit)
AI-parsed Telegram bot for Badhan's student blood donor network at Amar Ekushey Hall, University of Dhaka. Coordinators post free-text donor submissions in a Telegram group; Gemini extracts structured records with a regex fallback, and a blood-group-indexed search surfaces eligible donors past their 4-month cooldown — 407 tracked donors, 599 logged donations.
- Client
- Badhan — Amar Ekushey Hall Unit, University of Dhaka
- Role
- Lead Full-Stack Developer & Platform Architect
- Timeline
- 2024 – 2025
- Stack
- 8 technologies
A closer look



- Two donor-entry paths for two different workflows: a Telegram bot that parses donor info posted straight into the group chat with a deterministic regex/pattern engine, and a web "Submit" page where messier freeform paste-ins go through a Gemini AI parser first
- Telegram path: coordinators post donor info as free text (strict line format or comma-separated), the bot pattern-matches it into structured fields (name, blood group, phone, date, batch, hall) with zero AI dependency, and replies with a per-donor confirmation
- Web path: a three-tier parser chain — Gemini AI first, a fixed-format block parser, then a plain regex parser — so a single point of failure never blocks a submission
- Multi-key rotation with per-key cooldown (10 min) for the Gemini parser, so exhausted rate limits degrade to the fallback chain instead of failing outright
- Batch submission support: multiple donor blocks in one message, separated by blank lines, each parsed and confirmed independently
- Blood-group indexed donor search with a 4-month eligibility window computed at query time, sorted by longest-since-last-donation
- Human-in-the-loop correction logging (UserFeedback + an internal review page) lets coordinators flag AI mis-parses for later review
- Installable PWA with Workbox asset caching
Need a similar delivery process for your product? I can help shape the scope and ship the implementation end to end.
Start a projectHistorically, Badhan coordinators at Amar Ekushey Hall (University of Dhaka) tracked student donors in physical paper spiral ledgers, then in ad-hoc spreadsheets. Adding a new donor meant someone manually typing structured fields into a form — a bottleneck when submissions came in fast across Telegram threads full of unstructured donor info from multiple volunteers, and error-prone when done by hand.
We moved data entry into the tool volunteers already use: Telegram. A message posted in the group is scanned for donor-shaped text and parsed by a deterministic pattern engine — no AI call, no rate limit to worry about, no API cost per message. For the messier case (someone pasting a half-formatted list from a spreadsheet), a separate web "Submit" page runs the same text through Gemini first, with a fixed-block parser and a plain regex parser as fallbacks if the AI step has a bad moment. Search stays simple: an indexed lookup by blood group, filtered in-app to donors past a 4-month cooldown, sorted so the longest-idle eligible donor surfaces first.
Coordinators post donor details into Telegram exactly as they'd naturally write them — no app switching, no form. A deterministic parser turns that into a structured record, with an AI-backed web form available for messier paste-ins. Duplicate and validation errors are caught before they pollute the ledger. When someone needs a donor, blood-group search plus the cooldown filter surfaces exactly who's eligible right now.
407 donors and 599 donation records tracked for the Amar Ekushey Hall Unit, entered almost entirely through Telegram messages rather than a form — the bot absorbed the actual workflow volunteers were already using instead of forcing a new one.