GymControll is a web application that helps users manage their workout routines and track their progress over time. With a focus on simplicity and a user-friendly interface, GymControll allows users to create personalized training routines, add exercises, and log each execution with weight and repetitions. It also provides progress analysis with dynamic charts.
- User Registration and Authentication (Sign up / Login / Logout)
- Create and Manage Training Routines
- Add Exercises to Each Routine
- Log Executions (Weight & Repetitions)
- View Exercise History and Performance
- Analyze Progress with Charts (Chart.js)
- Toast Notifications for User Feedback
- Dark Theme with Responsive Design (Mobile First)
- Simple, Intuitive Interface
- Developed with Pure PHP (No Frameworks)
- PHP (Pure)
- MySQL (Database)
- Bootstrap 5 (Responsive UI)
- Chart.js (Progress Visualization)
- Vanilla JavaScript (Frontend Interactions)
- XAMPP (Local Development Environment)
gymcontroll/
βββ assets/
β βββ css/
β β βββ style.css
β βββ js/
β βββ scripts.js
βββ config/
β βββ database.php
βββ controllers/
β βββ AuthController.php
β βββ TrainingController.php
β βββ ExerciseController.php
β βββ ExecutionController.php
βββ includes/
β βββ header.php
β βββ footer.php
β βββ navbar.php
βββ models/
β βββ User.php
β βββ Exercise.php
βββ public/
β βββ index.php
β βββ login.php
β βββ cadastro.php
β βββ dashboard.php
β βββ training_detail.php
β βββ exercise_detail.php
βββ toasts/
β βββ toast.php
βββ README.md
git clone https://github.com/yourusername/gymcontroll.git
cd gymcontroll
- Create a database named
gymcontrollin phpMyAdmin. - Run the following SQL scripts to create the necessary tables:
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
email VARCHAR(100) NOT NULL UNIQUE,
password VARCHAR(255) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE trainings (
id INT AUTO_INCREMENT PRIMARY KEY,
user_id INT NOT NULL,
name VARCHAR(100) NOT NULL,
description TEXT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
);
CREATE TABLE exercises (
id INT AUTO_INCREMENT PRIMARY KEY,
training_id INT NOT NULL,
name VARCHAR(100) NOT NULL,
description TEXT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (training_id) REFERENCES trainings(id) ON DELETE CASCADE
);
CREATE TABLE executions (
id INT AUTO_INCREMENT PRIMARY KEY,
exercise_id INT NOT NULL,
weight DECIMAL(5,2) NOT NULL,
repetitions INT NOT NULL,
execution_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (exercise_id) REFERENCES exercises(id) ON DELETE CASCADE
);Edit the config/database.php file if necessary:
$host = 'localhost';
$dbname = 'gymcontroll';
$username = 'root';
$password = ''; // Default password in XAMPP- Start Apache and MySQL through XAMPP Control Panel.
- Access the application at:
http://localhost/gymcontroll/public/login.php
gymcontroll/
βββ assets/
β βββ css/
β βββ style.css
β βββ js/
β βββ scripts.js
βββ config/
β βββ database.php
βββ controllers/
β βββ AuthController.php
β βββ TrainingController.php
β βββ ExerciseController.php
β βββ ExecutionController.php
βββ includes/ β βββ header.php
β βββ footer.php
β βββ navbar.php
βββ models/
β βββ User.php
β βββ Exercise.php
βββ public/
β βββ index.php
β βββ login.php
β βββ cadastro.php
β βββ dashboard.php
β βββ training_detail.php
β βββ exercise_detail.php
βββ toasts/
β βββ toast.php
βββ README.md
GymControll provides detailed visual feedback on your workout progression through interactive charts. Track your load increase and performance history over time using Chart.js.
Developed by Thomas Bastos.
This project is licensed under the MIT License. Feel free to use, modify, and distribute as needed.