Skip to content

About

A complete gym management solution featuring member management, attendance, memberships, trainer records, and an intuitive interface.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

Β 

History

8 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ‹οΈ Gym Management System

Java Desktop Application for Gym Member Management

A desktop-based Gym Management System developed using Java, Java Swing, JDBC, and MySQL to simplify gym member management through a structured and user-friendly application.

Java Java Swing JDBC MySQL OOP


πŸ“Œ Overview

The Gym Management System is a desktop-based Java application designed to streamline common gym management operations. It provides administrators with a user-friendly interface for managing gym member information and maintaining records efficiently.

The application demonstrates practical implementation of Object-Oriented Programming, Java Swing, JDBC, MySQL, database connectivity, CRUD operations, and layered software architecture.

The project follows a modular structure using separate packages for database operations, business logic, models, utilities, and the graphical user interface.


πŸ† Project Highlights

Category Details
πŸ‹οΈ Project Type Desktop Management Application
β˜• Programming Language Java
πŸ–₯️ User Interface Java Swing
πŸ’Ύ Database MySQL
πŸ”— Connectivity JDBC
🧱 Architecture Layered Architecture
πŸ“‚ Design Pattern DAO and Model-based Structure
πŸ”„ Core Operations Create, Read, Update, Delete & Search

🎯 Objectives

  • Simplify the management of gym member records.
  • Provide an easy-to-use desktop interface.
  • Store member information using a MySQL database.
  • Implement CRUD operations for member management.
  • Demonstrate Object-Oriented Programming concepts.
  • Implement database connectivity using JDBC.
  • Separate UI, business logic, and database operations.
  • Follow a modular and maintainable software architecture.

✨ Features

  • πŸ” Role-based login interface
  • πŸ‘€ Add new gym members
  • πŸ“‹ View member records
  • ✏️ Update member details
  • πŸ—‘οΈ Delete members
  • πŸ” Search members by name
  • πŸ’Ύ MySQL database integration
  • πŸ–₯️ Java Swing graphical user interface
  • πŸ”— JDBC database connectivity
  • πŸ“‚ DAO and Model-based architecture
  • 🧩 Modular package structure
  • πŸ’Ύ Persistent member records

πŸ› οΈ Technologies Used

Technology Purpose
β˜• Java Core programming language
πŸ–₯️ Java Swing Desktop graphical user interface
πŸ”— JDBC Communication between Java and MySQL
🐬 MySQL Database management and persistent storage
πŸ“¦ MySQL Connector/J Java-to-MySQL connectivity
🧱 Object-Oriented Programming Application design and implementation

🧩 Technology & Responsibility

Technology / Component Responsibility
Java Application logic and system implementation
Java Swing Graphical user interface
JDBC Database connectivity
MySQL Persistent data storage
DAO Database access operations
Model Application entities and data representation
Service Business logic
Utility Reusable database and configuration utilities

πŸ“‚ Project Structure

gym-management-system/
β”‚
β”œβ”€β”€ src/
β”‚   └── com/
β”‚       └── gym/
β”‚           β”œβ”€β”€ dao/
β”‚           β”œβ”€β”€ model/
β”‚           β”œβ”€β”€ service/
β”‚           β”œβ”€β”€ ui/
β”‚           └── util/
β”‚
β”œβ”€β”€ lib/
β”‚   └── MySQL Connector/J
β”‚
β”œβ”€β”€ .vscode/
β”‚
└── README.md

🧩 Source Code Structure

src/
└── com/
    └── gym/
        β”‚
        β”œβ”€β”€ dao/
        β”‚   └── Database Access Objects
        β”‚
        β”œβ”€β”€ model/
        β”‚   └── Entity / Data Classes
        β”‚
        β”œβ”€β”€ service/
        β”‚   └── Business Logic
        β”‚
        β”œβ”€β”€ ui/
        β”‚   └── Java Swing Interface
        β”‚
        └── util/
            └── Database Utilities

πŸ—οΈ System Architecture

The application follows a layered architecture to separate different responsibilities within the system. This improves maintainability, readability, and organization.

                 β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                 β”‚     User / Admin     β”‚
                 β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                            ↓
                 β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                 β”‚      UI Layer        β”‚
                 β”‚     Java Swing       β”‚
                 β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                            ↓
                 β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                 β”‚   Service Layer      β”‚
                 β”‚   Business Logic     β”‚
                 β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                            ↓
                 β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                 β”‚      DAO Layer       β”‚
                 β”‚ Database Operations  β”‚
                 β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                            ↓
                 β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                 β”‚    MySQL Database    β”‚
                 β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸ–₯️ UI Layer

The UI layer provides the graphical interface using Java Swing. Users interact with the application through forms, buttons, tables, search functionality, and other interface components.

βš™οΈ Service Layer

The Service layer contains business logic and coordinates operations between the user interface and database layer.

πŸ—„οΈ DAO Layer

The Data Access Object layer handles database operations such as inserting, retrieving, updating, deleting, and searching member records.

πŸ“¦ Model Layer

The Model layer contains entity classes used to represent application data such as gym members and other records.

πŸ”§ Utility Layer

The Utility layer contains reusable components such as database connection and configuration utilities.


πŸ”„ Application Workflow

User Login
    ↓
Authentication
    ↓
Main Dashboard
    ↓
Member Management
    ↓
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
↓           ↓           ↓           ↓
Add        View        Update      Delete
Member     Members     Member      Member
 \           |           |           /
  \          |           |          /
   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                    ↓
             MySQL Database

Workflow Steps

  1. User launches the desktop application.
  2. User authenticates through the login interface.
  3. The main management interface is displayed.
  4. The administrator selects a member management operation.
  5. The application processes the request through the Service layer.
  6. The DAO layer communicates with the MySQL database.
  7. The result is returned to the user interface.
  8. The updated member information is displayed.

πŸ’Ύ Database Operations

The system uses MySQL as the backend database and JDBC for communication between the Java application and the database.

The application supports standard CRUD operations for member management.

Operation Function
βž• Create Add new gym member records.
πŸ“– Read View and search existing member records.
✏️ Update Modify existing member information.
πŸ—‘οΈ Delete Remove member records from the database.

πŸ”— Database Connectivity

Java Application
       ↓
     JDBC
       ↓
MySQL Connector/J
       ↓
MySQL Database

JDBC acts as the communication layer between the Java application and the MySQL database. MySQL Connector/J provides the required driver for establishing this connection.


πŸ” Login & Access

The application provides a login interface to control access to the management system.

Login Screen
     ↓
Authentication
     ↓
Valid Credentials?
   ↙         β†˜
 Yes          No
 ↓             ↓
Dashboard    Access Denied

πŸ” Key Functionalities

πŸ‘€ Member Management

Administrators can add, view, update, delete, and search gym member records through the graphical interface.

πŸ” Login System

The application provides a login interface to control access to the management system.

πŸ”Ž Search

Members can be searched by name to quickly locate specific records.

πŸ’Ύ Persistent Storage

Member information is stored in a MySQL database, allowing records to persist between application sessions.


πŸ–₯️ User Interface

The application uses Java Swing to provide a desktop-based graphical user interface.

The interface is designed to allow administrators to perform common member management operations without directly interacting with the database.

  • πŸ” Login interface
  • πŸ‘€ Member registration form
  • πŸ“‹ Member records table
  • πŸ” Member search functionality
  • ✏️ Member update functionality
  • πŸ—‘οΈ Member deletion functionality

πŸ“Έ Results

Screen Description
πŸ” Login Screen Application authentication interface
🏠 Main Dashboard Main application management interface
πŸ‘€ Add Member Member registration form
πŸ“‹ Member Records Display of stored member information
✏️ Update Member Member information modification interface
πŸ” Search Member search functionality


🧱 Object-Oriented Programming

The project demonstrates fundamental Object-Oriented Programming concepts through its modular Java implementation.

Concept Application
Encapsulation Data and related methods are organized within classes.
Abstraction Database and business operations are separated from the UI.
Inheritance Reusable class structures can be extended where appropriate.
Polymorphism Methods and interfaces can support flexible implementations.

🧠 Key Concepts Demonstrated

  • β˜• Java application development
  • 🧱 Object-Oriented Programming
  • πŸ–₯️ Java Swing GUI development
  • πŸ”— JDBC database connectivity
  • 🐬 MySQL database management
  • πŸ”„ CRUD operations
  • πŸ“‚ DAO architecture
  • πŸ—οΈ Layered software architecture
  • πŸ” Authentication interface
  • πŸ“¦ Modular package organization
  • πŸ’Ύ Persistent data storage

πŸ“š What I Learned

  • Building desktop applications using Java Swing.
  • Applying Object-Oriented Programming principles in a practical project.
  • Connecting Java applications to MySQL using JDBC.
  • Implementing CRUD operations.
  • Organizing code using DAO, Model, Service, UI, and Utility layers.
  • Separating user interface logic from database operations.
  • Working with relational databases.
  • Designing modular Java applications.
  • Managing persistent application data.
  • Understanding layered software architecture.

▢️ Getting Started

Prerequisites

  • Java JDK 17 or later
  • MySQL Server
  • MySQL Connector/J
  • VS Code or IntelliJ IDEA

1. Clone the Repository

git clone https://github.com/kuunalmistry/gym-management-system.git

2. Navigate to the Project

cd gym-management-system

3. Configure MySQL

Create the required MySQL database and configure the database connection credentials in the application's database connection utility.

Make sure the following information matches your local MySQL setup:

  • Database URL
  • Database name
  • MySQL username
  • MySQL password
  • MySQL port

4. Configure MySQL Connector/J

Make sure the MySQL Connector/J library is available in the project's classpath or included inside the lib/ directory.

5. Run the Application

Open the project in VS Code or IntelliJ IDEA, configure the Java environment and database connection, and run the application's main class.


πŸ—‚οΈ Module Overview

Package Responsibility
dao/ Database access and CRUD operations
model/ Application entities and data classes
service/ Business logic and application operations
ui/ Java Swing user interface
util/ Database and reusable utility functions

⚠️ Limitations

  • The current system primarily focuses on member management.
  • Advanced trainer and attendance modules are not included.
  • Payment and billing functionality is not currently implemented.
  • The application requires a local MySQL database connection.
  • Database credentials must be configured before running the application.
  • The application is currently designed as a desktop-based system.

πŸ‘¨β€πŸ’» Author

Kuunal Mistry

B.Tech Student | Artificial Intelligence & Machine Learning

Interested in developing software applications using Java, Object-Oriented Programming, databases, and modern technology.


πŸ‹οΈ Managing Gym Operations Through Java

Built with Java, Swing, JDBC & MySQL

About

A complete gym management solution featuring member management, attendance, memberships, trainer records, and an intuitive interface.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages