The Doctor Appointment System is a complete backend web application developed using Flask and SQLite that simplifies appointment scheduling between patients and doctors.
The system provides secure authentication, appointment management, role-based access, an administrative dashboard, and automated email notifications for every appointment lifecycle.
It demonstrates practical backend engineering concepts including database design, authentication, CRUD operations, email integration, and role-based authorization.
- Secure User Registration
- User Login
- Logout Functionality
- Session Management
- Password Authentication
- Doctor Profiles
- Medical Specializations
- Doctor Availability
- Appointment Schedule
- Browse Doctors
- Book Appointment
- View Appointment History
- Cancel Appointment
- Appointment Status Tracking
- Create Appointment
- View Appointment
- Update Appointment
- Cancel Appointment
- Appointment Approval Workflow
- Rejection Workflow
- Status Management
The administrator has complete control over the system.
β View Users
β Manage Patients
β Manage Doctors
β Remove Users
β View All Appointments
β Approve Appointment
β Reject Appointment
β Cancel Appointment
β Track Appointment Status
The application automatically sends email notifications for:
π© Appointment Booking
π© Appointment Approval
π© Appointment Rejection
π© Appointment Cancellation
Supports:
- Gmail SMTP
- Local Debug SMTP
- Production SMTP Server
- User Authentication
- Session Protection
- Role-Based Access Control
- Admin Authorization
- Input Validation
- Secure Form Handling
| Category | Technologies |
|---|---|
| Backend | Flask |
| Language | Python |
| Database | SQLite |
| ORM | SQLAlchemy |
| Forms | Flask-WTF |
| Flask-Mail | |
| Authentication | Flask Login |
| Frontend | HTML5, CSS3, Bootstrap |
| Templates | Jinja2 |
doctor-appointment-system/
β
βββ app.py
βββ models.py
βββ forms.py
βββ routes.py
βββ email_utils.py
βββ requirements.txt
β
βββ templates/
β βββ admin/
β βββ patient/
β βββ doctor/
β βββ auth/
β
βββ static/
β
βββ instance/
β βββ database.db
β
βββ README.md
python -m venv venvWindows
venv\Scripts\activateLinux / macOS
source venv/bin/activatepip install -r requirements.txtpython -m smtpd -c DebuggingServer -n localhost:8025flask --app app.py init-dbflask --app app.py runApplication URL
http://127.0.0.1:5000
Email:
admin@example.com
Password:
password
Email:
patient@example.com
Password:
password
Email:
doc1@example.com
Password:
password
Specialization:
Cardiology
Email:
doc2@example.com
Password:
password
Specialization:
Dermatology
Configure environment variables
MAIL_SERVER=smtp.gmail.com
MAIL_PORT=587
MAIL_USE_TLS=True
MAIL_USERNAME=your@gmail.com
MAIL_PASSWORD=your_app_password
MAIL_DEFAULT_SENDER=your@gmail.comPatient Registration
β
βΌ
User Login
β
βΌ
Browse Doctors
β
βΌ
Book Appointment
β
βΌ
Appointment Stored
β
βΌ
Email Notification Sent
β
βΌ
Admin Reviews
β
βΌ
Approve / Reject
β
βΌ
Patient Receives Email
- PostgreSQL Migration
- REST API Integration
- JWT Authentication
- Doctor Availability Calendar
- Payment Gateway Integration
- Video Consultation
- Prescription Upload
- Medical Reports
- SMS Notifications
- Docker Deployment
- CI/CD Pipeline
- AWS Deployment
- Redis Caching
- Appointment Analytics Dashboard
This project demonstrates practical experience with:
- Flask Application Development
- SQLAlchemy ORM
- Authentication & Authorization
- CRUD Operations
- MVC Architecture
- Database Design
- Flask-Mail Integration
- SMTP Configuration
- Admin Dashboard Development
- Session Management
- Form Validation
- Production Configuration
- Backend System Design
Unlike a basic CRUD application, this project focuses on solving a real-world healthcare scheduling problem by implementing:
- Multi-role authentication
- Appointment lifecycle management
- Automated email communication
- Administrative control panel
- Secure backend architecture
- Clean and maintainable project structure
These features closely resemble patterns used in production-grade web applications.
Python Backend Developer | Django Developer | Flask Developer
I enjoy designing backend systems that are clean, scalable, and practical. My primary focus is on building REST APIs, authentication systems, database-driven applications, and production-ready backend architectures using Python.
Through projects like this Doctor Appointment System, I have strengthened my understanding of backend development by implementing real-world workflows such as role-based access control, secure authentication, email automation, and complete CRUD operations.
I continuously explore better software engineering practices, modern backend technologies, and scalable system design to build applications that are reliable, maintainable, and ready for real-world deployment.