College Group Project - A comprehensive web-based healthcare platform for managing medical appointments between patients, doctors, and administrators.
- π― Project Overview
- π₯ College Project Information
- β¨ Key Features
- ποΈ Project Structure
- π» Tech Stack
- βοΈ Installation & Setup
- π How to Run
- π€ User Roles
- π API Endpoints
- πΈ Screenshots
- π€ Contributing
- π License
The Smart Appointment Booking System is a modern, full-stack web application designed to revolutionize healthcare appointment management. This system provides a seamless experience for patients to book appointments, doctors to manage their schedules, and administrators to oversee the entire platform.
Traditional appointment booking systems are often inefficient, leading to:
- Long waiting times for patients
- Poor communication between patients and doctors
- Difficulty in managing schedules
- Lack of digital prescription management
A comprehensive digital platform that:
- Streamlines the appointment booking process
- Provides role-based access for different user types
- Enables digital prescription management
- Offers real-time appointment tracking
- Ensures secure user authentication
- Course: B.tech CSE & AI-ML
- Project Type: Group Project (Full Stack Development)
- Duration: 3 Months
- Academic Year: 2025
| Name | Role | Responsibilities |
|---|---|---|
| Pratik Kumar Pan | Frontend Developer | React.js, UI/UX Design |
| Adarsh Priydarshi & Ayush Kumar Jha | Backend Developer | Node.js, API Development |
| Devendra Mishra | Database Designer | Prisma, MySQL Schema |
| Ayush Kumar Jha & Adarsh Priydarshi | Project Manager | Documentation, Testing |
- Master full-stack web development
- Understand database design and relationships
- Implement secure authentication systems
- Learn API development and integration
- Practice collaborative development using Git
- JWT-based secure authentication
- Role-based access control (RBAC)
- Password encryption using bcrypt
- Protected routes and middleware
- Personal dashboard with appointment overview
- Availability slot management
- Patient history access
- Digital prescription creation
- Appointment confirmation/rejection
- Browse available doctors by specialization
- Real-time slot availability checking
- Easy appointment booking interface
- Appointment history tracking
- Prescription download functionality
- User management (approve/suspend accounts)
- System analytics and reporting
- Doctor and patient oversight
- Platform configuration settings
- Three-stage appointment lifecycle:
- π‘ Pending - Newly booked appointments
- π’ Confirmed - Doctor-approved appointments
- β Completed - Finished consultations with prescriptions
- Automatic email notifications
- Cancellation management
- Digital prescription creation by doctors
- Secure prescription storage
- PDF download functionality for patients
- Prescription history tracking
π Appointment-Booking-System/
βββ π backend/ # Node.js Backend Server
β βββ π src/
β β βββ π config/ # Database & app configuration
β β βββ π controllers/ # Route handlers & business logic
β β βββ π middlewares/ # Authentication & validation
β β βββ π routes/ # API route definitions
β β βββ π services/ # Business logic services
β β βββ π utils/ # Utility functions
β β βββ π app.js # Express app configuration
β β βββ π server.js # Server entry point
β βββ π prisma/
β β βββ π migrations/ # Database migrations
β β βββ π schema.prisma # Database schema definition
β βββ π package.json # Backend dependencies
β βββ π .env # Environment variables
β βββ π .env.example # Environment template
β
βββ π frontend/ # React.js Frontend Application
β βββ π src/
β β βββ π components/ # Reusable React components
β β βββ π pages/ # Page components
β β βββ π hooks/ # Custom React hooks
β β βββ π context/ # React context providers
β β βββ π utils/ # Frontend utilities
β β βββ π assets/ # Images, icons, styles
β β βββ π main.jsx # React app entry point
β βββ π package.json # Frontend dependencies
β βββ π vite.config.js # Vite configuration
β βββ π index.html # HTML template
β
βββ π README.md # Project documentation (this file)
βββ π idea.md # Project planning & ideas
βββ π .git/ # Git version control
| Technology | Purpose | Version |
|---|---|---|
| UI Framework | ^19.1.1 | |
| Build Tool | ^7.1.2 | |
| HTTP Client | ^1.12.2 | |
| Routing | ^7.9.1 |
| Technology | Purpose | Version |
|---|---|---|
| Runtime Environment | Latest | |
| Web Framework | Latest | |
| ORM | ^6.16.3 | |
| Authentication | ^9.0.2 | |
| Password Hashing | ^6.0.0 |
| Technology | Purpose |
|---|---|
| Primary Database | |
| Database ORM |
| Tool | Purpose |
|---|---|
| Version Control | |
| Code Linting | |
| Development Server |
Before you begin, ensure you have the following installed on your system:
# Clone the project repository
git clone https://github.com/your-username/Appointment-Booking-System.git
# Navigate to the project directory
cd Appointment-Booking-System# Navigate to backend directory
cd backend
# Install backend dependencies
npm install
# Create environment file from template
cp .env.example .envEdit the .env file in the backend directory:
# Database Configuration
DATABASE_URL="mysql://username:password@localhost:3306/appointment_booking"
# JWT Secret (use a strong, random string)
JWT_SECRET="your-super-secret-jwt-key-here"
# Server Configuration
PORT=5000
NODE_ENV=development
# Email Configuration (optional)
EMAIL_HOST="smtp.gmail.com"
EMAIL_PORT=587
EMAIL_USER="your-email@gmail.com"
EMAIL_PASS="your-app-password"# Generate Prisma client
npx prisma generate
# Run database migrations
npx prisma migrate dev
# (Optional) Seed the database with sample data
npx prisma db seed# Navigate to frontend directory (from project root)
cd frontend
# Install frontend dependencies
npm install# In the backend directory
cd backend
npm run devThe backend server will start on http://localhost:3000
# In a new terminal, navigate to frontend directory
cd frontend
npm run devThe frontend application will start on http://localhost:5173
- Frontend: http://localhost:5173
- Backend API: http://localhost:3000
- Database Studio:
npx prisma studio(run in backend directory)
cd backend
npm startcd frontend
npm run build
npm run previewLogin Credentials: doctor@example.com / password123
Capabilities:
- π View and manage daily appointments
- β° Set availability slots
- β Confirm or reject appointment requests
- π Create and manage prescriptions
- π₯ View patient history and details
- π Access appointment analytics
Login Credentials: patient@example.com / password123
Capabilities:
- π Browse doctors by specialization
- π View available appointment slots
- π Book new appointments
- π View appointment history
- π Download prescriptions
- βοΈ Update profile information
Login Credentials: admin@example.com / password123
Capabilities:
- π₯ Manage all users (patients & doctors)
- β Approve or suspend user accounts
- π View system analytics and reports
- βοΈ Configure system settings
- ποΈ Manage database records
- π§ Send system notifications
POST /api/auth/register # User registration
POST /api/auth/login # User login
POST /api/auth/logout # User logout
GET /api/auth/profile # Get user profile
PUT /api/auth/profile # Update user profileGET /api/doctor/appointments # Get doctor's appointments
POST /api/doctor/slots # Create availability slots
PUT /api/doctor/slots/:id # Update availability slot
DELETE /api/doctor/slots/:id # Delete availability slot
POST /api/doctor/prescription # Create prescription
GET /api/doctor/patients # Get doctor's patientsGET /api/patient/doctors # Get all doctors
GET /api/patient/appointments # Get patient's appointments
POST /api/patient/book # Book new appointment
PUT /api/patient/appointments/:id # Update appointment
DELETE /api/patient/appointments/:id # Cancel appointment
GET /api/patient/prescriptions # Get patient's prescriptionsGET /api/admin/users # Get all users
PUT /api/admin/users/:id # Update user status
DELETE /api/admin/users/:id # Delete user
GET /api/admin/appointments # Get all appointments
GET /api/admin/analytics # Get system analyticsGET /api/specializations # Get all medical specializations
GET /api/appointments/:id # Get specific appointment
PUT /api/appointments/:id # Update appointment statusWe welcome contributions from all team members! Please follow these guidelines:
-
Create a new branch for your feature:
git checkout -b feature/your-feature-name
-
Make your changes and commit them:
git add . git commit -m "Add: your descriptive commit message"
-
Push to your branch:
git push origin feature/your-feature-name
-
Create a Pull Request on GitHub
- Use meaningful variable and function names
- Add comments for complex logic
- Follow consistent indentation (2 spaces)
- Test your code before committing
- Update documentation when needed
If you find a bug, please create an issue with:
- Clear description of the problem
- Steps to reproduce
- Expected vs actual behavior
- Screenshots (if applicable)
This project is created for educational purposes as part of our college coursework. All rights reserved to the team members.
This project demonstrates our understanding of:
- Full-stack web development principles
- Database design and relationships
- RESTful API development
- User authentication and authorization
- Frontend-backend integration
- Version control with Git
- β Implemented secure user authentication
- β Created responsive user interfaces
- β Designed normalized database schema
- β Built RESTful API endpoints
- β Integrated frontend with backend
- β Implemented role-based access control
- π± Mobile application development
- π³ Payment gateway integration
- π§ Advanced email notification system
- π Advanced analytics and reporting
- π Real-time notifications
- π Multi-language support




