Report
Report
TABLE OF CONTENTS
SERIAL PAGE
NUMBER CONTENTS NUMBER
INTRODUCTION
OBJECTIVES
2 07
• System Objectives
PROJECT CATEGORY
3
• HTML 08-11
• Java script
• My SQL
• CSS
5 SYSTEM ANALYSIS
15-20
• Problem Definition
• Scope of System
• Feasibility Study
1
• Requirements Analysis
• System Uses
• Input And Output Design
SYSTEM DESIGN
7 23-32
• Screen Shots
SOURCE CODE
8
• Login Form 33-53
• Logout Form
• Admin Login
• Home page
• Bookings
10 CONCLUSION 57-58
11 BIBLIOGRAPHY 59-61
INTRODUCTION
The project aims to reduce the manual workload for gym administrators by
digitizing data handling and improving communication between staff and
members. It helps enhance customer experience, increase administrative
efficiency, and ensure accurate record keeping.
In this proposed system also provide the total information about machinery and
data of coaches is also stored in it. Services provided by Gym are also handled by
this system. This system structure is become very simple to understand because
of Data Flow Diagram provided by us. Context level Diagram and Some chart
are also available in this case study. The demo of using the software such as
customer detail form, data base of software is also provided by us.
The main purpose of the Gym Management System project is to digitize and
automate the administrative and operational tasks of a gym or fitness center. This
includes managing member registrations, tracking attendance, scheduling
workouts and classes, handling payments, and maintaining trainer and staff
information—all in a centralized platform.
By implementing this system, gyms can:
• Improve efficiency by reducing manual work and paperwork
• Enhance member experience through better communication and
personalized services
• Ensure accurate record-keeping and reduce the risk of human error
• Enable easy tracking and reporting for decision-making and business
growth
In short, the system aims to streamline gym operations, making it easier for
owners, staff, and members to interact with and benefit from the services offered.
A Gym Management System offers a lot of advantages for both gym owners
and members. Here’s a simple breakdown of the main benefits:
1. Streamlined Member Management
o Easy tracking of member registrations, renewals, and cancellations.
o Automated reminders for membership renewals and payments.
2. Automated Billing and Payments
o Online payment options reduce manual work.
o Automatic invoices and receipts make accounting easier.
3. Class Scheduling and Booking
o Members can view class schedules and book sessions online.
o Reduces overcrowding and helps manage capacity.
4. Staff and Trainer Management
o Manage trainer schedules, availability, and payroll efficiently.
o Assign trainers to specific classes or personal training sessions.
5. Access Control and Security
o Integrate with smart cards, QR codes, or biometric systems for
secure gym entry.
o Tracks attendance and ensures only active members access the
facility.
6. Improved Communication
o Send announcements, updates, promotions, or event info via app,
email, or SMS.
o Enhances member engagement and satisfaction.
7. Performance Tracking
o Members can track workouts, progress, and fitness goals digitally.
o Trainers can monitor client progress and adjust programs easily.
8. Reporting and Analytics
5
OBJECTIVES
• The main objective of the project is to develop software that facilitates the
data storage, data maintenance and its retrieval for the gym in an igneous
way.
• To store the record of the customers, the staff that has the privileges to
access, modify and delete any record and finally the service, gym provides
to its customers.
• Also, only the staff has the privilege to access any database and make the
required changes, if necessary.
• To develop a user friendly system that requires minimal user training. Most
of features and function are similar to those on any windows platform.
PROJECT CATEGORY
HTML:
• HTML stands for Hyper Text Markup Language. It is used to design web
pages using a markup language. HTML is the combination of Hypertext
and Markup language. Hypertext defines the link between the web pages.
A markup language is used to define the text document within tag which
defines the structure of web pages. This language is used to annotate (make
notes for the computer) text so that a machine can understand it and
manipulate text accordingly. Most markup languages (e.g. HTML) are
human-readable. The language uses tags to define what manipulation has
to be done on the text.
Features of HTML-
JavaScript:
JavaScript is a very powerful client-side scripting language. JavaScript is used
mainly for enhancing the interaction of a user with the webpage. In other words,
you can make your webpage more lively and interactive, with the help of
JavaScript.
JavaScript is also being used widely in game development and Mobile
application development. JavaScript (js) is a light-weight object-oriented
programming language which is used by several websites for scripting the
webpages. It is an interpreted, full-fledged programming language that enables
dynamic interactivity on websites when applied to an HTML document.
It was introduced in the year 1995 for adding programs to the webpages in the
Netscape Navigator browser. Since then, it has been adopted by all other
graphical web browsers. With JavaScript, users can build modern web
applications to interact directly without reloading the page every time. The
traditional website uses js to provide several forms of interactivity and simplicity.
Features of JavaScript-
All popular web browsers support JavaScript as they provide built-in execution
environments.
JavaScript follows the syntax and structure of the C programming language.
Thus, it is a structured programming language.
JavaScript is a weakly typed language, where certain types are implicitly cast
(depending on the operation).
JavaScript is an object-oriented programming language that uses prototypes
rather than using classes for inheritance.
It is a light-weighted and interpreted language.
MYSQL
MySQL is an open-source relational database management system (RDBMS). It
is the most popular database system used with PHP.
MySQL is developed, distributed, and supported by Oracle Corporation. The data
in a MySQL database are stored in tables which consists of columns and rows.
MySQL works on many operating systems and with many languages including
PHP, PERL, C, C++, JAVA, etc.
MySQL works very quickly and works well even with large data sets.
MySQL is very friendly to PHP, the most appreciated language for web
development.
10
11
SOFTWARE:
Every application needs the software in which it has to be executed and a
hardware the application is going to perform its function. Some application
cannot run on every platforms and some applications needs some specific
requirement in the software or in hardware to get operated.
Lets take an example of the applications which cannot be run on every platforms
like windows, android, Linux, etc. Applications made in visual basic is only
supported for the windows, one cannot access this applications from the mobile
phones, etc. So, here are some hardware and software specifications which are
mandatory for the application to get operated.
HARDWARE:
User Interface
• HTML has been used for developing the User Layout for the system
• PHP Script has been used for creating all the validations and client side
scripting functionality
• CSS has been used for designing the web pages of the system
HARDWARE INTERFACE:
• Processor : Intel Pentium IV or more
• Ram : 512 MB or more
• Cache : 1 MB
• Hard Disk : 10 GB recommended
12
Software Interface:
• Client on Internet: Web Browser, Operating System (any)
• Web Server: Operating System (any), Apache 2
• Database: MySQL
• Scripting Language: HTML, PHP Script, Jquery
Communication Protocol
Following protocols are required to be permitted on the server side
• HTTP incoming request
Functional Requirements
• The system runs of apache server so it is needed that server must have apache
server version 2.0 available
• We have used HTML for server side scripting so the current version of HTML
must be available on the server
• MySQL database has been used for storing the data of the website
• HTML has been used for creating the layout of the web application
• CSS has been used for creating the designing of the webpages
• PHP Script scripting language has been implemented on the system for
performing all of the Client Side Server Validation.
13
• Login Class: Used for performing all the operations of the login functionality.
• Page Class: Class for managing all the operations of the page.
• Traffic Class: Class for managing the traffic of the website
• IP Class: It has been used for storing all the IPs which hits the website
• Users Class: Class for managing all the user operations
• Permission Class: This class has been used for managing all the permissions
level operations.
14
Problem Definition
• Manual gym operations (registrations, payments, bookings) are time-
consuming and prone to errors.
• Difficulty managing large member databases, scheduling trainers, tracking
memberships, and handling payments efficiently.
• Poor communication between gym management and members.
• No easy way for members to track progress, book classes, or renew
memberships remotely.
15
Feasibility Study
a) Technical Feasibility
• Available technology supports web, mobile, and cloud solutions.
• Secure databases (like MySQL, PostgreSQL) and frameworks (like
Django, Laravel) are easily accessible.
b) Economic Feasibility
• Investment in software development/setup is justified by improved
operational efficiency and member satisfaction.
c) Operational Feasibility
• Staff and members can easily be trained to use the system.
• Reduces manual workload and improves customer experience.
Requirements Analysis
a) Functional Requirements
• Member registration, login, and profile management.
• Payment gateway integration for membership payments.
• Class and trainer schedule viewing and booking.
• Notification system (email, SMS, app notifications).
• Admin panel for gym staff to manage everything.
b) Non-Functional Requirements
• Secure and encrypted data handling.
• High system uptime and reliability.
• Fast performance for both web and mobile versions.
• Easy-to-use interface for non-technical users.
16
System Users
User Type Description
Class Class ID, Class Name, Trainer ID, Time Slot, Capacity
Relationships:
• A Member can register for multiple Classes.
• A Trainer can lead multiple Classes.
• A Payment belongs to one Member.
17
Capture personal
Member Registration Form details like Name, Age,
Member or Staff
Registration (Web/Mobile) Gender, Email, Phone,
Address.
Choose membership
Membership Dropdown/Menu
Member type (Monthly, Annual,
Plan Selection Selection
etc.).
Add/Edit trainer
Staff
Admin Staff Input Forms profiles, schedules, and
Management
roles.
18
Input Validation:
• Use field validations (like email format, mandatory fields, password
strength check).
• Real-time feedback (error messages, success indicators).
Output Design for Gym Management System
Output design focuses on what the system provides to users — reports,
dashboards, notifications, receipts, etc.
Analyse daily/weekly/monthly
Revenue Report Admin Graph/Chart/PDF
earnings.
19
------------------------------------------------
| Gym Logo / Banner |
------------------------------------------------
| [ Full Name ] |
| [ Email Address ] |
| [ Phone Number ] |
| [ Date of Birth (Date Picker) ] |
| ( Gender: ( ) Male ( ) Female ( ) Other ) |
| [ Address (Texture) ] |
| [ Membership Plan (Dropdown) ] |
| [ Password ] |
| [ Confirm Password ] |
| |
| [✓] I agree to the Terms & Conditions |
| |
| [ Register Button ] |
| ( Already have an account? Login ) |
------------------------------------------------
20
Administrator
Programmer
Gym
Management
system
sys
Database
Admin User
Programmer
21
22
SYSTEM DESIGN
Admin login
23
Admin Profile
User Login
24
Home Page
25
About Page
Change Password
26
27
Admin Dashboard
28
Categories
Packages
Bookings Details
30
Booking Report
Registration Report
31
Payment Type
Payment History
32
SOURCE CODE:
33
$_SESSION['email'] = $row['email'];
$_SESSION['name'] = $row['fname'];
header("location: index.php");
} else {
$msg = "Invalid username and password!";
}
} catch (PDOException $e) {
echo "Error : ".$e->getMessage();
}
} else {
$msg = "Both fields are required!";
}
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- Main CSS-->
<link rel="stylesheet" type="text/css" href="css/main.css">
<!-- Font-icon css-->
<link rel="stylesheet" type="text/css"
href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-
awesome.min.css">
<title>GYM MS | Admin login</title>
</head>
34
<body>
<section class="material-half-bg">
<div class="cover"></div>
</section>
<section class="login-content">
<div class="logo">
<h1>GYM MS | Admin login</h1>
</div>
<div class="login-box">
<form class="login-form" method="post">
<h3 class="login-head"><i class="fa fa-lg fa-fw fa-user"></i>SIGN
IN</h3>
<?php if($error){?><div class="errorWrap"
style="color:red;"><strong>ERROR</strong>:<?php echo htmlentities($error);
?> </div><?php }
else if($msg){?><div class="succWrap"
style="color:red;"><strong>Error</strong>:<?php echo htmlentities($msg); ?>
</div><?php }?>
<div class="form-group">
<label class="control-label">Emai </label>
<input class="form-control" name="email" id="email" type="text"
placeholder="Email" autofocus>
</div>
<div class="form-group">
<label class="control-label">PASSWORD</label>
<input class="form-control" name="password" id="password"
type="password" placeholder="Password">
</div>
<div class="form-group">
35
<div class="utility">
<!-- <p class="semibold-text mb-2"><a href="#" data-
toggle="flip">Forgot Password ?</a></p> -->
</div>
</div>
<div class="form-group btn-container">
<input type="submit" name="submit" id="submit" value="SIGN IN"
class="btn btn-primary btn-block">
</div>
<hr />
<a href="../index.php">Back to Home Page</a>
</form>
<form class="forget-form" action="index.html">
<h3 class="login-head"><i class="fa fa-lg fa-fw fa-lock"></i>Forgot
Password ?</h3>
<div class="form-group">
<label class="control-label">EMAIL</label>
<input class="form-control" type="text" placeholder="Email">
</div>
<div class="form-group btn-container">
<button class="btn btn-primary btn-block"><i class="fa fa-unlock fa-lg
fa-fw"></i>RESET</button>
</div>
<div class="form-group mt-3">
<p class="semibold-text mb-0"><a href="#" data-toggle="flip"><i
class="fa fa-angle-left fa-fw"></i> Back to Login</a></p>
</div>
</form>
</div> </section>
36
$uid=$_SESSION['uid'];
if(isset($_POST['submit']))
{
$pid=$_POST['pid'];
$sql="INSERT INTO tblbooking (package_id,userid) Values(:pid,:uid)";
$query = $dbh -> prepare($sql);
$query->bindParam(':pid',$pid,PDO::PARAM_STR);
$query->bindParam(':uid',$uid,PDO::PARAM_STR);
$query -> execute();
echo "<script>alert('Package has been booked.');</script>";
echo "<script>window.location.href='booking-history.php'</script>";
}
?>
<!DOCTYPE html>
<html lang="zxx">
<head>
<title>Gym Management System</title>
<meta charset="UTF-8">
<meta name="description" content="Ahana Yoga HTML Template">
<meta name="keywords" content="yoga, html">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- Stylesheets -->
<link rel="stylesheet" href="css/bootstrap.min.css"/>
<link rel="stylesheet" href="css/font-awesome.min.css"/>
<link rel="stylesheet" href="css/owl.carousel.min.css"/>
<link rel="stylesheet" href="css/nice-select.css"/>
<link rel="stylesheet" href="css/magnific-popup.css"/>
38
40
error_reporting(0);
require_once('include/config.php');
if(strlen( $_SESSION["uid"])==0)
{
header('location:login.php');
}
else{
$uid=$_SESSION['uid'];
?>
<!DOCTYPE html>
<html lang="zxx">
<head>
<title>User | Booking History</title>
<meta charset="UTF-8">
<meta name="description" content="Ahana Yoga HTML Template">
<meta name="keywords" content="yoga, html">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- Stylesheets -->
<link rel="stylesheet" href="css/bootstrap.min.css"/>
<link rel="stylesheet" href="css/font-awesome.min.css"/>
<link rel="stylesheet" href="css/owl.carousel.min.css"/>
<link rel="stylesheet" href="css/nice-select.css"/>
<link rel="stylesheet" href="css/slicknav.min.css"/>
<!-- Main Stylesheets -->
<link rel="stylesheet" href="css/style.css"/>
</head>
41
<body>
<!-- Page Preloder -->
</div>
</div>
</div>
</section>
<!-- Page top Section end -->
<div class="row">
42
<div class="col-lg-12">
<table class="table table-hover table-bordered">
<thead>
<?php $bookindid=$_GET['bookingid'];
$sql="SELECT t1.id as bookingid,t3.fname as Name, t3.email as
email,t1.booking_date as bookingdate,t2.titlename as title,t2.PackageDuratiobn
as PackageDuratiobn,
t2.Price as Price,t2.Description as Description,t4.category_name as
category_name,t5.PackageName as PackageName,payment,paymentType
FROM tblbooking as t1
join tbladdpackage as t2
on t1.package_id =t2.id
join tbluser as t3
on t1.userid=t3.id
join tblcategory as t4
on t2.category=t4.id
join tblpackage as t5
on t2.PackageType=t5.id
where t1.id=:bookindid";
$query= $dbh->prepare($sql);
$query->bindParam(':bookindid',$bookindid, PDO::PARAM_STR);
$query-> execute();
$results = $query -> fetchAll(PDO::FETCH_OBJ);
$cnt=1;
if($query -> rowCount() > 0)
{
foreach($results as $result)
{
43
?>
<tr>
<th>Booking Date</th>
<td><?php echo $result->bookingdate; ?></td>
<th>Name</th>
<td><?php echo $result->Name; ?></td>
</tr>
<tr>
<th>Email</th>
<td><?php echo $result->email; ?></td>
<th>Category</th>
<td><?php echo $result->category_name; ?></td>
</tr>
<tr>
<th>Package Name:</th>
<td><?php echo $result->PackageName; ?></td>
<th>Title</th>
<td><?php echo $result->title; ?></td>
</tr>
<tr>
<th>Package Duratiobn</th>
<td><?php echo $result->PackageDuratiobn; ?></td>
<th>Price</th>
<td><?php echo $result->Price; ?></td>
<?php $pricess=$result->Price; ?>
</tr>
<tr>
44
<th>Description</th>
<td colspan="3"><?php echo $result->Description; ?></td>
</tr>
<tr>
<th>PaymentType</th>
<td colspan="3"><?php $ptype=$result->paymentType;
if($ptype==''):
echo "Payment not made yet";
else:
echo $ptype;
endif;
?></td>
</tr>
<?php $cnt=$cnt+1; } } ?>
</thead>
</table>
45
$cnt=1;
if($query -> rowCount() > 0)
{ ?>
<table class="table table-hover table-bordered">
<tr>
<th colspan="3" style="text-align:center;font-
size:20px;">Payment History</th>
</tr>
<tr>
<th>Payment Type</th>
<th>Amount Paid</th>
<th>Payment Date</th>
</tr>
<?php foreach($results as $result)
{ ?>
<tr>
<td><?php echo $result->paymentType; ?></td>
<td><?php echo $tpayment=$result->payment; ?></td>
<td><?php echo $result->payment_date; ?></td>
</tr>
<?php
$gpayment+=$tpayment;
} ?>
<tr>
<th>Total</th>
<th><?php echo $gpayment;?></th>
</tr>
46
</table>
<?php } ?>
</div>
</div>
</div>
</section>
<!-- Trainers Section end -->
.errorWrap {
padding: 10px;
margin: 0 0 20px 0;
background: #dd3d36;
color:#fff;
-webkit-box-shadow: 0 1px 0 rgba(0,0,0,.1);
box-shadow: 0 1px 0 rgba(0,0,0,.1);
}
.succWrap{
padding: 10px;
margin: 0 0 20px 0;
background: #5cb85c;
color:#fff;
-webkit-box-shadow: 0 1px 0 rgba(0,0,0,.1);
box-shadow: 0 1px 0 rgba(0,0,0,.1);
}
</style>
<?php } ?>
Contact
<?php
session_start();
error_reporting(0);
include 'include/config.php';
$uid=$_SESSION['uid'];
48
if(isset($_POST['submit']))
{
$pid=$_POST['pid'];
$sql="INSERT INTO tblbooking (package_id,userid)
Values(:pid,:uid)";
$query = $dbh -> prepare($sql);
$query->bindParam(':pid',$pid,PDO::PARAM_STR);
$query->bindParam(':uid',$uid,PDO::PARAM_STR);
$query -> execute();
echo "<script>alert('Package has been booked.');</script>";
echo "<script>window.location.href='booking-history.php'</script>";
?>
<!DOCTYPE html>
<html lang="zxx">
<head>
<title>Gym Management System</title>
<meta charset="UTF-8">
<meta name="description" content="Ahana Yoga HTML
Template">
<meta name="keywords" content="yoga, html">
<meta name="viewport" content="width=device-width, initial-
scale=1.0">
<!-- Stylesheets -->
49
</head>
<body>
<!-- Page Preloder -->
50
<div class="row">
51
</section>
<head>
<title>Gym Management System | User Profile</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-
scale=1.0">
<!-- Stylesheets -->
<link rel="stylesheet" href="css/bootstrap.min.css"/>
<link rel="stylesheet" href="css/font-awesome.min.css"/>
<link rel="stylesheet" href="css/owl.carousel.min.css"/>
<link rel="stylesheet" href="css/nice-select.css"/>
<link rel="stylesheet" href="css/slicknav.min.css"/>
</head>
<body>
53
55
56
CONCLUSION
57
By centralizing all critical functions into one platform, the system reduces
paperwork, minimizes human error, and allows real-time monitoring of gym
activities. It enhances member satisfaction through easy online access to
bookings, schedules, and account management, while gym administrators benefit
from powerful reporting and analytics tools to make data-driven decisions.
Moreover, the system lays a strong foundation for future enhancements, such as
mobile app integration, virtual workouts, AI-based training suggestions, and
fitness device syncing, keeping it adaptable to modern fitness industry trends.
In conclusion, the Gym Management System not only improves the operational
workflow of a gym but also builds a professional image, enhances member
loyalty, and opens new opportunities for growth. It is an essential investment for
any gym that aims to deliver excellent service, maintain competitive advantage,
and scale efficiently in the digital age.
58
BIBLIOGRAPHY
Gym operations
Membership tracking
Scheduling (classes/trainers)
59
Books:
Research Papers:
Sharma, P., and Kaur, G. "A Study on Gym Management Systems and
Their Impact on Gym Operations." International Journal of Computer
Applications, vol. 182, no. 24, 2019.
(Referenced for understanding challenges in gym management.)
Websites:
60
Programming Documentation:
61