Java-based Gym Membership Management System that replicates real-world gym operations using OOP. Developed for CS151 Spring 2026.
Team Members:
- Julie Nguyen
- Chelsea Pham
- Alexandra Stankovich
- Jhames Carigma
Proposed Specifications
Build
This application can be built using GNU Make. Application can be built as GymManagement.jar file.
To build this application, on command line in src directory run:
make
To run this application, on command line run:
make run
or
java -jar Main.jar
To remove all binary files and leave only source, on command line run:
make clean
Overview
- The Gym Membership Application is a Java-based system which replicates the operations of a real-world gym through OOP. The system will support two main users with that being Members and Employees. Members can enroll in gym classes, handle billing information along with managing their memberships whereas Employees have privileges such as assigning roles, register new members and manage membership benefits.
Our Design The application stimulates a real-world gym through classes such as:
- Membership - Represents membership tiers such as benefits to specific amenities, including payment options (monthly, annually)
- Notification – Handles system notifications such as class enrollment confirmations or membership reminders.
- Gym_Class - Contains class schedules, enrolled/pending members, capacity limits, fitness classes such as Yoga, Dance
- Gym - GYM_ID, address, operating_hours, members, employees
- Employee - Employees have privileges to assign roles, register new members, manage member’s gym membership tiers
- Member - Representing individual gym members along with their personal information, membership tier, billing information and enrollments for classes and/or trainers
OOP Components These classes manage membership billing and payment processing.
- Abstract Class: PaymentMethod
- Subclasses: CreditCardPayment, PayPalPayment, BankTransferPayment
Design Considerations
- For our application, we will include calculative logics for membership upgrades/downgrades along with cancellation fees, prevent class-over enrollment, and transitioning free-trial memberships into paid memberships if it is not cancelled before the processed payment due date.
Contributions
- Alexandra Stankovich
- src/gymmanagement/GymAbstractObject.java - Implemented abstract object used as the parent for various objects managed by the program.
- src/gymmanagement/GymObject.java - Implemented parent class for most of objects used by the program. Provided unified handling of IDs, lists of objects, procedures for adding and removing objects. Implemented a text parser used for loading object data from CSV file.
- src/gymmanagement/GymManagement.java - Implemented upper-level procedures for loading of objects (of subclasses of
GymObject) from CSV file. - src/model/Employee.java - Implemented full functionality of
Employeeclass, specific implementation ofManageMenu()method. - src/model/Coach.java - Implemented full functionality of
Coachclass as a subclass ofEmployee. Implemented references betweenGymClassandCoach, specific implementation ofManageMenu()method. - src/model/GymClass.java - Made some updates related to handling of
CoachandMemberclasses, such asassignCoach()method. - src/model/Member.java - Some coordination with handling of
enrolledClasses. - src/gymmanagement/Menu.java - Implemented menu and input system.
- src/main/Main.java - Implemented part of menu system.