About this project
BikeBuddy is a personal ride-logging web application. Its stated purpose is simple: your ride, your routes, your memories. Riders upload GPX tracks exported from any ride, whether cycling or motorcycling, and the app renders them as routes on a map. Photos can be attached to the tours, turning raw track data into a record with images.
What the repository provides
The README describes a front end served as static content from GitHub Pages, paired with a serverless backend on Azure Functions v4. Persistence uses Cosmos DB, and media such as photos is expected to live in Blob Storage, based on the technology badges shown. Node.js 24 or newer is required. A screenshot in the docs shows a map view with ride routes alongside a tour sidebar.
Maps are drawn with Leaflet, and validation is handled with Zod. The stack is JavaScript and TypeScript throughout.
Getting started
All helper scripts run through a single entry point: run the shell script buddy.sh followed by a group and a command. The help flag lists everything available. Two documented commands cover the common path: a development setup command that installs tools and configuration templates, and a development start-all command that brings up the full local stack on localhost port 4280. Docker must be running for setup.
Documentation
Full documentation lives in the docs folder, organised according to the Diátaxis framework:
- Tutorial: a getting started walkthrough.
- How-to guides: a user guide and a developer guide covering local development, authentication and tokens, and deployment, plus a separate infrastructure how-to.
- Reference: architecture and configuration pages.
- Explanation: design decisions and a cost report.
A contributing guide documents contributor conventions and is referenced from the README.
Infrastructure and tooling
Infrastructure is described as code managed with OpenTofu, and the project targets Azure as its cloud provider. Deployment of the static portion goes through GitHub Pages, with workflows running on GitHub Actions.
Quality and security tooling visible in the README's badges:
- ESLint and Prettier for linting and formatting.
- Vitest for unit tests, with coverage reported through Codecov.
- Playwright for end-to-end tests, per the technology map.
- Stryker for mutation testing, with a public dashboard report.
- OpenGrep for static application security testing, zizmor for GitHub Actions hardening, and CodeQL code scanning.
- pre-commit hooks for local checks.
- A gate workflow badge indicating a CI quality gate.
Licensing and project status
The project is released under the MIT license. The README links to a last-commit badge indicating recent activity, but no claims are made here about release maturity, hosting requirements beyond those documented, or performance characteristics.
Who it may suit
Someone who wants a self-managed record of rides, with map visualisation and photo attachment, and who is comfortable deploying an Azure-backed stack or running the documented local Docker-based development environment. Developers looking for a worked example of a static front end plus Azure Functions and Cosmos DB, with an extensive testing and security toolchain, may also find the repository useful as a reference.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.