A full-stack healthcare web application that enables patients to book doctor appointments online and make secure payments via M-Pesa. The system improves efficiency in healthcare facilities by automating scheduling, sending notifications, and providing separate dashboards for administrators and doctors to manage appointments and patient flow.
Project Overview
Problem Statement
Many healthcare facilities rely on manual appointment booking systems, leading to long queues, poor time management, and missed appointments. Additionally, lack of integrated payment systems makes it difficult for patients to pay conveniently and for hospitals to track transactions effectively.
The Solution
This system provides a digital platform where patients can book appointments remotely, receive confirmations, and pay instantly via M-Pesa. It also includes automated email and SMS reminders to reduce missed appointments, along with dedicated dashboards for doctors and administrators to manage schedules efficiently.
Key Features
- User registration and login
- Online appointment booking system
- M-Pesa STK Push payment integration
- Email and SMS appointment reminders
- Doctor dashboard for schedule management
- Admin dashboard for managing patients and bookings
- Real-time payment confirmation
System Architecture
The system follows a client-server architecture. The frontend is built using HTML, CSS, and JavaScript to provide an interactive user interface. The backend is developed in PHP, handling authentication, business logic, and API integrations. MySQL is used as the database for storing users, appointments, and payment records. The system integrates with the M-Pesa API for secure mobile payment processing and uses external services for email and SMS notifications.
System Workflow
- User registers or logs into the platform
- User selects a doctor and preferred appointment time
- User initiates payment via M-Pesa STK Push
- User confirms payment on their mobile phone
- System receives M-Pesa callback and verifies transaction
- Appointment is confirmed and stored in the database
- Email and SMS reminders are sent before the appointment
- Doctor accesses dashboard to manage schedule
Technical Challenges
Integrating M-Pesa required handling authentication tokens, secure callbacks, and transaction validation. Managing asynchronous payment confirmations while ensuring data consistency was challenging. Implementing reliable email and SMS notifications required integrating third-party services and handling delivery failures. Additionally, designing role-based dashboards for admins and doctors required careful access control logic.
Technologies Used
Future Improvements
- Introduce online consultation (video/telemedicine).
- Add patient medical history tracking.
- Implement role-based access with more granular permissions.
- Enhance UI/UX with modern frontend frameworks.
- Add reporting and analytics dashboard.
Built a real-world healthcare solution addressing local challenges. Gained hands-on experience integrating M-Pesa payments. Learned to handle asynchronous APIs and callback systems. Improved backend development using PHP and MySQL. Developed skills in building scalable, role-based systems.