Skip to content

Thomas-DEV7/gymcontroll_mvp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

18 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

GymControll

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.


πŸš€ Features

  • 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)

πŸ› οΈ Technologies Used

  • PHP (Pure)
  • MySQL (Database)
  • Bootstrap 5 (Responsive UI)
  • Chart.js (Progress Visualization)
  • Vanilla JavaScript (Frontend Interactions)
  • XAMPP (Local Development Environment)

πŸ“‚ Project Structure

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

βš™οΈ Installation Guide

1. Clone the Repository

git clone https://github.com/yourusername/gymcontroll.git

2. Move into the Project Folder

cd gymcontroll

3. Import the Database

  • Create a database named gymcontroll in 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
);

4. Configure the Database Connection

Edit the config/database.php file if necessary:

$host = 'localhost';
$dbname = 'gymcontroll';
$username = 'root';
$password = ''; // Default password in XAMPP

5. Start the XAMPP Services

  • Start Apache and MySQL through XAMPP Control Panel.
  • Access the application at:
http://localhost/gymcontroll/public/login.php

Structure

    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
 

πŸ“Š Progress Analysis

GymControll provides detailed visual feedback on your workout progression through interactive charts. Track your load increase and performance history over time using Chart.js.


✍️ Author

Developed by Thomas Bastos.


πŸ“„ License

This project is licensed under the MIT License. Feel free to use, modify, and distribute as needed.

About

MVP: Lift smarter, track better!" πŸ† GymControll is a strength training load management system built with PHP (MVC architecture), HTML, CSS, and JavaScript. Optimize your workouts, monitor progress, and visualize your evolution with efficiency.

Topics

Resources

Stars

Watchers

Forks

Contributors

Languages