A command-line business management tool for small spas, built with Python and SQLite. Manage clients, schedule appointments, and track income and expenses — all from one app.
──────────────────────────────────────────────────
🌺 Ho'omana Spa Manager
──────────────────────────────────────────────────
1. Client Management
2. Appointments
3. Financial Tracker
0. Exit
Choose an option: 3
──────────────────────────────────────────────────
Financial Summary
──────────────────────────────────────────────────
Total Income: $ 1,240.00
Total Expenses: $ 312.50
────────────────────────────────
Net Profit: $ 927.50
Income by Category:
Service Payment $980.00
Tips $160.00
Retail Sale $100.00
Expenses by Category:
Supplies $187.50
Marketing $125.00
Client Management
- Add clients with contact info and personal notes (allergies, preferences)
- View a full client roster
- Search clients by name
Appointment Scheduling
- Book appointments linked to specific clients
- Choose from a service menu (massage, facial, body scrub, etc.)
- Set date, time, and duration
- Update appointment status: Scheduled, Completed, Cancelled, No-Show
Financial Tracker
- Record income by category (service payments, tips, retail, gift cards)
- Record expenses by category (supplies, rent, marketing, staff, utilities)
- View a full financial summary with net profit/loss
- Browse recent transactions with +/- indicators
| Tool | Purpose |
|---|---|
| Python 3 | Core application logic |
| SQLite3 | Relational database (built into Python) |
datetime module |
Date handling and defaults |
No external libraries required — runs anywhere Python 3 is installed.
Three related tables with a foreign key relationship:
clients
id, name, phone, email, notes, created_at
appointments
id, client_id (FK → clients), service, date, time,
duration_min, status, notes
transactions
id, type, category, amount, description, date
# Clone the repo
git clone https://github.com/Smjoslin95/spa-management-system.git
# Navigate into the folder
cd spa-management-system
# Run the app
python3 spa_manager.pyA spa_manager.db file is automatically created on first run. No setup needed.
spa-management-system/
│
├── spa_manager.py # Main application — all logic and menus
├── spa_manager.db # Auto-generated SQLite database (gitignored)
└── README.md
- Designing a relational database schema with foreign keys linking tables
- Using Python's built-in
sqlite3module to create, read, update, and query data - Writing JOIN queries to combine client and appointment data in a single result
- Building a nested menu system with clean separation between modules
- Handling user input validation and error cases gracefully
- Thinking about real-world business workflows and translating them into data structures
- Export financial reports to CSV
- Add monthly revenue charts using
matplotlib - Send appointment reminder emails via
smtplib - Build a simple web interface using Flask
- Add login/authentication for multi-staff use
Built from real experience working as a Spa Coordinator at Ho'omana Spa in Maui, Hawaii. The features reflect actual day-to-day needs: tracking client preferences, managing a booking calendar, and keeping an eye on revenue vs. expenses.
Samantha Joslin — Software Engineering student at SNHU, transitioning into tech from 8+ years in operations and hospitality leadership.