
BloodBridge (BBMS)
September – October 2024
Team project · Two-person team project. A teammate (GitHub: nafis200) wrote the donation request form and, in the API, the endpoints that store and list donation and request records and that list and increase blood stock. I built the rest, listed under My role & contribution. Key features and Architecture describe the whole team's product.
Overview
BloodBridge (BBMS) is a blood bank management web app built by a two-person team. Donors and patients submit donation and blood requests, admins approve or reject them, and the available units for each blood group are kept up to date as requests are processed.
- Problem
- In Bangladesh, blood requests are often shared through scattered social media posts, which can make responses slow and urgent donor discovery difficult. Coordination between donors, patients and blood banks or hospitals is largely informal.
- Solution
- BBMS takes a first, structured step: an admin-mediated record of donations, requests and stock. Donors and patients register, submit a donation or blood request from their dashboard and follow its status (Pending, Approved or Rejected). Admins review each submission, and approving one adjusts the stock of that blood group, up for a donation and down for a request, after checking that enough units are available. The home page shows the units available per blood group. BBMS supports coordination; it does not guarantee that blood is available and it is not a medical service.
Key features
- Registration and login with email and password or Google (Firebase Authentication)
- Donors submit donation requests (disease, blood group, donation date, phone number and quantity); patients submit blood requests (name, age, disease, blood group and quantity)
- Personal history tables show each submission and its status: Pending, Approved or Rejected
- Admins approve or reject donation appeals and blood requests; approving a donation adds the units to stock and approving a request subtracts them
- A blood request cannot be approved if it asks for more units than are in stock
- Admin user management (promote a user to admin, delete a user) and a page to update blood stock
- Home page with the units available for each blood group and a blood-donation FAQ
Tech stack
- React
- Firebase
- Daisy UI
- Javascript
- Tailwind CSS
- MongoDB
- Node.js
- Express.js
- React Query
Architecture & technical details
- React client
- Express API
- MongoDB
- Donor submits a donation request
My role & contribution
Role: Team member: authentication, dashboards and admin tools (frontend), plus the user and approval APIs
- Set up the project and the Express and MongoDB server, and built the Firebase login and registration, navigation, footer, home page, FAQ and the blood stock cards
- Built the dashboard layout and routing, the donor and patient dashboards, the blood request form and the history tables
- Built the admin dashboard: user management, approval of donation appeals and blood requests with stock updates, and the blood stock page
- Built the API routes behind those screens: users (create, list, promote to admin, delete), approving and rejecting submissions, looking up a user's submissions and reducing stock when a request is approved
- Deployed the API on Vercel and published the live site