Skip to content

Smjoslin95/spa-management-system

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 

Repository files navigation

🌺 Spa Management System

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.

Python SQLite Status


📸 Demo

──────────────────────────────────────────────────
  🌺  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

✨ Features

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

🛠️ Tech Stack

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.


🗄️ Database Schema

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

🚀 Getting Started

# 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.py

A spa_manager.db file is automatically created on first run. No setup needed.


📁 Project Structure

spa-management-system/
│
├── spa_manager.py    # Main application — all logic and menus
├── spa_manager.db    # Auto-generated SQLite database (gitignored)
└── README.md

🧠 What I Learned Building This

  • Designing a relational database schema with foreign keys linking tables
  • Using Python's built-in sqlite3 module 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

🔮 Future Improvements

  • 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

💡 Inspiration

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.


👩‍💻 About the Author

Samantha Joslin — Software Engineering student at SNHU, transitioning into tech from 8+ years in operations and hospitality leadership.

About

No description or website provided.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages