Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Prescripto - Medical Appointment Booking Platform

A comprehensive healthcare appointment booking system with separate interfaces for patients, doctors, and administrators. The platform streamlines the process of booking medical appointments, managing doctor profiles, and handling administrative tasks.

Overview

Prescripto is a full-stack appointment booking application designed to connect patients with healthcare providers seamlessly. The platform features three distinct panels, each tailored to specific user roles, along with secure authentication and integrated payment processing.

Features

User Panel (Patient Interface)

  • Browse and search for doctors by specialty, location, and availability
  • View detailed doctor profiles including qualifications, experience, and ratings
  • Book appointments with preferred doctors at available time slots
  • Manage appointment history and upcoming bookings
  • Receive appointment confirmations and reminders
  • Make secure payments for consultations
  • Update personal profile and medical history
  • Cancel or reschedule appointments

Doctor Panel

  • Comprehensive dashboard with appointment overview
  • Manage availability and time slots
  • View and update patient appointments
  • Access patient information and medical history
  • Update professional profile and credentials
  • Track earnings and payment history
  • Manage consultation fees
  • Approve or reject appointment requests
  • Add notes and prescriptions for patients

Admin Panel

  • Centralized dashboard for platform management
  • Add, edit, and remove doctor profiles
  • Verify doctor credentials and qualifications
  • Monitor all appointments across the platform
  • Manage user accounts and permissions
  • View platform analytics and statistics
  • Handle payment reconciliation
  • Manage system settings and configurations
  • Generate reports on platform usage

Technology Stack

Frontend

  • React.js for building user interfaces
  • Modern UI/UX design with responsive layouts
  • State management for efficient data flow
  • Form validation and error handling

Backend

  • Node.js and Express.js for server-side logic
  • RESTful API architecture
  • JWT-based authentication and authorization
  • Role-based access control (RBAC)

Database

  • MongoDB for flexible data storage
  • Mongoose ODM for data modeling
  • Efficient querying and indexing

Payment Integration

  • Stripe: International payment processing
  • Razorpay: Payment gateway for Indian market
  • Secure payment handling with encryption
  • Automated payment receipts and invoicing

Authentication System

The platform implements a robust authentication system with the following features:

  • User Registration: Separate registration flows for patients and doctors
  • Email Verification: Confirm user email addresses before activation
  • Secure Login: Password hashing using bcrypt
  • JWT Tokens: Secure token-based authentication
  • Role-Based Access: Different access levels for users, doctors, and admins
  • Password Recovery: Forgot password and reset functionality
  • Session Management: Automatic logout and session expiration
  • Protected Routes: Authorization checks on sensitive endpoints

Project Structure

prescripto/
├── admin-panel/
│   ├── src/
│   ├── public/
│   └── package.json
├── doctor-panel/
│   ├── src/
│   ├── public/
│   └── package.json
├── user-panel/
│   ├── src/
│   ├── public/
│   └── package.json
├── backend/
│   ├── controllers/
│   ├── models/
│   ├── routes/
│   ├── middleware/
│   ├── config/
│   └── server.js
└── README.md

Installation

Prerequisites

  • Node.js (v14 or higher)
  • MongoDB (local or Atlas)
  • npm or yarn package manager

Setup Instructions

  1. Clone the repository
git clone https://github.com/yourusername/prescripto.git
cd prescripto
  1. Backend Setup
cd backend
npm install

Create a .env file in the backend directory:

PORT=5000
MONGODB_URI=your_mongodb_connection_string
JWT_SECRET=your_jwt_secret_key
STRIPE_SECRET_KEY=your_stripe_secret_key
RAZORPAY_KEY_ID=your_razorpay_key_id
RAZORPAY_KEY_SECRET=your_razorpay_secret
EMAIL_SERVICE=your_email_service
EMAIL_USER=your_email
EMAIL_PASSWORD=your_email_password

Start the backend server:

npm start
  1. Admin Panel Setup
cd admin-panel
npm install
npm start
  1. Doctor Panel Setup
cd doctor-panel
npm install
npm start
  1. User Panel Setup
cd user-panel
npm install
npm start

Usage

For Patients

  1. Register or login to your account
  2. Browse available doctors by specialty or location
  3. Select a doctor and choose an available time slot
  4. Complete the booking with payment
  5. Receive confirmation via email
  6. Manage your appointments from the dashboard

For Doctors

  1. Login with your doctor credentials
  2. Set your availability and consultation fees
  3. View incoming appointment requests
  4. Approve or manage appointments
  5. Access patient information during consultations
  6. Track your earnings and schedule

For Administrators

  1. Login with admin credentials
  2. Manage doctor profiles and verifications
  3. Monitor platform activity and appointments
  4. Handle payment reconciliation
  5. Generate reports and analytics
  6. Configure system settings

API Endpoints

Authentication

  • POST /api/auth/register - User registration
  • POST /api/auth/login - User login
  • POST /api/auth/logout - User logout
  • POST /api/auth/forgot-password - Password recovery

Appointments

  • GET /api/appointments - Get all appointments
  • POST /api/appointments - Create new appointment
  • PUT /api/appointments/:id - Update appointment
  • DELETE /api/appointments/:id - Cancel appointment

Doctors

  • GET /api/doctors - Get all doctors
  • GET /api/doctors/:id - Get doctor details
  • POST /api/doctors - Add new doctor (admin)
  • PUT /api/doctors/:id - Update doctor profile

Payments

  • POST /api/payments/stripe - Process Stripe payment
  • POST /api/payments/razorpay - Process Razorpay payment
  • GET /api/payments/history - Get payment history

Security Features

  • Password encryption using bcrypt
  • JWT token-based authentication
  • HTTPS enforcement for production
  • Input validation and sanitization
  • Protection against SQL injection and XSS attacks
  • Rate limiting on API endpoints
  • Secure payment processing with PCI compliance

Contributing

Contributions are welcome! Please follow these steps:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Support

For support, email support@prescripto.com or open an issue in the repository.

Acknowledgments

  • Healthcare professionals who provided insights for feature development
  • Open-source community for various libraries and tools
  • Payment gateway providers for integration support

Made with ❤️ by the DRK

About

A simple appointment booking and prescription app that allows patients to easily book doctor appointments online and enables doctors to manage schedules and issue digital prescriptions securely. The app streamlines healthcare workflows, reduces paperwork, and improves patient–doctor communication.

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages