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