Tuesday, October 20, 2026 New tutorials published every day
Home
Tutorials
Core PHP PHP Course JavaScript React & Next.js Python WordPress Artificial Intelligence
Free Tools
JSON Formatter Base64 Encoder / Decoder Password Generator Text to QR Code Generator Word Counter Case Converter Age Calculator Color Converter Number to Words All Free Tools
Projects
PHP Projects — all projects
Resources
Search tutorials About CodingCush Contact
More
Login
Final Year Projects

Blood Bank Management System in PHP and MySQL — Final Year Project with Source Code

Blood Bank Management System in PHP and MySQL: donors, blood stock, expiry tracking and requests. Synopsis, modules, database tables, SQL and viva help.

The Blood Bank Management System in PHP and MySQL is a web project that helps a blood bank manage donors, blood stock, expiry dates, and urgent requests in one place. It is a strong choice for BCA, MCA, B.Tech and M.Tech final-year students who want a project with real social value and a demo that nobody forgets. On this page you will find the complete synopsis, the admin and donor modules, the database design with SQL, and the steps to run the project on XAMPP.

Project Synopsis

When there is an accident or an emergency surgery, a family does not have time to waste. They run from one blood bank to another, phone in hand, asking a single question: is this blood group available right now? Sadly, in many blood banks the answer depends on paper registers and stock notebooks. Donor records sit in one file, donation details in another, and nobody can say how many units of O negative are actually usable today.

This project moves the whole process online. The admin can see the available units of every blood group on one dashboard, register donors, record each donation, and watch expiry dates before stock goes to waste. Hospitals and patients can search availability by blood group and raise a request, which the admin approves from the panel. One database, a few clean tables, and a question that matters is answered in seconds instead of hours.

Why This Project Scores Well in Final Year

Most final-year projects manage a shop, a hostel, or a library. This one helps save lives, and examiners remember that. The social-impact story gives your presentation a strong opening line, and your viva answers sound purposeful because every feature exists for a real reason.

The demo is equally strong. Searching blood stock by blood group — say, "show me all usable B positive units" — takes two clicks and works perfectly live in front of the panel. Add the expiry warning list and the donor eligibility check, and you have three impressive features that are still simple CRUD and date logic underneath. It looks advanced, but an average student can build and explain every part of it. That is exactly the balance a final-year project should have.

Illustration of a blood donation camp with a donor and nurse
The right blood group, found in seconds — not after running to three blood banks.

Modules of the Project

The system has three kinds of users. The admin runs the blood bank, donors give blood and track their own record, and hospitals or patients search stock and raise requests.

Admin Module

  • Dashboard: available units for each blood group, total donors, today's donations, and units about to expire, all at a glance.
  • Register Donors: add donors with their blood group, contact details, city, and last donation date.
  • Record Donations: log every donation with date and units, so the donor history and stock stay correct.
  • Manage Blood Stock and Expiry: track units by blood group with collection and expiry dates, and remove expired units safely.
  • Handle Requests: view requests from hospitals and patients, then approve or reject them based on available stock.
  • Reports: stock report, donation report by month, donor list by blood group, and expiry report.

Donor Module

  • Register: donors sign up with their blood group, city, phone number, and last donation date.
  • Donation History: a personal list of every donation the donor has made through the blood bank.
  • Eligibility Status: the system shows whether the donor can donate today or must wait until the three-month gap is complete.

Apart from these two panels, hospitals and patients use a public side of the system. They search blood availability by group and city, and if units are available, they raise a request with patient details and the required units. The request reaches the admin panel, where it is approved or answered with the current stock position. Nobody needs to visit three blood banks in person just to ask a question.

Main Features

Feature What It Does
Search by Blood Group Instantly shows available units for all eight groups: A+, A-, B+, B-, O+, O-, AB+ and AB-.
Expiry-Date Tracking Blood units expire in about 35 to 42 days, so the system flags units nearing expiry before they are wasted.
Donor Eligibility Check A donor must wait 3 months between donations; the system blocks early donations automatically.
Request Approval Flow Hospital and patient requests are approved or rejected by the admin against real stock.
Live Stock Dashboard Group-wise unit counts update with every donation, issue, and expiry removal.
Donor History Complete donation record for every donor, useful for certificates and repeat-donor tracking.
Stock and Donation Reports Printable reports for stock, monthly donations, and expiring units for the blood bank office.

