A web application that helps cyclists find safer and more comfortable bike routes,
with surface type visualization and smart routing using open data.
- Surface type map (asphalt, gravel, cobblestone, etc.)
- Route planning between A → B (via Digitransit API)
- Route surface type breakdown (percentages)
- (Optional) User feedback for segments
- Frontend: React + Leaflet + Vite
- Backend: FastAPI (Python) — (planned, placeholder in /backend)
- Database: PostgreSQL + PostGIS — (planned)
- GIS: Location and surface data via GeoJSON, ORS API, Overpass API
- Deployment: Azure Static Web Apps (current), Docker + Azure Containers (planned)
# install dependencies
npm install
# start the development server (http://localhost:5173)
npm run dev
# build the production bundle
npm run build
# preview the production build locally
npm run preview# create and activate virtual environment
python3 -m venv venv
source venv/bin/activate # Linux / macOS
venv\Scripts\activate # Windows
# install dependencies
pip install -r requirements.txt
# run the FastAPI server
uvicorn main:app --reload --port 8000
Note: The backend folder currently contains a FastAPI skeleton only.
The frontend communicates directly with ORS (OpenRouteService) and Overpass API for routing and surface data.
Integration with a custom FastAPI backend and Azure containers is planned for future versions.
/src → React components, map logic
/public → Static files (e.g., GeoJSON, favicon)
/backend → FastAPI placeholder (to be expanded)
/docs → Diagrams, MVP notes, problem/solution domain docs
- Problem Domain
- Problem Domain Diagram
- Solution Domain
- MVP Description
- Solution Architecture
- Task List / TODO
View or edit diagram: https://is.gd/aFSsrB
The Problem Domain diagram illustrates potential entities and relationships affecting bicycle route choice (e.g., surface type, weather, safety, and feedback). The current MVP focuses only on route geometry and surface data, while other factors are considered future scope.
View or edit diagram: https://is.gd/oo5vFi
For full task progress and status, see the
GitHub Project Board
This project uses Azure Static Web Apps (SWA) for pull request previews.
Each pull request automatically creates a temporary preview environment.
The preview URL is shown in the PR checks and disappears after the PR is merged.
For deployment details, see DEPLOY.md.
- Resource:
bike-frontend(Free, Region: West Europe) - Branch:
main - App location:
/• Output:dist• API: (empty) - URL: https://icy-dune-080042c1e.3.azurestaticapps.net
- Notes: SPA fallback via
staticwebapp.config.jsonprevents 404 on deep links.
Updates are tested through pull requests.
Each PR triggers GitHub Actions → Azure SWA builds a temporary preview environment.
The preview URL is shown in the PR checks and disappears after the PR is merged.
👉 For full deployment details, see DEPLOY.md.
-
Local preview (screenshot):
-
Video demo: Watch on Google Drive


