Shamvelo is a simple application for allowing a small group of friends to share and compare Strava statistics. It is a Google App Engine/Datastore application that uses OAuth authorisation to register and retrieve athlete details from the Strava API and then stores the data in a database for analysis and summary. All interaction is via a web interface.
Install and activate development tooling. This requires Mise to be installed and configured in your shell.
mise installSetup gcloud user and application credentials to access the Google Cloud Platform.
gcloud init
gcloud auth login
gcloud auth application-default loginAll commands should be run from the app folder.
Install application dependencies.
npm installConfigure the application settings. Copy .env.tplt to .env and update all settings as appropriate.
Start the application.
npm startAccess the application from a browser.
open http://localhost:8080Find outdated tools. Update .mise.toml accordingly. Ensure the Node version remains aligned with the latest version supported by App Engine and update app.yaml accordingly.
mise outdated --bumpFind outdated dependencies.
npm outdatedUpdate dependencies in package.json based on the above output. Ensure that the @tsconfig/nodeXXXX package matches the version of Node being used and that tsconfig.json is updated with the path to the correct tsconfig library.
Update dependencies pinned in package-lock.json.
npm upgradeAll commands should be run from the app folder.
Deploy the application and cron jobs.
gcloud app deploy app.yaml
gcloud app deploy cron.yamlStream application logs
gcloud app logs tail -s defaultSee Leaderboard 2 for details of the information displayed on the leaderboard.