Sync Repo-docs-01-product-requirements from project files
140
Repo-docs-01-product-requirements.-.md
Normal file
140
Repo-docs-01-product-requirements.-.md
Normal file
@@ -0,0 +1,140 @@
|
||||
<!-- codex-wiki-sync:b421a1fe4f50bb90930cdf3f -->
|
||||
|
||||
> Mirrored from `/mnt/DATA/git/pikebacker/docs/01_product_requirements.md`.
|
||||
> Origin: `repository`.
|
||||
> Active tasks and changing state belong in Gitea issues; this wiki page is durable project context.
|
||||
|
||||
---
|
||||
# Product Requirements Document
|
||||
|
||||
## Vision
|
||||
|
||||
Build the best planning and riding tool for self-supported bikepacking trips.
|
||||
|
||||
## Core promise
|
||||
|
||||
Plan a rideable, legal, enjoyable, and logistically safe route for a loaded bike over multiple days, including sleep, water, food, repair, local rules, weather, and bailout options.
|
||||
|
||||
## Non-goals for MVP
|
||||
|
||||
- Do not build a social network first.
|
||||
- Do not build full turn-by-turn voice navigation first.
|
||||
- Do not build a complete global legal camping database first.
|
||||
- Do not depend on one commercial booking/routing API.
|
||||
- Do not attempt global correctness for local rules. Use confidence levels.
|
||||
|
||||
## Functional requirements
|
||||
|
||||
### Trip planning
|
||||
|
||||
Users can create a trip with:
|
||||
|
||||
- start/end locations or imported GPX,
|
||||
- start date and optional end date,
|
||||
- bike type,
|
||||
- load level,
|
||||
- rider fitness preference,
|
||||
- daily target distance range,
|
||||
- daily target climbing range,
|
||||
- maximum loaded-bike grade,
|
||||
- preferred surface mix,
|
||||
- sleep preference,
|
||||
- water interval limit,
|
||||
- resupply interval limit,
|
||||
- bailout preference.
|
||||
|
||||
### Bikepacking routing
|
||||
|
||||
The planner returns:
|
||||
|
||||
- route geometry,
|
||||
- elevation profile,
|
||||
- distance and climb,
|
||||
- surface breakdown,
|
||||
- traffic/access confidence,
|
||||
- steep segment warnings,
|
||||
- long no-water/no-food warnings,
|
||||
- possible hike-a-bike warnings,
|
||||
- stage suggestions.
|
||||
|
||||
### Multi-day staging
|
||||
|
||||
The app divides the route into daily stages based on:
|
||||
|
||||
- daily distance/climb targets,
|
||||
- daylight window,
|
||||
- sleep options,
|
||||
- food/water availability,
|
||||
- bailout access,
|
||||
- weather risk if available,
|
||||
- user preference for indoor/outdoor nights.
|
||||
|
||||
Each stage has:
|
||||
|
||||
- distance,
|
||||
- ascent/descent,
|
||||
- expected riding time range,
|
||||
- surface mix,
|
||||
- sleep candidates,
|
||||
- food/water critical points,
|
||||
- warnings,
|
||||
- Plan A and Plan B endpoint.
|
||||
|
||||
### Route-corridor logistics
|
||||
|
||||
The app supports corridor queries around the route:
|
||||
|
||||
- water,
|
||||
- supermarkets,
|
||||
- bakeries,
|
||||
- cafés/restaurants,
|
||||
- gas stations,
|
||||
- campsites,
|
||||
- shelters,
|
||||
- huts,
|
||||
- hostels/hotels,
|
||||
- Warmshowers-style hosts via partnership/deep link if available,
|
||||
- bike shops,
|
||||
- repair stations,
|
||||
- train/bus/ferry bailout.
|
||||
|
||||
### Offline
|
||||
|
||||
Offline packs should include:
|
||||
|
||||
- route geometry,
|
||||
- map tiles/vector map region,
|
||||
- route-corridor POIs,
|
||||
- stage plan,
|
||||
- elevation profile,
|
||||
- rule cards,
|
||||
- emergency/bailout points,
|
||||
- saved notes,
|
||||
- exports.
|
||||
|
||||
### Community/local intelligence
|
||||
|
||||
Users can report:
|
||||
|
||||
- water available/unavailable,
|
||||
- surface mismatch,
|
||||
- locked gate,
|
||||
- access restriction,
|
||||
- dangerous dogs,
|
||||
- mud/sand/washout,
|
||||
- bridge/ferry closure,
|
||||
- good/bad sleep option,
|
||||
- bike shop availability,
|
||||
- reroute recommendation.
|
||||
|
||||
Reports must be dated, location-bound, typed, confidence-scored, and expire unless reconfirmed.
|
||||
|
||||
## Non-functional requirements
|
||||
|
||||
- Offline-first for riding-critical functions.
|
||||
- Clear attribution for OSM-derived data.
|
||||
- Explicit uncertainty indicators for legal/safety information.
|
||||
- Fast route-corridor search.
|
||||
- Provider abstraction to avoid lock-in.
|
||||
- Export support for GPX first, then TCX/FIT.
|
||||
- Privacy-conscious location handling.
|
||||
Reference in New Issue
Block a user