Built to order

Online Blood Donation Camp Management Web App with Donor Scheduling

This project builds an Online Blood Donation Camp Management Web App with Donor Scheduling using HTML, CSS, JavaScript, Node.js and MySQL, so a camp organizer can create donation camps with slotted capacity, register donors with automatic eligibility screening, and issue printable donor certificates. Donors book a time slot online instead of queueing at a paper register, and the organizer watches slot occupancy, the blood-group tally and the full donor list on one dashboard. Suitable for B.E./B.Tech final-year projects in Computer Science, IT and Web Development.

Web Development GitMySQLHTML5 · CSS3 · JavaScriptREST APINode.js · Express.jsbcrypt password hashingPrint-CSS certificate generatorVanilla JS dashboard UISoftware
Online Blood Donation Camp Management Web App with Donor Scheduling — project thumbnail preview
More project photos (2)

The problem

College NSS units, Rotaract clubs and local NGOs run blood donation camps every year, yet most of them still manage the entire operation on paper registers and WhatsApp groups. Donor details are scribbled at the entry desk, nobody checks whether a donor gave blood two months ago, and time slots exist only as an idea — the result is an overcrowded morning, wasted capacity in the afternoon, and eligibility arguments at the venue. This project replaces that chaos with a single web app: the organizer creates a camp with a venue, a date and time slots of fixed capacity; donors register online with their blood group, age, weight and last donation date; and the system screens every registration against the standard donor eligibility rules before it confirms a slot. A dashboard shows live slot occupancy, the blood-group tally and the searchable donor list, and every donor gets a printable appreciation certificate. The build demonstrates real full-stack web development — forms, validation, relational data, role-based views and printable output — on a genuinely useful problem.

SYSTEM FLOW

6 components 7 connections

Live flow
Drag to explore
100%
userOrganizer

Creates camps with time slots and capacities, then tracks donors.

Follow the working sequence

How it works

  1. The organizer signs in and creates a camp: name, venue, date, organizer name and time slots with a per-slot donor capacity.
  2. The camp and its slots appear instantly in the donor-facing registration form and the slot-scheduling view.
  3. A donor fills the registration form; JavaScript validates the eligibility rules (age 18–65, weight ≥ 50 kg, ≥ 90 days since last donation) before the booking is accepted.
  4. The donor selects a camp and a time slot; the booking is written to the MySQL database and the slot's booked count increments, with full slots locked automatically.
  5. The organizer dashboard reads the database to render occupancy bars, the blood-group tally and the searchable donor register.
  6. After the camp, the organizer selects any donor and generates the printable certificate, which the donor can also download as a keepsake.

Tech stack:

  • HTML5, CSS3, JavaScript (ES6)
  • Node.js with Express.js
  • MySQL (relational schema)
  • REST API with JSON endpoints
  • bcrypt password hashing
  • Print-CSS certificate generator
  • Vanilla JS dashboard UI
  • Git
Parameter Value
Platform Web app — runs in any modern desktop/mobile browser
Frontend HTML5, CSS3, vanilla JavaScript (single-page views)
Backend Node.js + Express.js REST API (design target)
Database MySQL with donor, camp, slot and booking tables
User roles Organizer (camp + dashboard) and donor (register + book)
Blood groups supported All 8 (A+, A-, B+, B-, O+, O-, AB+, AB-)
Eligibility rules Age 18–65, weight ≥ 50 kg, ≥ 90 days since last donation
Slot capacity Configurable per slot by the organizer (demo uses 20–25)
Certificate output A4 printable certificate via browser print CSS
Concurrent users Depends on the buyer's hosting plan; no load test is shipped

