https://github.com/asmitamishra24/prescripto-appointment-booking-system
https://github.com/asmitamishra24/prescripto-appointment-booking-system
axios bcrypt cloudinary express expressjs jwt jwt-authentication mern mern-stack mongodb node nodejs razorpay react stripe tailwindcss
Last synced: about 1 year ago
JSON representation
- Host: GitHub
- URL: https://github.com/asmitamishra24/prescripto-appointment-booking-system
- Owner: AsmitaMishra24
- License: mit
- Created: 2025-05-05T16:19:39.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-05-05T16:57:19.000Z (about 1 year ago)
- Last Synced: 2025-05-05T17:49:34.132Z (about 1 year ago)
- Topics: axios, bcrypt, cloudinary, express, expressjs, jwt, jwt-authentication, mern, mern-stack, mongodb, node, nodejs, razorpay, react, stripe, tailwindcss
- Language: JavaScript
- Homepage:
- Size: 3.64 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Prescripto - Appointment Booking System🏥
## 📝 Project Overview
Prescripto is a full-stack web application that allows patients to book appointments with doctors, doctors to manage their schedules, and admins to oversee the platform. Built using the **MERN stack**, it simplifies and streamlines the medical appointment process.
## ✨ Features
### Patient
- Register and log in to the platform
- Search for doctors based on specialization
- View doctor profiles along with availability
- Book appointments with selected doctors
- Cancel upcoming appointments if needed
- View status and history of all appointments
- Make payments securely via Stripe and Razorpay
### Doctor
- Log in to the platform
- Set and update their availability
- View appointment requests from patients
- Approve or reject appointments
- Manage confirmed appointments
- Cancel or approve existing appointments
- View dashboard with total income, appointments, and patient count
### Admin
- Log in to a secure admin dashboard
- View the list of all registered doctors
- Add new doctor profiles manually
- Monitor and manage all appointment data
- Control user access and manage platform statistics
- Cancel any doctor’s appointment if necessary
- Set and update doctors’ availability
- View total counts of doctors, appointments, and patients
## 🧰 Tech Stack
**Frontend** - React.js, Tailwind CSS, Toastify, Axios
**Backend** - Node.js, Express.js
**Authentication & Security** - JWT (JSON Web Token), Bcrypt.js
**Database** - MongoDB
**Storage** - Cloudinary (for image/file upload)
**Payment Integration** - Stripe, Razorpay
## ✅ Prerequisites
Make sure you have the following installed:
- [Node.js](https://nodejs.org/) – for running the backend server
- [MongoDB](https://www.mongodb.com/) – as the database
- [Stripe](https://stripe.com/docs/keys) account – for payment integration
- [Razorpay](https://razorpay.com/docs/api/) account – for additional payment gateway support
## ⚙️ Setup Instructions
### 1. Clone the Repository
First, clone the repository to your local machine:
```bash
git clone https://github.com/AsmitaMishra24/prescripto-appointment-booking-system.git
cd prescripto-appointment-booking-system
```
### 2. Set Up the Backend
Navigate to the backend folder and install the required dependencies:
```bash
cd backend
npm install
```
Create a ```.env``` file in the backend folder with the following configuration:
```.env
# General Config
PORT=5000
NODE_ENV=development
CURRENCY=INR
JWT_SECRET=your_jwt_secret_key
# Admin Panel Credentials
ADMIN_EMAIL=admin@example.com
ADMIN_PASSWORD=greatstack123
# MongoDB Setup
MONGODB_URI=your_mongodb_connection_string
# Cloudinary Setup
CLOUDINARY_NAME=your_cloud_name
CLOUDINARY_API_KEY=your_cloudinary_api_key
CLOUDINARY_SECRET_KEY=your_cloudinary_secret_key
# Razorpay Payment Integration
RAZORPAY_KEY_ID=your_razorpay_key_id
RAZORPAY_KEY_SECRET=your_razorpay_secret_key
# Stripe Payment Integration
STRIPE_SECRET_KEY=your_stripe_secret_key
# App URLs (optional but helpful)
FRONTEND_URL=http://localhost:5173
ADMIN_URL=http://localhost:5174
```
Start the backend server:
```bash
npm run server
```
This will start the server on ```http://localhost:4000```.
### 3. Set Up the Frontend
Open another terminal, navigate to the frontend folder, and install the required dependencies:
```bash
cd frontend
npm install
```
Create a ```.env``` file in the frontend folder:
```.env
VITE_BACKEND_URL=http://localhost:4000
VITE_RAZORPAY_KEY_ID=your_razorpay_key_id
```
Start the frontend:
```bash
npm run dev
```
This will start the frontend on ```http://localhost:5173```.
### 4. Set Up the Admin Panel
Open another terminal, navigate to the admin folder, and install the required dependencies:
```bash
cd admin
npm install
```
Create a ```.env``` file in the admin folder:
```env
VITE_CURRENCY=₹
VITE_BACKEND_URL=http://localhost:4000
```
Start the admin panel:
```bash
npm run dev
```
This will start the admin panel on ```http://localhost:5174```.
### 5. Open the Application
Backend: ```http://localhost:4000```
Frontend: ```http://localhost:5173```
Admin Panel: ```http://localhost:5174```
## 📝 Notes
1. Ensure that the `.env` variables are correctly configured in the `backend` folder.
2. Make sure MongoDB, Stripe, and Razorpay services are active and properly connected.
## 👩💻 Developer
This project was developed by
- [Asmita Mishra](https://github.com/AsmitaMishra24)
- [Anamika Raj Patel](https://github.com/Anamika-Raj-Patel04052003)
- [Anubhuti Jaiswal](https://github.com/ANUBHUTIjaiswal)
- [Bhagyashree Deshpande](https://github.com/avantika1411)
## 📬 Contact
For any questions or feedback, feel free to reach out at:
- **GitHub**: [AsmitaMishra](https://github.com/AsmitaMishra24)
- **LinkedIn**: [Asmita Mishra](https://www.linkedin.com/in/asmitamishra1/)