Skip to content

EquiTrail β€” Horse Riding GPS TrackerΒΆ

EquiTrail is a Flutter-based GPS tracking app for horse riders in the Dutch market (Netherlands, Belgium, Germany, France). Track your rides, discover routes, find riding partners, and share your adventures.

πŸ“± App StackΒΆ

Framework Flutter 3.44 / Dart 3.12
State Riverpod
Storage Hive (local) / Firestore (cloud)
Maps flutter_map with Leaflet
Navigation go_router
Backend Firebase (Auth, Firestore, Storage, Functions)
Version v3.5.12+62 (phone) Β· 1062 (watch)

🌍 Region Coverage¢

Official routes from OpenStreetMap (ODbL licence):

Country Routes Km
πŸ‡³πŸ‡± Netherlands 11,458 ~32,140 km
πŸ‡§πŸ‡ͺ Belgium 2,693 ~7,817 km
πŸ‡©πŸ‡ͺ Germany 558 ~8,342 km
πŸ‡«πŸ‡· France 79,040 ~156,892 km
TOTAL 93,749 ~205,191 km

🎯 Current Focus¢

Phase 1: Website Route Display βœ…ΒΆ

  • Route import from Overpass API (188K routes)
  • Website map rendering (magenta lines, weight 4)
  • Firestore public read enabled
  • Region enrichment in progress

Phase 2: Firebase API Layer (In Progress)ΒΆ

  • Cloud Functions for routes with CDN caching
  • Google Encoded Polyline compression (70-80% savings)
  • Bounding box queries to prevent scraping
  • Rate limiting + App Check protection

Phase 3: Revenue (Planned)ΒΆ

  • Stripe payments for PRO subscriptions
  • Google Play Billing integration
  • Horse PRO shared subscription

πŸ“š Documentation StructureΒΆ

  • Getting Started β€” Setup, build commands, deployment
  • Architecture β€” Design decisions, infrastructure, security
  • Features β€” Complete feature list & roadmap
  • Routes & Data β€” Route database, data sources, import status
  • Operations β€” Backup, disaster recovery, bug tracking

🀝 Discord Community¢

  • Server: discord.gg/sRcJuTQzyZ
  • Tester Badge: Join, verify role, get feedback
  • Route Helper: Drop .gpx in #share-routes for stats
  • Leaderboard: Track rides & earn badges

πŸ” Security & PrivacyΒΆ

All data is private by default. Users control what is shared: - Profile visibility (name, avatar, location) - Ride visibility (public GPS tracks, anonymous stats) - Horse sharing (specific horses with specific riders)

See Security for details.

πŸ“‹ Monitoring & AdminΒΆ

  • Dashboard: python3 scripts/dashboard.py (terminal)
  • Web Dashboard: http://localhost:8080 (Portainer)
  • Uptime Kuma: http://192.168.1.111:3001 (monitors)
  • Logs: Oracle server via Tailscale SSH

πŸš€ DeploymentΒΆ

Phone App:

flutter build appbundle --release --obfuscate --split-debug-info=symbols/
python3 scripts/play_upload.py --aab build/app/outputs/bundle/release/app-release.aab --track internal

Website:

bash scripts/deploy_website.sh

Discord Bot:

scp discord_bot/bot.py equitrail@100.126.14.49:~/equitrail-bot/
ssh equitrail@100.126.14.49 "systemctl --user restart equitrail-bot"


Last Updated: 2026-06-09 | Version: v3.5.12+62 | Status: Active Development