Skip to content

A desktop-based Python application using Tkinter and SQLite for managing plumber and electrician appointments. It features role-based login (Admin, Receptionist, Worker), secure registration, appointment scheduling, and task tracking with a clean UI and efficient database management.

Notifications You must be signed in to change notification settings

Sumitkate55/DesktopBase_Appointment_System

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🧰 Desktop-Based Appointment System for Plumber and Electrician

📋 Project Overview

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.


⚙️ Features

  • 🔐 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

🧩 Tech Stack

  • Language: Python
  • Framework: Tkinter (for GUI)
  • Database: SQLite3
  • Libraries: hashlib, datetime, ttk, messagebox

🧩 Core Modules in This Project

1️⃣ main.py

  • Entry point of the application.
  • Initializes the main window using the ServiceApp class.
  • Loads the login page first.
  • Manages switching between frames using the Tkinter container system.

2️⃣ gui_pages.py

Contains all UI pages:

  • LoginPage
  • AdminHomePage
  • BookingPage
  • WorkerHomePage
  • Settings Popup
  • Default Charges Window
  • Uses Tkinter Frames and custom page navigation.

3️⃣ database.py

  • 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

4️⃣ constants.py

  • Stores constant values (colors, styles, fonts, sizes).
  • Keeps UI styling consistent across all pages.

⚙️ How the System Works (Workflow)

🔑 Step 1: Login

  • User enters username & password.
  • System checks credentials in SQLite.
  • Based on role:
    • Admin → Admin Home Page
    • Worker → Worker Dashboard

🧑‍💼 Step 2: Admin Workflow

  • Can add bookings.
  • Assign workers to tasks.
  • View all appointments.
  • Update charges (stored in DB).
  • Edit or delete bookings.

📝 Step 3: Booking Workflow

  • Admin enters:
    • Customer name
    • Phone
    • Address
    • Service type
    • Worker
    • Charges
    • Date & time
  • Booking is saved in SQLite.

🔧 Step 4: Worker Workflow

  • Worker logs in.
  • Views list of assigned appointments.
  • Updates job status:
    • Pending → Completed

💾 Step 5: Data Handling

  • All data (users, bookings, charges) is stored in SQLite.
  • Auto-created tables through database.py if not present.

🖼️ Screenshots

🔑 Login Page

login

📅 Appointment Dashboard

appoint

🧰 Worker Dashboard

worker

🧠 Future Enhancements

  • Email/SMS notification for bookings.
  • Calendar view for upcoming appointments.
  • Analytics dashboard for admins.
  • Export reports to PDF or Excel.

🏁 Conclusion

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.


👨‍💻 Developed By

Sumit Kate
Security Analyst | Python Developer | Tkinter GUI Enthusiast

About

A desktop-based Python application using Tkinter and SQLite for managing plumber and electrician appointments. It features role-based login (Admin, Receptionist, Worker), secure registration, appointment scheduling, and task tracking with a clean UI and efficient database management.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages