Featured Completed

Blood donation management system

a multilingual blood donation platform built with Laravel 12. It connects donors, receivers, and laboratories, and gives administrators a full dashboard to manage donations, inventory, blood requests, users, reports, and site settings.

Laravel PHP Redis mySQL Tailwindcss
Blood donation management system

Overview

Features Public site Home, about, and contact pages Contact form (submissions appear in the admin contact-message inbox) Public search of pending, approved, and completed blood requests (filter by blood type, province, and city) Registration as a donor, receiver, or laboratory Language switcher: English (en), Persian (fa), and Pashto (ps), including RTL layouts Donor dashboard Personal donation statistics, eligibility, and next eligible donation date Create, view, update, and cancel donation records Personal donation reports (whole blood, plasma, platelets) Profile and messaging Receiver dashboard Blood request statistics (pending, approved, completed, rejected) Create, edit, cancel, and print blood requests Profile and messaging Laboratory dashboard Record and manage blood donations (including printable receipts) Record and update blood tests for donations Create and manage blood requests, with printable receipts Download receipts and update laboratory profile Messaging Admin dashboard Overview statistics and live notifications (pending blood requests and unread contact messages) User management (including toggling admin access) Donor, receiver, and laboratory management (health status, donation ability, laboratory verification) Blood donation records and blood tests Blood inventory (in stock, used, expired, discarded) Blood request approval, rejection, and completion Province and city management Languages and translations (import from language files, set default, toggle active) Reports with Excel export (donations, requests, inventory, users, summary, active donors, shortage alerts, approved requests, donation history, by province, monthly/yearly, bag expiration) Contact message inbox Database backups (create, download, clean old backups) Site settings Messaging with other users Other capabilities Role-based access control (admin middleware for the admin area) In-app messaging between users Donation interval and bag expiration rules from site settings Dark mode on public and authenticated pages Technology stack PHP 8.2+ (developed on 8.4) Laravel 12 MySQL Laravel Breeze (authentication, registration, password reset, email verification) Tailwind CSS 3 and Alpine.js 3 Vite 7 Maatwebsite Excel (report exports) PHPUnit 11 and Laravel Pint

Gallery

Project Screenshots

More Work

Related Projects

Next Step

Have a similar idea?

Let's talk about how we can build something reliable, scalable, and thoughtfully designed.

Get in Touch