Rickshaw Pulse is an Android-first community app that helps daily travelers understand if rickshaws are active on a route at a given time.
This is not a booking app. No payments, no subscriptions, no ride requests, and no exact private tracking.
mobile/– Flutter app (Traveler + Driver modes)backend/– lightweight Node.js API with file-based persistence- Open map stack:
- OpenStreetMap tiles/data
- Nominatim geocoding/reverse geocoding
- No paid API and no API keys
- Route selection (start + end)
- Time-based availability check
- Driver active/inactive toggle
- Approximate ETA ranges (not exact)
- Save daily routes
- Availability history labels (usually / sometimes / rare)
- Traveler mode without login
- Driver mode with simple login
- Mobile: Flutter +
flutter_map - Backend: Express.js API + JSON storage (easy to replace with PostgreSQL later)
- Privacy-first:
- No precise tracking timeline for travelers
- Driver location stored only while active and rounded to 3 decimals
- No payment/identity documents in app
cd backend
npm install
npm run devBackend runs at http://localhost:8080.
cd mobile
flutter pub get
flutter runUse --dart-define=API_BASE_URL=http://10.0.2.2:8080 for Android emulator.
POST /api/drivers/loginPOST /api/drivers/:driverId/status
GET /api/availability?startLat&startLon&endLat&endLon&hourPOST /api/routes/saveGET /api/routes/saved/:travelerIdGET /api/history?startLat&startLon&endLat&endLon
GET /api/geo/search?q=...(Nominatim search)GET /api/geo/reverse?lat=...&lon=...(Nominatim reverse)
- Drivers indicate availability and rough location while active.
- Travelers check expected availability by route + time.
- History is generated from actual active records, not mock data.
MIT