MediSchedule is a comprehensive medical appointment management system that facilitates seamless interaction between patients, doctors, and administrators. Built with modern web technologies, it provides a robust platform for managing medical appointments with features like user authentication, appointment scheduling, availability management, and role-based access control.
- Patient Registration & Authentication with reCAPTCHA verification
- Appointment Booking with available time slots
- Appointment Management (view, filter, and search appointments)
- Profile Management with medical history tracking
- Responsive Interface for all device types
- Doctor Registration & Authentication with specialization details
- Appointment Management with patient information
- Availability Scheduling with customizable time slots
- Profile Management with qualifications and specializations
- Patient Appointment History access
- Admin Dashboard with comprehensive overview
- User Management (patients and doctors)
- Appointment Oversight for all users
- System Administration capabilities
- Advanced Filtering & Search functionality
- Runtime: Node.js
- Framework: Express.js
- Database: MongoDB with Mongoose ODM
- Authentication: JWT with HTTP-only cookies
- Security: bcryptjs for password hashing
- Validation: Validator.js
- Environment: dotenv for configuration
- Framework: React.js 19.0.0
- Routing: React Router DOM
- Styling: Tailwind CSS with DaisyUI
- State Management: React Hooks
- Forms: React Hook Form
- HTTP Client: Axios
- Security: Google reCAPTCHA
medi-schedule/
โโโ backend/ # Server-side application
โ โโโ app/
โ โ โโโ controllers/ # Business logic controllers
โ โ โโโ database/ # Database models and connection
โ โ โโโ middleware/ # Authentication and other middleware
โ โ โโโ routes/ # API route definitions
โ โ โโโ services/ # External services (reCAPTCHA)
โ โ โโโ utils/ # Utility functions
โ โโโ index.js # Server entry point
โโโ frontend/ # Client-side application
โ โโโ src/
โ โ โโโ components/ # Reusable UI components
โ โ โโโ pages/ # Page components
โ โ โโโ routes/ # Route configuration
โ โ โโโ services/ # API service calls
โ โ โโโ layouts/ # Layout components
โ โโโ index.html # HTML entry point
โโโ docs/ # Documentation and assets
โ โโโ images/ # Application screenshots
โ โโโ *.md # Documentation files
โโโ localssl/ # SSL certificates for local development
- Node.js (v16 or higher)
- MongoDB (local or cloud instance)
- Git
- Navigate to backend directory:
cd backend - Install dependencies:
npm install
- Create
.envfile (see Environment Variables) - Start development server:
npm run dev
- Navigate to frontend directory:
cd frontend - Install dependencies:
npm install
- Create
.envfile (see Environment Variables) - Start development server:
npm run dev
See the environment setup guides:
Comprehensive API documentation is available:
- Installation Guide - Detailed setup instructions
- Features Overview - Complete feature documentation
- Code Formatting - Development style guide
- Changelog - Version history and updates
| Page | Screenshot |
|---|---|
| Homepage | ![]() |
| Login | ![]() |
| Dashboard | ![]() |
| Appointments | ![]() |
| Profile | ![]() |
| Register | ![]() |
The backend is configured for Vercel deployment with vercel.json:
{
"version": 2,
"builds": [{ "src": "index.js", "use": "@vercel/node" }],
"routes": [{ "src": "/(.*)", "dest": "/index.js" }]
}The frontend is configured for Netlify deployment with netlify.toml:
[build]
command = "npm run build"
publish = "dist"
[[redirects]]
from = "/*"
to = "/index.html"
status = 200- Password Hashing: bcryptjs with salt rounds
- JWT Authentication: Secure token-based authentication
- HTTP-only Cookies: Prevents XSS attacks
- CORS Configuration: Controlled cross-origin requests
- Input Validation: Comprehensive data validation
- reCAPTCHA Integration: Bot protection for forms
This project is licensed under the Apache License 2.0.
Ismaeil Alrewany
- ๐ง Email: ismailalrewany332@gmail.com
- ๐ฑ Phone: +201097227910
- ๐ฑ GitHub: github.com/ismaeilalrewany
- ๐ผ LinkedIn: linkedin.com/in/ismaeil-alrewany
- ๐ซก Qabilah: qabilah.com/profile/ismaeil-alrewany
- ๐ Portfolio: ismaeilalrewany.tech
- Email/SMS notifications for appointments
- Real-time updates with WebSocket
- Payment integration
- Advanced reporting and analytics
- Mobile application
- Multi-language support
- Telemedicine integration
For detailed documentation, please refer to the docs directory.





