Skip to content

edeneault/SpringBoard-Capstone-1

Repository files navigation

DATABASE

GYM HERO - Lightweight Athlete/Performance Artist Management System

by: Etienne Deneault

VISIT GYM HERO

Preloaded Profile for Testing:

Username Password
coach_E coach_E

DATABASE RESETS EVERY 24 HRS - Make any changes you like!

Project Description

Designed as Capstone project for the SpringBoard Software Engineering Bootcamp, GYM HERO is a lightweight Athlete Management Web Application. There are many athlete management systems available in the market but most have a difficult barrier of access for coaches and smaller athletic organizations. These "barriers" are due to the following: cost of access, complexity of implementation, complex tooling that generates a significant amount of work for the user/administrator.

Many of the athlete mamagement systems do not offer easy access to features that coaches use on a daily basis. The result of this challenge is that coaches are less likely to use the functionality available. In "real-world" time, it can be difficult to integrate the management tools into regular training workflows.

Assign Workout Example View

Athlete-management.mp4

Exercise Timer Example View

timer-demo.mp4

Workout Builder Example View

workout-demo.mp4

Prerequisites

Python Environment:

  • requirements.txt lists all python requirements

Technologies:

HTML | CSS | JAVASCRIPT | PYTHON | FLASK | POSTGRESQL

  • bcrypt for authentification and authorization
  • WTForms for forms and validation
  • jinja2 for html templates
  • sqlalchemy for database ORM

Installing

For macOS in BASH terminal:

  • clone and re-create environment
$ git clone https://github.com/edeneault/SpringBoard-Capstone-1.git
$ cd "your project folder"
$ python3 -m venv venv
  • install requirements
$ source venv/bin/activate
(venv) $ pip3 install -r requirements.txt
... pip output here ...
  • start flask local server
(venv) $ flask run

Contents and Details

Folders and Files
.
├── SB-Capstone-1/
├── Postgress-gymhero-db/
├── documentation/routes/
├── static/
├── templates/
├── testing/
├── .gitignore
├── Procfile
├── README.md
├── app.py
├── forms.py
├── models.py
├── runtime.txt
└── utils.py

Application Main Function
  • Provide coaches and performance enhancement specialist with a lightweight system to manage their teams/athletes/performance artists.
Application Secondary Function
  • Provide coaches and athletes quick access to the most useful tools for Day to Day use. Workouts and Timers.
Target Users
  • The target user for this application are Coaches working with smaller team organizations or a coach with a "single" or "few" athletes in individual sports
Application Features

No Auth Access

  • Quick Access - workout selector
  • Quick Access - workout timer example configurations
    • Timers built with dynamic javasript - Presets: HiitTimer, RoundTimer, CircuitTimer**

With Auth Access

  • Team/Athlete Managment (CRUD Teams, Athletes, Exercises, Workouts)
  • Assign to Athlete Workouts
API
  • API to be used for exercise data and exercise images: WEGR
    • Public Endpoints used: exercisecategory, muscle, exerciseimage, exerciseinfo, equipment


DATABASE SCHEMA REPRESENTATION

DATABASE

  • additional tables will be needed for medical_status, timers and training_plans.

Author

  • Etienne Deneault - Initial work - edeneault
License

This project is licensed under the MIT License - see the LICENSE.md file for details

Future Development

  • Team/Athlete Management Dashboard - Team Data view and basic analysis (RPE, workload over time)
  • Add CRUD CATEGORY, EQUIPMENT, MUSCLE routes
  • Add SEARCH BY category || equipment || muscles
  • Add NAVIGATE BACK TO WORKOUT OPTION after editing EXERCISE
  • ADD cloudinary storage and cdn image delivery | user image upload functionality

IMPORTANT: Application allows for uploading of images from users. Image Rights may or may not be copyrighted. All images used as base images, are Creative Commons License

INFO: Documentation and Testing in Progress

Kindly start an issue to help me dedug the application and implement new features.