rickybobby is a webapp that lets you compete head to head on Peloton rides. The app consists of a scraper that pulls data from the (unofficial) Peloton API into a local SQLite database, and a web frontend that sources the data for head to head comparisons, history, and user profiles.
The project came about as a way to systematically one up a friend on Peloton rides and ended up as a dive into NodeJS, the Baked Data Architecture, and writing a mini/lite ORM for SQLite.
rickybobby requires nginx
and docker
# clone the repo
git clone https://github.com/nhmood/rickybobby.git
cd rickybobby
# build the docker image
./docker.sh build
# update the rickybobby.yml with peloton credentials
# NOTE: recommended that you create a separate peloton account in case
# peloton doesn't take too kindly to the API usage
vim rickybobby.yml
# run the web interface
./docker.sh web
# configure nginx
ln -s $PWD/infra/nginx/rickybobby.conf /etc/nginx/sites-available
ln -s /etc/nginx/sites-available/rickybobby.conf /etc/nginx/sites-enabled
sudo nginx -t # check config
sudo service nginx restart
sudo service nginx status
# add sync to crontab
crontab -l >> cronupdate
cat cron.example >> cronupdate
crontab cronupdate
rm cronupdate