This Workout Tracker is a web application designed to help users monitor and manage their fitness routines effectively, interact with their friends' workout history, and stay motivated. The tech stack is an Angular frontend and PostreSQL backend, using Docker to containerize the app and a scalable microservice architecture to implement each feature.
- Log and track various types of workouts
- Find friends' workout history
- Analysis for individual exercises, with trend analysis overtime or calculating average load for individual workout
- Calculate powerlifting standards based on user age, weight, and sex
- Motivational quote generator
To set up the project locally, follow these steps.
Ensure you have the following installed:
- Node.js
- Angular CLI
- Docker
- PostgreSQL
- You will have to have a database already set up in a container; you can use the same username, password, and database name that I have in my docker-compose.yaml file for simplicity if you would like.
- ExpressJS
- Flask
-
Clone the repository:
git clone https://github.com/cxcollins/workout_tracker_webapp.git cd workout_tracker_webapp -
Build Docker images and run containers:
docker-compose up --build
- Open http://localhost:4200 in a web browser.
-
Run microservices:
- Navigate to the erics_microservice directory:
cd ../erics_microservice python calculate_trends_averages.py - Navigate to the percentiles_microservice directory:
cd ../percentiles_microservice python percentiles_microservice.py - Navigate to the quote_generator directory:
cd ../quote_generator_microservice python generator.pyThe application and all its microservices should now be accessible at
http://localhost:4200. - Navigate to the erics_microservice directory:
This project is licensed under the MIT license.