Project 03 of 06
MediLife
Hospital management system
- access roles
- 3
- access roles
- MVC layers
- 6
- MVC layers
- booking flows
- 2
- booking flows
- notification events
- 7
- notification events
Architecture
4 stagesHospital management system
Overview
1 min read
MediLife is a full-featured hospital management platform built on Java Jakarta EE, covering patient registration, doctor approval workflows, appointment scheduling, billing, medical records, and administrative control across three distinct roles. Access is split between Admin, Doctor, and Patient accounts, secured with BCrypt password hashing, session-based authentication, and an admin approval workflow that gates new doctor registrations before they can accept patients.
Booking supports two flows: a Request Appointment path where an admin assigns the best-fit doctor, and a Quick Consult path for direct booking, with admin reassignment and doctor-side rejection handling built into both. The Admin Panel centralizes platform oversight: real-time statistics, doctor approvals with license review, appointment management, user lock/unlock, department management, financial reports with CSV export, system logs, and broadcast announcements.
The Doctor Portal gives physicians a dashboard of today's appointments and earnings (both total and monthly), the ability to confirm or complete appointments, add diagnoses and prescriptions, review a patient's medical history, and reject appointments with a reason. The Patient Portal covers registration with medical details and profile image upload, booking through either flow, viewing upcoming and past appointments, cancelling pending ones, and accessing full medical history.
A real-time notification bell with unread counts fires on booking, confirmation, completion, billing, account actions, assignment, and rejection events, backed by a full history page. Doctors also get individual public portfolio pages (education timeline, experience, expertise, certifications, and publications) with a book-appointment call to action gated behind a login check.
The system is built on a strict MVC architecture end-to-end: JSP views handle display only, Servlets handle routing only, Services own all business logic and validation, a DAO layer owns all database queries, Filters enforce authentication and role-based access control, and Utils hold shared helpers, keeping every layer's responsibility non-overlapping.
Highlights
8 items
- 01Three-role access control: Admin, Doctor, Patient with BCrypt password hashing, session-based auth, and admin approval workflow for doctor registrations
- 02Dual booking flow: Request Appointment (admin-assigned, best-fit doctor) and Quick Consult (direct booking) with admin reassignment and doctor rejection handling
- 03Admin Panel: real-time statistics, doctor approvals with license review, appointment management, user lock/unlock, department management, financial reports with CSV export, system logs, and broadcast announcements
- 04Doctor Portal: dashboard with today's appointments and earnings (total + monthly), confirm/complete appointments, add diagnoses and prescriptions, view patient medical history, reject appointments with reason
- 05Patient Portal: registration with medical details, profile image upload, request appointments, quick consult, view upcoming/past appointments, cancel pending appointments, and access full medical history
- 06Notifications: real-time notification bell with unread counts triggered by booking, confirmation, completion, billing, account actions, assignment, and rejection, with full history page
- 07Doctor Portfolios: individual public profile pages with education timeline, experience, expertise, certifications, publications, and book appointment CTA with login check
- 08Strict MVC architecture enforced end-to-end: JSP views (display only), Servlets (routing only), Services (all business logic and validation), DAO layer (all database queries), Filters (auth and role-based access control), Utils (shared helpers)