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