Skip to content

oblakr24/route-planner

Repository files navigation

Route Planner

A demo app displaying a list of bus routes as well as route details with step-by-step routing information on a map.

Made using the latest Android development stack and architectural and UI development patterns, including Jetpack Compose and Material Design 3.

The app will load pages automatically once the user scrolls far enough (close enough to the last item). The pages are "faked" on the app-side to accommodate enough data for pagination, as the current API does not support pagination (and only returns two items).

NOTE: When building the app, you need to provide two API keys to the build process by adding in your local.properties the following two lines:

MAPS_API_KEY=YOUR_MAPS_KEY_HERE

GEOAPIFY_API_KEY=YOUR_GEOAPIFY_KEY_HERE

Instructions:

Geoapify API key instructions

Google Maps API key instructions

Video

rec2

Features

  1. Listing routes: Bus routes are listed in an infinitely scrollable list, with pages loaded dynamically. Scroll to-refresh to refresh the data.

  2. Route details: The route can be opened to reveal the details, with the route displayed on a full-screen map, and routing info in an expandable bottom sheet.

  3. Routing: Expand individual leg sections for step-by-step routing instructions, students to pick up and click on the corresponding button to pan to that stop on the map.

  4. Dark mode: Toggle to override system settings. When toggled, the preference is persisted.

Technologies

This app is made using:

  • Jetpack Compose for UI with Material 3
  • A mix of MVVM/MVI clean architecture with unidirectional data flows
  • Datastore for preferences persistence
  • Standardized design and typography to match Material 3 and easy customization

Stack:

Screenshots

Routes Listing & Drawer

Route details

Releases

No releases published

Packages

No packages published

Languages