A full-stack doctor appointment booking platform built with a production-focused architecture.
Prescripto enables patients to discover doctors, book appointments, manage bookings, and complete secure online payments. Doctors can manage appointments, availability, and profiles, while administrators can oversee the entire platform through a dedicated admin dashboard.
This project is designed to simulate a real-world healthcare booking system with secure authentication, payment processing, role-based access control, and scalable backend architecture.
https://prescripto-frontend-livid-three.vercel.app
https://prescripto-backend-theta-two.vercel.app
https://prescripto-admin-eta-eight.vercel.app
GitHub Repository:
https://github.com/baibhavsinhadev/prescripto.git
Monorepo Structure:
frontend/
backend/
admin/- User Registration & Login
- Secure JWT Authentication
- Cookie-Based Session Management
- Browse Available Doctors
- Filter Doctors by Speciality
- View Doctor Profiles
- Book Appointments
- Cancel Appointments
- Razorpay Payment Integration
- Stripe Payment Integration
- View Appointment History
- Update Profile Information
- Upload Profile Image
- Doctor Login
- Dashboard Overview
- Earnings Analytics
- Total Appointments Tracking
- Patient Count Statistics
- Appointment Management
- Cancel Appointments
- Mark Appointments as Completed
- Update Doctor Profile
- Change Availability Status
- Update Consultation Fees
- Upload Profile Image
- Change Password
- Admin Authentication
- Dashboard Overview
- Add New Doctors
- View All Doctors
- View All Appointments
- Manage Platform Operations
- Cancel Appointments
- Role-Based Access Control (Patient / Doctor / Admin)
- Secure Authentication & Authorization
- Cloud-Based Image Storage
- Online Payment Processing
- Appointment Management Workflow
- Scalable REST API Architecture
- Responsive User Interface
- Production Deployment
- JWT-Based Authentication
- HTTP-Only Cookies
- Protected Routes
- Role-Based Authorization
- User books appointment
- Appointment stored in database
- Payment processed through Razorpay or Stripe
- Appointment status updated
- Doctor manages appointment lifecycle
- Profile images uploaded to Cloudinary
- Optimized image delivery
- Stripe Integration
- Razorpay Integration
- Secure Payment Verification
- React
- Vite
- Tailwind CSS v4
- React Router
- Axios
- Context API
- React
- Vite
- Tailwind CSS
- Axios
- Node.js
- Express.js
- MongoDB
- Mongoose
- JWT
- Bcrypt
- Cloudinary
- Razorpay
- Stripe
- Frontend → Vercel
- Admin → Vercel
- Backend → Vercel
- Database → MongoDB Atlas
The backend implements multiple layers of security:
- Helmet
- HPP (HTTP Parameter Pollution Protection)
- Rate Limiting
- CORS Configuration
- Cookie Parser
- Compression
- JWT Authentication
- Password Hashing with Bcrypt
backend/
├── configs/
├── controllers/
├── middlewares/
├── models/
├── routes/
└── server.jsfrontend/
├── public/
├── src/
│ ├── api/
│ ├── assets/
│ ├── components/
│ ├── context/
│ ├── pages/
│ └── App.jsxadmin/
├── src/
│ ├── api/
│ ├── assets/
│ ├── components/
│ ├── context/
│ ├── pages/
│ └── App.jsxPORT=5000
MONGODB_URI=
NODE_ENV=development
CURRENCY=USD
JWT_ADMIN_SECRET=
JWT_DOCTOR_SECRET=
JWT_USER_SECRET=
CLOUDINARY_CLOUD_NAME=
CLOUDINARY_API_KEY=
CLOUDINARY_API_SECRET=
ADMIN_EMAIL=
ADMIN_PASSWORD=
ADMIN_URL=
FRONTEND_URL=
RAZORPAY_API_KEY=
RAZORPAY_SECRET_KEY=
STRIPE_PUBLISHABLE_KEY=
STRIPE_SECRET_KEY=
STRIPE_WEBHOOK_KEY=VITE_BACKEND_URL=
VITE_RAZORPAY_KEY_ID=VITE_BACKEND_URL=
VITE_CURRENCY=git clone https://github.com/baibhavsinhadev/prescripto.git
cd prescriptocd backend
npm install
npm run devcd frontend
npm install
npm run devcd admin
npm install
npm run dev/api/userFeatures:
- Register User
- Login User
- Update Profile
- Book Appointment
- View Appointments
/api/doctorFeatures:
- Login
- Dashboard Data
- Appointment Management
- Profile Management
/api/adminFeatures:
- Dashboard Data
- Add Doctors
- Manage Appointments
- Platform Management
- User books appointment
- Razorpay order is created
- User completes payment
- Payment verified
- Appointment marked as paid
- User books appointment
- Stripe checkout session created
- User completes payment
- Payment verified
- Appointment marked as paid
- Real-Time Chat Between Doctor & Patient
- Automated Refund Initiation
- Appointment Reminder Notifications
- Prescription Management System
- Video Consultation Support
- Doctor Reviews & Ratings
- Advanced Analytics Dashboard
Built by Baibhav Sinha
Focused on building production-oriented web applications using modern technologies and real-world software architecture principles.
This project is licensed under the MIT License.