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.
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.
- 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
- 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
- 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
- React.js for building user interfaces
- Modern UI/UX design with responsive layouts
- State management for efficient data flow
- Form validation and error handling
- Node.js and Express.js for server-side logic
- RESTful API architecture
- JWT-based authentication and authorization
- Role-based access control (RBAC)
- MongoDB for flexible data storage
- Mongoose ODM for data modeling
- Efficient querying and indexing
- Stripe: International payment processing
- Razorpay: Payment gateway for Indian market
- Secure payment handling with encryption
- Automated payment receipts and invoicing
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
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
- Node.js (v14 or higher)
- MongoDB (local or Atlas)
- npm or yarn package manager
- Clone the repository
git clone https://github.com/yourusername/prescripto.git
cd prescripto- Backend Setup
cd backend
npm installCreate 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_passwordStart the backend server:
npm start- Admin Panel Setup
cd admin-panel
npm install
npm start- Doctor Panel Setup
cd doctor-panel
npm install
npm start- User Panel Setup
cd user-panel
npm install
npm start- Register or login to your account
- Browse available doctors by specialty or location
- Select a doctor and choose an available time slot
- Complete the booking with payment
- Receive confirmation via email
- Manage your appointments from the dashboard
- Login with your doctor credentials
- Set your availability and consultation fees
- View incoming appointment requests
- Approve or manage appointments
- Access patient information during consultations
- Track your earnings and schedule
- Login with admin credentials
- Manage doctor profiles and verifications
- Monitor platform activity and appointments
- Handle payment reconciliation
- Generate reports and analytics
- Configure system settings
POST /api/auth/register- User registrationPOST /api/auth/login- User loginPOST /api/auth/logout- User logoutPOST /api/auth/forgot-password- Password recovery
GET /api/appointments- Get all appointmentsPOST /api/appointments- Create new appointmentPUT /api/appointments/:id- Update appointmentDELETE /api/appointments/:id- Cancel appointment
GET /api/doctors- Get all doctorsGET /api/doctors/:id- Get doctor detailsPOST /api/doctors- Add new doctor (admin)PUT /api/doctors/:id- Update doctor profile
POST /api/payments/stripe- Process Stripe paymentPOST /api/payments/razorpay- Process Razorpay paymentGET /api/payments/history- Get payment history
- 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
Contributions are welcome! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
For support, email support@prescripto.com or open an issue in the repository.
- 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