Design and implement a Health and Fitness Club Management System using PostgreSQL as the backend database.
The system models the core operations of a small fitness club and supports exactly three user roles:
The focus of this project is database design, normalization, and SQL correctness, not advanced UI or full-stack complexity.
This is an individual (solo) project. Each student designs and implements their own database schema and application. The project must be self-contained and runnable by the instructor.
To avoid over- or under-engineering, the system scope is intentionally limited:
| Requirement | Exact Expectation |
|---|---|
| Entities in ER Model | Minimum 6 entities (must be meaningful, not artificial) |
| Relationships in ER Model | Minimum 5 relationships, including at least one many-to-many |
| Application Operations | Exactly 8 total operations |
| Role Coverage | All 3 roles must be represented |
| Operation Distribution | 4 Member + 2 Trainer + 2 Admin |
| Database Features | At least 1 View, 1 Trigger, 1 Index (excluding PK indexes) |
| Database System | PostgreSQL (mandatory) |
| Normalization | Schema must be in 3NF or higher |
To ensure fairness and comparable workload:
View: Must combine data from at least two tables and support a realistic query use case.
Trigger: Must enforce a business rule (e.g., availability, capacity, automatic status update).
Index: Must improve performance for a realistic query (not just a primary key).
You may use any programming language or framework. You may use raw SQL or an ORM. The grading emphasis is on:
Full details are provided in the linked documents below. At a minimum, students will submit:
Each section below must be read carefully before implementation: