Skip to content

akashsingh062/Prescripto-My-Doctor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🩺 Prescripto – MyDoctor

Full-Stack Doctor Appointment Management System

Prescripto – MyDoctor is a production-ready full-stack healthcare appointment platform that allows patients, doctors, and administrators to interact through a secure, role-based system.

Inspired by real-world platforms like Practo and Apollo, this project demonstrates end-to-end ownership — from frontend architecture and UI/UX to backend APIs, authentication, payments, and deployment.


🌍 Live Demo & Source Code


🚀 Key Features

🔐 Authentication & Security

  • JWT-based authentication
  • Role-based access control (Admin / Doctor / User)
  • Protected routes on frontend and backend
  • Secure password hashing using bcrypt

👤 Patient (User)

  • Browse doctors by speciality
  • Book appointments with date & time slots
  • Online payments using Razorpay
  • View, cancel, and manage appointments
  • Manage personal profile and avatar

👨‍⚕️ Doctor

  • Doctor dashboard with analytics
  • View assigned appointments
  • Complete or cancel appointments
  • Manage availability and profile details

🧑‍💼 Admin

  • Admin dashboard with platform metrics
  • Add and manage doctors (with image upload)
  • Toggle doctor availability
  • View and manage all appointments
  • Full system-level control

🧠 System Architecture

Prescripto follows a clean, scalable, role-based architecture designed for real-world healthcare workflows.

Frontend

  • React 19 + Vite
  • Context API for global state management
  • Role-based routing with React Router
  • Tailwind CSS for responsive UI
  • Razorpay checkout integration

Backend

  • Node.js + Express
  • MongoDB with Mongoose
  • Controller–Model–Middleware pattern
  • Role-specific JWT authentication middleware
  • Cloudinary for image storage
  • Multer for file uploads

🔄 End-to-End User Flow

User visits platform
        ↓
Browse doctors & specialities
        ↓
Select doctor & slot
        ↓
Book appointment
        ↓
Pay via Razorpay
        ↓
Manage appointments & profile

🗂️ Project Structure (Simplified)

frontend/
├── pages/        # User, Doctor & Admin pages
├── components/   # Reusable UI components
├── context/      # Admin, Doctor & App contexts
└── App.jsx

backend/
├── controllers/  # Business logic
├── models/       # MongoDB schemas
├── routes/       # Role-based APIs
├── middlewares/  # Auth & uploads
└── server.js

🛣️ API Overview

Admin APIs

  • /api/admin/login
  • /api/admin/add-doctor
  • /api/admin/all-doctors
  • /api/admin/appointments
  • /api/admin/dashboard

Doctor APIs

  • /api/doctor/login
  • /api/doctor/appointments
  • /api/doctor/dashboard
  • /api/doctor/profile
  • /api/doctor/update-profile

User APIs

  • /api/user/register
  • /api/user/login
  • /api/user/book-appointment
  • /api/user/appointments
  • /api/user/payment-razorpay
  • /api/user/verifyRazorpay

The backend serves a live HTML API documentation page at the root (/).


💳 Payment System

  • Integrated Razorpay Checkout
  • Secure server-side order creation
  • Payment verification on backend
  • Appointments confirmed only after successful payment

🛠️ Tech Stack

Frontend

  • React 19
  • Vite
  • React Router DOM
  • Tailwind CSS
  • Axios
  • React Toastify

Backend

  • Node.js
  • Express
  • MongoDB & Mongoose
  • JWT
  • bcrypt
  • Multer
  • Cloudinary
  • Razorpay

🔒 Security Highlights

  • JWT verified on every protected request
  • Separate middleware for Admin, Doctor, and User
  • Passwords never stored in plain text
  • Role isolation prevents privilege escalation

🚀 Deployment

  • Frontend deployed on Render
  • Backend APIs publicly accessible
  • Environment variables securely configured
  • Cloudinary used for production media storage

🧪 Interview Talking Points

  • Why Context API over Redux
  • How role-based routing and middleware enforce security
  • Secure appointment booking and payment workflow
  • Clean separation of frontend and backend
  • Production-ready deployment strategy

📈 Future Enhancements

  • Prescription management
  • Chat between doctor and patient
  • Email/SMS appointment reminders
  • Advanced admin analytics
  • HTTP-only cookie authentication

👨‍💻 Author

Akash Singh
Full-Stack Developer | React | Node.js | MongoDB


This project represents a real-world, production-style full-stack application, not just a demo.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages