A desktop application for managing gym members, appointments, attendance, and locations — built with Python and PyQt5.
- Secure Login — Role-based access for Administrator, Manager, and Staff
- Dashboard — Live stats for total members, active members, today's check-ins, and locations, with recent activity and upcoming appointments
- Member Management — Add, edit, activate/deactivate members with personal and health information
- Appointment Scheduling — Book, track, and update appointments by type and status
- Attendance Tracking — Log check-ins and check-outs, view full attendance history
- Location Management — Add and manage gym locations with capacity and contact details
| Layer | Technology |
|---|---|
| Language | Python 3.10+ |
| UI Framework | PyQt5 |
| Data Storage | JSON files (file-based persistence) |
| Architecture | Repository → Service → View (layered) |
St-Marys-Fitness/
├── main.py # Application entry point
├── data/ # JSON data files (auto-created)
│ ├── members.json
│ ├── appointments.json
│ ├── attendance.json
│ └── locations.json
├── screenshots/ # UI screenshots
└── src/
├── models/ # Data models
│ ├── common.py # BaseModel, Address
│ ├── member.py # Member, MembershipType
│ ├── appointment.py # Appointment, AppointmentType
│ ├── attendance.py # AttendanceRecord
│ ├── location.py # Location
│ └── subscription.py # Subscription
├── repositories/ # JSON persistence layer
│ ├── base_repository.py
│ ├── member_repository.py
│ ├── appointment_repository.py
│ ├── attendance_repository.py
│ ├── location_repository.py
│ └── subscription_repository.py
├── services/ # Business logic layer
│ ├── member_service.py
│ ├── appointment_service.py
│ ├── attendance_service.py
│ └── location_service.py
└── ui/ # PyQt5 views
├── styles.py # Global stylesheet
├── main_window.py # App shell with sidebar navigation
├── login_view.py # Login dialog
├── dashboard_view.py # Dashboard with stats
├── member_view.py # Member management
├── appointment_view.py # Appointment scheduling
├── attendance_view.py # Attendance tracking
└── location_view.py # Location management
- Python 3.10 or later
- pip
# Clone the repository
git clone https://github.com/fredopoku/St-Marys-Fitness.git
cd St-Marys-Fitness
# Install dependencies
pip install PyQt5python3 main.py| Username | Password | Role |
|---|---|---|
| admin | admin123 | Administrator |
| manager | manager1 | Manager |
| staff | staff123 | Staff |
Frederick Opoku Afriyie
St Mary's University





