Skip to content

RecursiveDev/Pasahe

Repository files navigation

Pasahe logo

Pasahe

A Flutter app for estimating public transport fares across the Philippines.

MIT License Flutter CI Latest release

Pasahe helps tourists, expats, and local commuters estimate fares for road, rail, and ferry transport. It focuses on answering a simple question quickly: how much will this trip cost?

Note

This app provides fare estimates, not official government fare quotations.

Features

  • Estimate fares for multiple Philippine transport modes, including jeepney, bus, taxi, UV Express, tricycle, pedicab, train, ferry, van, motorcycle, and EDSA Carousel
  • Use road-distance calculations for supported road transport and fixed fare matrices for rail and ferry routes
  • Download offline map regions and continue using core fare features with limited connectivity
  • Cache searched locations locally for faster repeat lookups
  • Use map-based origin and destination selection with location suggestions
  • Apply passenger discounts for students, senior citizens, and persons with disabilities
  • Switch between Material 3 light and dark themes
  • Use localized content with English and Tagalog support

How It Works

The app uses a hybrid fare engine:

  • Road transport uses distance-aware formulas based on OSRM routing, with offline-friendly fallbacks when network access is unavailable.
  • Rail and ferry transport use bundled fare matrices for fixed route pricing.
  • Offline support combines cached map data, cached geocoding results, and fallback routing strategies.

Tech Stack

  • Flutter and Dart
  • flutter_map and flutter_map_tile_caching
  • Hive and shared_preferences
  • get_it and injectable
  • OpenStreetMap Nominatim
  • OSRM

Project Structure

lib/
├── main.dart
└── src/
    ├── core/
    ├── l10n/
    ├── models/
    ├── presentation/
    │   ├── controllers/
    │   ├── screens/
    │   └── widgets/
    ├── repositories/
    └── services/
        ├── connectivity/
        ├── geocoding/
        ├── offline/
        └── routing/

Getting Started

Prerequisites

  • Flutter stable
  • Dart SDK 3.9.2 or newer
  • Android SDK and a connected device or emulator

Local setup

git clone https://github.com/RecursiveDev/Pasahe.git
cd Pasahe
flutter pub get
touch .env
dart run build_runner build --delete-conflicting-outputs
flutter run

Development

Useful commands:

flutter analyze
flutter test
flutter build apk --release --split-per-abi

Release builds are published on the GitHub Releases page.

Disclaimer

Fare values are estimates only. Official fares are regulated by the relevant Philippine transport authorities and may change without notice. The project is not affiliated with any government agency.

About

Pasahe is a cross-platform Flutter app for estimating public transport fares across the Philippines.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages