Skip to content

janithcd/gym-admin-system

Repository files navigation

Gym Admin System

A professional Spring Boot Gym Management and Access Control System built for a small or medium-sized gym. The system manages members, membership plans, payments, receipts, access checks, access logs, reports, CSV exports, admin users, profile management, validation messages, and SweetAlert-based confirmations.

This project is designed to work first as a local-hosted gym system and can later be upgraded for cloud hosting, QR member registration, mobile access, multi-branch support, or biometric device integration.

Main Features

  • Admin login and logout
  • Admin user management
  • Admin profile and change password
  • Member management
  • Membership plan management
  • Payment management
  • Payment receipt printing
  • Access control simulation
  • Access logs
  • Reports
  • CSV export
  • Search and filters
  • Pagination
  • SweetAlert confirmations
  • Validation messages
  • Automatic member expiry update
  • Old access log cleanup
  • Future biometric integration support

Technology Stack

Layer Technology
Language Java 17
Framework Spring Boot
Security Spring Security
ORM Spring Data JPA / Hibernate
Database MySQL
Template Engine Thymeleaf
UI Framework Bootstrap
Charts Chart.js
Alerts SweetAlert2
Build Tool Maven
IDE IntelliJ IDEA
Hosting Target Local PC / Mini PC / Future VPS

Default Admin Login

Username: admin
Password: admin123

After first login, change the password from:

My Profile → Change Password

Important URLs

Page URL
Login /login
Dashboard /
Members /members
Add Member /members/new
Membership Plans /plans
Payments /payments
Add Payment /payments/new
Access Scan /access/scan
Access Logs /access/logs
Reports /reports
Admin Users /admins
My Profile /profile

Local Run

Create database:

CREATE DATABASE gym_admin_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

Run project:

mvn spring-boot:run

Open:

http://localhost:8080

Build JAR

mvn clean package -DskipTests

Local Hosting

Recommended setup:

Server PC
├── Java 17
├── MySQL
├── Spring Boot JAR
├── Daily backup
└── Static IP

Access from server PC:

http://localhost:8080

Access from other devices on same network:

http://SERVER-IP:8080

Example:

http://192.168.1.10:8080

Future Biometric Integration

The system already has a deviceUserId field for future biometric integration.

Recommended method:

Gym Admin System stores:
- Member code
- Device user ID
- Status
- Payments
- Access logs

Biometric device stores:
- Fingerprint template
- Face template
- Card/password data

Do not store fingerprint images or biometric templates directly in the MySQL database unless there is a strong legal, security, and technical reason to do so.

Project Status

Core system completed.
Ready for local hosting and real gym testing.
Future biometric integration can be added after device testing.

:::

About

A Spring Boot-based Gym Administration and Biometric Access Control System designed to manage members, membership plans, payments, expiry tracking, and gym entry permissions through fingerprint or face recognition device integration.

Resources

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages