🏥 Full Stack Doctor Appointment Booking App
📋 Table of Contents:-
• Introduction
• Features
• Tech Stack
• Installation
• Usage
• API Endpoints
• Payment Gateway Integration
• Contributing
• License
• Contact
💡 Introduction:-
The Full Stack Doctor Appointment Booking App is a robust web application that enables patients to book doctor appointments effortlessly. Doctors can manage their schedules, and patients can check availability, book appointments, make payments, and receive reminders. This project is an example of a full-stack application leveraging modern web technologies for seamless functionality.
🎯 Features:-
✨ User Authentication (Patients & Doctors)
✨ Doctor Profile Management
✨ Search and Book Appointments based on doctor availability
✨ Real-time Notifications (Email/SMS) for booking confirmation and reminders
✨ Admin Dashboard for managing users, doctors, and appointments
✨ Payment Gateway Integration for secure payments
✨ Mobile-Responsive for use on various devices
🛠️ Tech Stack
• Frontend:- React.js, HTML5, CSS3, JavaScript, Vite, Bootstrap / Tailwind CSS
• Backend:- Node.js with Express.js, MongoDB / MySQL (Database), JWT for secure user authentication
• Payment Integration:- RazorPay,Stripe or PayPal for handling payments
• Other Technologies: Docker for containerization (optional), Redis for caching (optional), Twilio API for notifications,
⚙️ Installation Prerequisites:
Node.js, MongoDB (or another database), Stripe / PayPal Account for payments, Git
Steps to Run Locally:
- Clone the repository:
bash Copy code git clone https://github.com/Satyacmd69/Prescripto.git cd full-stack-doctor-appointment-app
2.Install dependencies:
bash Copy code npm install cd client npm install
3.Set up environment variables:
Create a .env file in the root directory and add your MongoDB URI, JWT secret, and Stripe/PayPal keys.
MONGO_URI=your_mongo_db_uri
JWT_SECRET=your_jwt_secret
STRIPE_SECRET_KEY=your_stripe_secret_key
PAYPAL_CLIENT_ID=your_paypal_client_id
TWILIO_SID=your_twilio_sid
TWILIO_AUTH_TOKEN=your_twilio_auth_token
4.Run the server:
bash Copy code npm run dev
5.Run the frontend:
bash Copy code cd client npm start
6.Access the app: The app will run at http://localhost:5173.
🚀 Usage:- Sign Up as a patient or doctor.
Login to your account to manage appointments.
Book an Appointment with a doctor based on their availability.
Make Payments using the integrated payment gateway (Stripe or PayPal).
Manage Appointments in the doctor's dashboard.
Admin Panel: Manage users, doctors, and appointments.
🛡️ API Endpoints • Authentication:
POST /api/auth/register : Register a new user.
POST /api/auth/login : Log in an existing user.
• Doctors:
GET /api/doctors : Get a list of all doctors.
GET /api/doctors/:id : Get details of a specific doctor.
• Appointments:
POST /api/appointments : Create a new appointment.
GET /api/appointments : Get all appointments for the logged-in user.
• Payments:
POST /api/payments/charge : Process a payment for an appointment.
• Admin:
GET /api/admin/users : Retrieve all users.
DELETE /api/admin/users/:id : Delete a specific user.
💳 Payment Gateway Integration
This app integrates with Stripe or PayPal to process payments securely.
• Payment Flow:
Patients select a doctor and schedule an appointment.
They are prompted to make a secure payment through the chosen payment gateway.
After successful payment, the appointment is confirmed, and notifications are sent.
Setting Up Payment Gateway:
Create an account with Stripe or PayPal.
Add your API keys to the .env file.
Ensure that the payment route (/api/payments/charge) is properly configured.
🤝 Contributing
We welcome contributions! To get started:
Fork the project:-
• Create a new feature branch: bash Copy code git checkout -b feature-branch-name
• Commit your changes: bash Copy code git commit -m "Added new feature"
• Push to the branch: bash Copy code git push origin feature-branch-name Open a Pull Request.
📄 License This project is licensed under the MIT License. See the LICENSE file for more details.
📧 Contact For any questions, please reach out to:
Email: saisatyabrata952@gmail.com
LinkedIn: Sai Satyabrata