An online healthcare booking web application that allows patients to book appointments with doctors, get online consultations, make online payments, and track their health records.
Key Features • Tech Stack • Architecture & Principles • Prerequisites • How To Use •
- 🔑 Authentication & Authorization: Login/Registration (Patients, Doctors, Admins).
- 📋 Health Record Management: Store examination results, prescriptions, and medical histories.
- 🗓️ Appointment Booking: Select doctors, specialties, and hospitals; receive email confirmations.
- 🎥 Online Consultation: Integrated video calling via Jitsi.
- 💳 Service Payment: Supports VNPay and MoMo.
- ⭐ Reviews & Feedback: Patients can rate and review doctors and services.
- 📊 Statistics & Reports: Admins can view appointment volume, revenue, and feedback.
- 🔔 Reminders & Notifications: Send email/push notifications.
- Backend: SpringMVC, Hibernate, Spring Security (JWT Authentication)
- Frontend: ReactJS, Bootstrap, Axios
- Database: MySQL
- Template Engine (Admin panel): Thymeleaf
- Cloud Storage: Cloudinary (for storing patient photos and medical records)
- Realtime: Jitsi, Firebase (for online consultations)
- Utilizes Dependency Injection (DI) to decouple components, reducing interdependence and increasing scalability and testability.
- Adheres to SOLID principles to ensure clean and maintainable source code:
- S: Single Responsibility Principle – Each class has only one responsibility.
- O: Open/Closed Principle – Open for extension, closed for modification.
- L: Liskov Substitution Principle – Subclasses can replace their base classes without breaking correctness.
- I: Interface Segregation Principle – Split large interfaces into smaller, more specific ones.
- D: Dependency Inversion Principle – High-level modules should not depend on low-level modules, but rather on abstractions (interfaces).
- Designed following the Modular Monolith pattern with clear layers: Controller, Service, and Repository.
- JDK 17+
- Apache Maven 3.8+
- MySQL 8.0+
- Node.js 18+
- IDE: IntelliJ IDEA / Eclipse / VS Code
From your command line:
# Clone this repository
$ git clone [https://github.com/trvannhanh/online-healthcare-system](https://github.com/trvannhanh/online-healthcare-system)
# Go into the repository
$ cd wordsoul
# Backend
$ cd HealCareApp
$ mvn clean install
$ mvn spring-boot:run
# Frontend
$ cd healcare-app
$ npm install
$ npm start