How psyc-syntax/apsrtc-transit-planner works
Markbus is a Flutter transit-planning app for APSRTC journeys. The documented user flow is choosing origin, destination and travel time, then viewing time-aware route options and checkpoint transfers; the app also has stop search, scheduled-trip planning, saved trips and data/settings screens. The tree supports these product areas, but most Dart sources were not sampled, so internal call wiring is shown only where the README or file responsibilities make it clear. The README describes C++/FFI, Firebase and railway support as in-progress or roadmap capabilities, not established integrations.
Main entry points: home_screen.dart Route search · database_helper.dart Database access · main.dart App entry · route_results_screen.dart Route results
Components 20
App experience
- App entry
lib/main.dart - Route search
lib/screens/home_screen.dart - Stop search
lib/screens/stop_search_screen.dart - Route results
lib/screens/route_results_screen.dart - Trip navigation
lib/screens/trip_navigation_screen.dart - Settings and support
lib/screens/more_options_screen.dart
Route planning
- Route algorithm
lib/logic/marks_algorithm.dart - C++ routing engine
lib/native/marksAlgorithm.cpp
Schedules and trips
- Schedule search
lib/screens/schedule_screen.dart - Schedule algorithm
lib/logic/marks_schedule_trips_algorithm.dart - Scheduled trips
lib/screens/scheduled_trips_screen.dart - Saved trips
lib/screens/trips_screen.dart - Trip persistence logic
lib/logic/save_trips.dart
Local data
- App data state
lib/providers/app_data_provider.dart - Database access
lib/helpers/database_helper.dart - Local SQLite data
assets/data/ap_v2.db - Engine data loader
lib/helpers/bin_files_helper.dart - Routing binary data
assets/bin files/B_arr.bin - Data update screen
lib/screens/settings/update_data_screen.dart
Other components
- Commuter
Connections 16
- Commuter → App entry: opens
- App entry → Route search: shows
- Route search → Stop search: searches stops
- Route search → Route algorithm: requests routes
- Route algorithm → Route results: returns options
- Route results → Trip navigation: starts trip
- Commuter → Schedule search: requests schedule
- Schedule search → Schedule algorithm: requests trips
- Schedule algorithm → Scheduled trips: returns trips
- Commuter → Saved trips: views saved trips
- Saved trips → Trip persistence logic: loads trips
- Trip persistence logic → Database access: persists trips
- Database access → Local SQLite data: reads and writes
- Route search → App data state: uses app state
- Data update screen → Database access: manages local data
- Engine data loader → Routing binary data: loads files