This project is a desktop-based appointment management system built using Python (Tkinter) and SQLite.
It is designed for services like plumbing and electrician work, where customers can book appointments and workers can track their assigned jobs.
The system provides role-based navigation and organizes all pages (login, admin, bookings, workers) inside a clean GUI framework.
This project aims to replace manual booking methods with a secure, automated, and user-friendly interface.
- 🔐 Role-Based Login System (Admin, Receptionist, Worker)
- 🧾 Appointment Scheduling & Tracking
- 👥 User Registration & Management
- 🧰 Worker Assignment & Status Updates
- 💾 SQLite Database Integration
- 🧱 Modular and Scalable Code Structure
- 🔒 Password Hashing for Security
- ⚡ Responsive and Intuitive UI
- Language: Python
- Framework: Tkinter (for GUI)
- Database: SQLite3
- Libraries: hashlib, datetime, ttk, messagebox
- Entry point of the application.
- Initializes the main window using the
ServiceAppclass. - Loads the login page first.
- Manages switching between frames using the Tkinter container system.
Contains all UI pages:
- LoginPage
- AdminHomePage
- BookingPage
- WorkerHomePage
- Settings Popup
- Default Charges Window
- Uses Tkinter Frames and custom page navigation.
- Handles all database operations.
- Creates tables for:
- users (roles: admin / worker)
- bookings / appointments
- default charges
- Contains methods for:
- registration
- login authentication
- booking creation
- worker assignment
- status updates
- loading system defaults
- Stores constant values (colors, styles, fonts, sizes).
- Keeps UI styling consistent across all pages.
- User enters username & password.
- System checks credentials in SQLite.
- Based on role:
- Admin → Admin Home Page
- Worker → Worker Dashboard
- Can add bookings.
- Assign workers to tasks.
- View all appointments.
- Update charges (stored in DB).
- Edit or delete bookings.
- Admin enters:
- Customer name
- Phone
- Address
- Service type
- Worker
- Charges
- Date & time
- Booking is saved in SQLite.
- Worker logs in.
- Views list of assigned appointments.
- Updates job status:
- Pending → Completed
- All data (users, bookings, charges) is stored in SQLite.
- Auto-created tables through database.py if not present.
- Email/SMS notification for bookings.
- Calendar view for upcoming appointments.
- Analytics dashboard for admins.
- Export reports to PDF or Excel.
This Appointment Management System provides an efficient, secure, and organized platform for managing service appointments.
It enhances productivity, reduces manual errors, and ensures smooth coordination between admins, receptionists, and workers.
Sumit Kate
Security Analyst | Python Developer | Tkinter GUI Enthusiast