GymHub
Group 13
Team
- E/19/074, Dharmarathne B.A.M.I.E., email
 - E/19/124, Gunasekara M.H., email
 - E/19/166, Jayathunga W.W.K., email
 - E/19/424, Weerasinghe H.A.S.N., email
 
Table of Contents
- Introduction
 - Problems With The Existing Systems
 - Our Goals
 - Background & Motivation
 - Progress
 - Proporsed Solution
 - Overview & Key Features
 - Requirement Gathering
 - Design & Development
 - Testing & Deployment
 - Advantages
 - Additional Features
 - Technology Stack
 - High Level Architectute
 - Data & Control Flow
 - Storage
 - Control Decisions
 - User Experience
 - Version Control
 - Timeline
 - Team & Process
 - Links
 
Introduction
description of the real world problem and solution, impact
Problems With The Existing Systems
- Lack of Reminders
 - Communication Barriers
 - Insufficient Progress Tracking
 - Appointment Scheduling Challenges
 
Our Goals
- Streamline Gym Operations and User Experience
 - Enhance Progress Tracking and Fitness Management
 - Ensure Data Security and Privacy
 - Expand User Base and Engagement
 
Background & Motivation
Progress
- Use of modern technologies for frond-end,back-end and database
 - Continuous engagement through progress tracking promotes long-term commitment
 - Fitness app usage rising, since demand for easy tracking and Minimal direct competition identified
 - Fitness app usage rising, since demand for easy tracking and Minimal direct competition identified
 
Proporsed Solution
- Real-time progress tracking through fitness logs and measurements
 - Sync with google calendar
 - Personalized workout plan(amount of calorie burn)and goal setting
 - notifications/email for upcoming appointments and reminders
 - user friendly interface for easy appointment scheduling
 - BMI calculator
 
Homepage
HomePage for the trainer
Available trainees for a paticular trainer
HomePage for the trainee
Exercise Tracking
Progress Tracking
Users
- Trainer
 - Gym Member
 
Features of Trainer
- Create user Profiles
 - Mark the available time slots
 - Accept & decline the appointment
 - Receive reminders
 
Features of Gym Member
- Create user profile
 - Check availability of a trainer
 - Make the appointments
 - Weight tracking
 
Overview & Key Features
GymWeb App Overview
- -Your All-in-One Fitness Companion
 
Key Features & Functionalities
- User Authentication -Secure registration and login
 - Personalized Workouts -Customize routines for your goals
 - Trainer Interaction -Expert guidance and training plans
 - Progress Tracking -Visualize and monitor your fitness journey
 
Requirement Gathering
- Understanding the overarching goals of the gym management system and followed the requirements that are given in document
 - Document both functional and nonfunctional requirements
 - Meetings with supervisors
 
Design & Development
Design
- Front-end technology: React JS
 - Backend technology: Spring Boot
 - 
    
Database structure: MySQL
 - Used Just in time design approach as agile methodology allows
 
Development
- Front End Development: Using CSS,JavaScript
 - Back End Development: Java
 - Database Development: SQL queries
 
Testing & Deployment
Testing
- Unit Testing
 - Intergration Testing
 - Security Testing
 
Deployment
- Staging Environment
 - Production Environment
 - Monitoring
 
Advantages
- Convenience of booking sessions and monitoring fitness goals
 - Receiving reminders & user friendly interface
 - Monetization Strategy
 - User Experience and Usebility
 - Integration with Existing System
 
Additional Features
- Notify with emails
 - Sync with google calender
 - BMI calculator
 - Remind required amount of calorie burn
 - Get customer feedbacks
 - AI Trainer
 
Technology Stack
- Figma
 - React JS
 - Spring Boot
 - JWT
 - GitHub
 - Swagger
 
High Level Architecture
• Users interact with the Gym App through web browsers or mobile devices (represented as “User Devices”). • The “Frontend” is responsible for providing a user-friendly interface, collecting user input, and displaying information to users. • The “Backend” acts as the brain of the system. It manages the entire application, handles communication between the frontend and other components, and implements core business logic. • The “AI Trainer” is an intelligent component that uses OpenCV and Python to provide fitness-related assessments and recommendations. It communicates with the backend to process data and deliver results. • The “MySQL Database” stores all essential data, including user profiles, appointments, and weight tracking records. The backend interacts with the database to retrieve and store data. • External services, such as “Reminders,” integrated to enhance the user experience by sending notifications or reminders to users.
Data & Control Flow
- User Registration
    
- A new gym member enters their registration details via the frontend (e.g., name, email).
 - The frontend sends this data to the backend as an HTTP POST request.
 - The backend validates and processes the registration request.
 - User profile data, including the unique identifier, is stored securely in the database.
 - Confirmation is sent from the backend to the frontend, notifying the user of successful registration.
 
 - Appointment Scheduling
    
- A gym member selects an available time slot and trainer for an appointment.
 - The frontend sends a request to the backend, specifying the desired date, time, and participants.
 - The backend checks trainer availability and conflicts in the database.
 - If the time slot is available, the backend approves the appointment and records it.
 - Both the gym member and trainer receive notifications of the scheduled appointment.
 
 - Weight Tracking
    
- A gym member logs their weight for a specific date via the frontend.
 - The frontend sends a weight entry request to the backend, along with the date.
 - The backend processes the request, validating the data and user’s identity.
 - The weight record is securely stored in the database, including the date.
 - The system can use this data to generate simple weight trend graphs for the user
 
 
Storage
- Temporary Data Storage - Local Storage • Temporary data, such as user session information (e.g., logged-in user details), is stored in the frontend (React) or handled through client- side technologies like cookies or local storage. This data is short-lived and typically lasts for the duration of a user’s session.
 - Permanent Data Storage - Database(MySql) • Permanent data, such as user profiles, appointment details, and weight tracking records, is stored in a relational database like MySQL. This is the primary data repository for the application and provides long-term storage and retrieval capabilities. User data, appointment history, and weight tracking records are examples of permanent data stored in the database.
 
Control Decisions
- 
    
User Registration Control • Decision Point: Occurs during user registration. • Logic/Algorithm: - Check for valid user data, including email uniqueness. - Validate phone numbers, ensuring they are unique. - Verify the provided data against predefined criteria. - If data meets criteria, approve registration; otherwise, decline.
 - 
    
Trainer Availability Control • Decision Point: When trainers mark available time slots. • Logic/Algorithm: - Trainers set their schedule by specifying available time slots. - Backend records this data, associating it with the respective trainers.
 - 
    
Appointment Scheduling Control • Decision Point: When a member requests an appointment. • Logic/Algorithm: - The system checks trainer availability for the requested time slot. - It evaluates if there are any conflicts with existing appointments. - Ensures the appointment capacity is not exceeded. - If all criteria are met, the appointment is approved; otherwise, it’s declined.
 - 
    
Weight Tracking Control • Decision Point: When a member logs their weight. • Logic/Algorithm: - The system validates the weight entry. - It checks if the user is authorized to log weight for the specified date. - If data is valid and authorized, the weight entry is accepted; otherwise, it’s rejected.
 - 
    
Appointment Approval Process Logic
• When a member requests an appointment: - The system checks trainer availability using the trainer's predefined schedule. - It assesses conflicts with other appointments. - Ensures the appointment capacity is not exceeded. - If all checks pass, the appointment is approved; otherwise, it's declined. 
User Experience
- User Interface design - User-friendly - With Consistent layout - With Features accessible to all users
 - Responsive Design
 - Email Service
 - Prioritizes user-centered design
 - Regular feedback from trainers and trainees
 
Version Control
- Track changes
 - Manage branches
 - Collaborate seamlessly
 
Timeline
Team & Process
- Dharmarathne B.A.M.I.E. - Weight Tracking Design (Frontend & Backend)
 - Gunasekara M.H. - Presentation Design, Wiki Pages Design, Report Writing, Backend Implementation: User Authentication(Login), Registration with Email Verification, Trainer and Trainee Feature Development
 - Jayathunga W.W.k. - Presentation Design, Readme Design, Git Page Design, UI Design(Using Figma), Frontend Design(Home, login, register, User Profiles)
 - Weerasinghe H.A.S.N. - Presentation Design, Report Writing, Appointment Email Reminder Implementation, BMI Calculator