Project features

  • [Camp creation with slotted capacity] The organizer creates a camp with a name, venue, date and any number of time slots, each with its own donor capacity — the capacity model that drives all scheduling in the app.
  • [Donor registration with live eligibility screening] Donors register with name, phone, age, weight, blood group and last donation date; the form validates age 18–65, weight ≥ 50 kg and a ≥ 90-day gap since the last donation, and blocks ineligible registrations with the exact reason shown.
  • [Slot scheduling with capacity enforcement] Donors pick a camp and a time slot; full slots are disabled automatically, booking counts update instantly, and double-booking beyond capacity is impossible.
  • [Organizer dashboard] One screen shows registered-donor count, camps scheduled, overall slot fill rate, per-slot occupancy bars, the blood-group tally and the complete donor register with live search and filter.
  • [Blood-group tally and donor search] The dashboard aggregates donors across all eight blood groups and lets the organizer search the register by name, blood group or camp in real time.
  • [Printable donor certificates] One click generates a formatted appreciation certificate for any registered donor — name, blood group, camp, venue and date — rendered through print CSS so it prints cleanly on A4 from the browser.
  • [Role-based views] Separate organizer and donor flows: organizers create camps and see the dashboard; donors register and book slots — a genuine multi-role web app structure for the viva.

What is included

  • Complete full-stack source code (frontend + Node.js/Express backend)
  • MySQL schema with seed data (sample camps, slots and donors)
  • Setup instructions for local run and shared-hosting deployment
  • Project report PDF (background, requirements, design, methodology, screenshots)
  • PPT presentation for final review
  • Viva Q&A preparation document (web concepts, validation, database design, roles)

Limitations & prerequisites

  • The demo build shown in the screenshots is a single-file frontend with in-memory data; the delivered project wires the same UI to the Node.js/MySQL backend — deployment and hosting are the buyer's responsibility and hosting costs are not included.
  • No SMS or email reminders in the base build; reminder or QR check-in features are optional customizations.
  • Eligibility screening encodes the standard donor guidelines (18–65 years, ≥ 50 kg weight, ≥ 90-day gap) as validation rules — it is a registration check, not a medical clearance, and does not replace the camp doctor's on-site screening.
  • Certificates render through browser print CSS, so exact layout depends on the buyer's browser and printer settings; the included print-check procedure is run by the buyer.
  • Concurrent-user capacity depends on the hosting plan the buyer chooses; no load testing is shipped with the project.
  • Donor phone numbers live in the buyer's own database; the base build includes no third-party analytics or tracking.

Frequently Asked Questions

What can the organizer actually do in the app?

Create camps with venue, date and slotted capacity; watch live slot occupancy, the blood-group tally and the full donor register on the dashboard; search donors by name, blood group or camp; and generate printable appreciation certificates for any donor.

How does the eligibility screening work?

The registration form validates three rules before accepting a booking: age between 18 and 65, weight at least 50 kg, and at least 90 days since the last donation date. Ineligible donors are blocked with the exact reason shown, and the rule set is configurable in the code.

Is the database included, and can the app be hosted online?

Yes — the MySQL schema and seed data ship with the project, and the setup guide covers both a local run and deployment on standard shared hosting or a VPS. Hosting and domain costs are the buyer's own.

Can SMS reminders or QR-based check-in be added?

Yes, as optional customizations: an SMS gateway for slot reminders, QR codes on booking confirmations for entry-desk check-in, and a mobile-friendly volunteer view are all feasible extensions of the base build.

Is this project suitable for a final-year project?

Yes — for Computer Science, IT and Web Development programs. It demonstrates full-stack development, form validation, relational database design, REST APIs, role-based access and printable document generation, all on a real, demonstrable problem. Suitable for B.E./B.Tech final-year projects in Computer Science, IT and Web Development.

Components & software requirements
  • HTML5, CSS3, JavaScript (ES6)
  • Node.js with Express.js
  • MySQL (relational schema)
  • REST API with JSON endpoints
  • bcrypt password hashing
  • Print-CSS certificate generator
  • Vanilla JS dashboard UI
  • Git
Delivery information

Built-to-order project. Delivery timeline is shared after order confirmation based on current queue.

Support terms

Complete documentation, setup guide, and viva preparation included. Support for setup and explanation provided.

Download free synopsis (PDF)

Enter your name and email — the synopsis PDF downloads immediately. We may send occasional project updates; no spam, unsubscribe anytime.

Get a quotation