BellaDesk is a lightweight Python Tkinter desktop application designed for small salons to manage daily operations such as appointments, services, staff, billing, and analytics. It is completely offline, uses CSV files as storage, and generates professional PDF invoices and daily business reports.
Python, Tkinter, CSV, ReportLab, Matplotlib, PIL (Pillow)
BellaDesk is a simple and efficient salon management system built using Tkinter. It manages daily salon workflows:
- Appointments
- Staff specialization
- Billing and discounts
- Analytics & charts
- PDF invoices and daily reports
All data is stored locally in CSV files, making the system portable and easy to run on any machine.
Displays:
- Total customers
- Daily income
- Most used services
- Staff performance insights
- Visual charts using Matplotlib
Users can:
- Add new appointments
- Choose multiple services
- Auto-calculate service duration
- Auto-assign qualified staff
- Check available time slots
- Save appointments to
appointments.csv
- Each service has a fixed time duration
- Previous appointment’s end-time determines the next slot
- Only staff who specialize in selected services appear in the list
Stored in staff.csv with:
- Staff name
- Specialization (Haircut, Facial, Coloring, etc.)
- Salary
Specialization data is used during appointments for intelligent staff assignment.
Features:
- Total price calculation based on selected services
- Discount support
- On-screen bill preview
- Prevents duplicate bills for the same appointment
- Saves transaction data to
bills.csv
Includes:
- Salon logo
- Customer information
- Services table with price
- Total → Discount → Final payable
- Footer message
Generates a complete business summary for any selected date:
- Total income
- Number of customers
- Most used service
- Top-performing staff
- Transaction table
- Auto-pagination for long data
BellaDesk uses three simple CSV files:
| File | Purpose |
|---|---|
staff.csv |
Staff data with specialization |
appointments.csv |
Appointment details |
bills.csv |
Billing and transaction history |
No database configuration required.
Tkinter-based interface featuring:
- Fullscreen responsive layout
- Sidebar navigation menu
- Header with app logo
- Dedicated screens for each function
Modular frames keep navigation smooth.
- Tkinter – GUI
- PIL (Pillow) – Image support
- ReportLab – PDF bills & reports
- Matplotlib – Dashboard visualizations
- CSV module – Data storage
- Datetime – Scheduling logic
- OS – File handling
BellaDesk helps salons:
- Automate appointment scheduling
- Reduce manual errors
- Track income and staff performance
- Generate professional invoices
- Produce daily business reports
- Maintain organized service records
BellaDesk is a Python Tkinter-based salon management application with features for appointments, staff specialization, billing, analytics, and PDF reporting. It uses CSV files for storage and integrates Pillow, Matplotlib, and ReportLab for images, charts, and invoice generation. The system automates scheduling, assigns skilled staff, and provides dashboards and printable business reports.
- Customer & appointment management
- Multiple service selection
- Automated billing
- CSV-based data storage
- Dashboard statistics
- PDF invoice generation
- PDF daily business report
- Matplotlib charts inside Tkinter
- Pop-up confirmations
- Clean and simple UI
- Python
- Tkinter
- CSV
- Pillow (optional)
- ReportLab
- Matplotlib
BDUI.py
appointments.csv
staff.csv
bills.csv
logo.png
All core logic resides in the main file: BDUI.py.
-
Install Python 3.8+
-
Install dependencies:
pip install pillow matplotlib reportlab
-
Run the application:
python BDUI.py
| Purpose | File |
|---|---|
| Appointment records | appointments.csv |
| Staff data | staff.csv |
| Billing transactions | bills.csv |
The app works completely offline with no database setup required.
- Add customer
- Select services
- Generate bill
- Save data to CSV
- Display charts
- Print and export PDF
- Exit confirmations
- Success pop-up notifications
Example pop-up:
messagebox.showinfo("Success", "All data saved successfully!")- Shift from CSV to SQLite or MongoDB
- Add login/authentication
- Cloud sync for multi-device use
- Enhanced staff analytics
Free to use for learning and personal projects.