Technology Stack

Layer Technology
Backend PHP 8.x
Database MySQL
Frontend HTML, CSS and JavaScript
UI Framework Bootstrap
Local Server XAMPP (Apache + MySQL)
Database Tool phpMyAdmin

The stack is free and familiar, so the project runs on any college laptop. If you are new to the backend side, first learn how to connect PHP with MySQL, because every search and stock update depends on that connection. For the queries themselves, use PHP Data Objects (PDO) with prepared statements, so donor and request data stays safe from SQL injection.

Database Tables

Four tables run the whole system. The donor registration and login side follows the same pattern as our student registration and login project, only the fields change — blood group and last donation date replace course and semester.

Table Purpose
donors Stores donor details: name, blood group, phone, city and last donation date.
blood_stock Stores units per blood group with collection date and expiry date.
donations Records every donation: donor, date and units donated.
blood_requests Stores requests from hospitals and patients with group, units and status.

Here is the SQL for the donors table. The official MySQL CREATE TABLE documentation explains every column option used here, in case your examiner asks.

CREATE TABLE donors (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    blood_group VARCHAR(3) NOT NULL,
    phone VARCHAR(15) NOT NULL,
    city VARCHAR(50) NOT NULL,
    last_donation_date DATE NULL
);

How to Run This Project on XAMPP

  1. Download and install XAMPP, then start the Apache and MySQL services from the XAMPP Control Panel.
  2. Copy the project folder (blood-bank) into the htdocs folder of your XAMPP installation.
  3. Open http://localhost/phpmyadmin in your browser and create a new database named bloodbank_db.
  4. Select the database, open the Import tab, choose the project's SQL file, and click Go to create all four tables.
  5. Open http://localhost/blood-bank in your browser, log in to the admin panel with the demo details from the project readme, add a few donors, record a donation, and search the stock by blood group.

What You Get in the Complete Project

A good synopsis alone does not finish a submission. The complete package from the Coding Cush shop gives you the full working source code (PHP + MySQL) that you can run, study, and customise with your own blood bank's name. You also get a ready project report with the synopsis, system requirements, DFD, ER diagram, database design, and screenshots — the format most universities ask for. A viva PPT is included as well, with slides for the problem statement, modules, database tables, and future scope. Build the project, understand the tables, and the rest is presentation.

FAQ

How does expiry tracking work in this project?

Every stock entry stores a collection date and an expiry date — roughly 35 to 42 days for whole blood. The dashboard compares the expiry date with today and highlights units that are close to expiry, so staff can issue them first or remove them in time. Nothing expires silently in a corner.

Who can see a donor's phone number?

Only the logged-in admin. Donor phone numbers are never shown on the public side of the website — the public pages show only how many units of each group are available. Keeping contact details private is basic respect for the donor, and it is also a point examiners appreciate.

Which viva questions are commonly asked on this project?

Two favourites: "How do you check whether a donor is eligible to donate today?" — compare the last donation date with today and require a three-month gap — and "How do you find the available units of one blood group?" — a simple grouped query on the blood_stock table that skips expired units.

Can donors get SMS alerts for urgent requests later?

Yes, that is a popular future-scope point. When an urgent request is approved, a script can pick eligible donors of that blood group in the same city and send them an SMS through an SMS gateway API. The tables already hold everything the feature needs.

Conclusion

The Blood Bank Management System is a final-year project with a purpose: clean donor records, honest stock numbers, and no wasted units. It is simple to build, powerful to demo, and easy to defend in the viva. Pick it, understand it, and present it with the respect the topic deserves.

Lavkush
Written by

Lavkush

Lavkush Kumar is a software developer with over 6 years of experience turning ideas into websites and web applications. He holds a Master of Computer Applications (MCA) degree and enjoys building for the web, exploring new tools, and sharing what he learns along the way.

Through CodingCush, Lavkush creates easy-to-follow tutorials and practical guides to help students and beginners learn software development without feeling overwhelmed. His approach is simple: learn by doing, build real projects, and keep improving one step at a time.

Whether you’re just starting out or looking to sharpen your skills, CodingCush is all about making learning practical, beginner-friendly, and fun.

0 Comments

Leave a Comment