RunBucket is a minimalist run tracker that helps runners achieve their long-distance running goals by allowing them to record their runs and visualize their progress.
Runners can create an account, input the data for each run they complete (such as date, time, and distance), and visualize your achievement each day in an interactive bar chart.
RunBucket is written in Python3 using the Flask microframework. The interactive bar charts are rendered with Chart.js. The front end is a simple mix of Flask-Bootstrap, Flask-Nav and Flask-WTF. The databases is a straightforward MySQL databases, although some day I'd like to experiment with NoSQL here. Finally, the project is hosted on AWS EC2 using Gunicorn as the WSGI server and Nginx to serve requests to the app.
- Add more KPIs for runs such as duration and vertical gain
- Sharing progress with other runners and tagging other runners that were with you on your run
- Establishing KPI goals and tracking goal progress
- Support for recording KPIs in Imperial units 🇺🇸 (currently only logical measurement units are supported)
RunBucket was hosted live on AWS for a time, but I took it offline. If you'd like to take it out for a spin on your local machine, the following instructions will get the homepage working for you.
- Clone this repository to a local directory:
git clone git@github.com:mcrwfrd/runbucket.git
- Create a virtual environment for this project:
cd runbucket
python3 -m venv venv
. venv/bin/activate
- Now that we're safely inside a virtual environment, navigate to the cloned directory, install the requirements and initiate the app in the FLASK_APP environment variable:
pip install -r requirements.txt
export FLASK_APP=runbucket
- Create a basic environment file by copying the example given:
cp .env.example .env
- Finally, run the application:
flask run