Skip to content
pashawkola33Public

About

Offline-first Expo/React Native trip planner for the Bucharest Metro (M1-M5) with transfer-aware routing and multilingual support.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

MeBuc

A metro-first trip assistant for Bucharest

Plan transfer-aware journeys across the M1–M5 network with an offline-first Expo and React Native app.

Expo SDK 54 React Native 0.81 TypeScript 5 iOS · Android · Web Verify MIT License

Features · Screenshots · Getting started · Architecture · Data policy


Overview

MeBuc is focused on one task: helping riders travel from station A to station B on the Bucharest Metro.

The app searches Romanian station names with or without diacritics, calculates routes across line transfers, presents the journey as an easy-to-follow timeline, and recommends where to board when coach-position data is available. Its bundled network data keeps core route planning available without an internet connection.

Features

  • Transfer-aware routing — compare the fastest journey with options that use fewer transfers.
  • Flexible station search — find stations with or without Romanian diacritics.
  • Interactive network map — explore the complete M1–M5 network from static SVG and coordinate data.
  • Clear journey guidance — review duration, transfers, line badges, stops, exits, warnings, and coach recommendations.
  • Offline-first operation — search, map browsing, and core route planning work from bundled data.
  • Honest data labels — distinguish bundled, remotely updated, and verified live information.
  • Three languages — Romanian, English, and Russian.
  • Cross-platform UI — run on iOS, Android, and the web.

Screenshots

Desktop experience

MeBuc desktop home screen with the Bucharest Metro map

Route guidance

MeBuc desktop route with highlighted track and coach recommendation

Mobile experience

MeBuc mobile station planner    MeBuc mobile transfer route

Responsive route planning and map exploration on a 390 × 844 viewport.

Getting started

Prerequisites

  • Node.js 20 or newer
  • npm
  • An Android or iOS development environment only if you plan to run a native build

Install

git clone https://github.com/pashawkola33/MeBuc.git
cd MeBuc
npm install

Run

npm run start

Or launch a specific platform:

npm run android
npm run ios
npm run web

The iOS command requires macOS and Xcode. Native Android development requires the Android SDK.

Technology

Area Technology
Application Expo SDK 54, React Native 0.81, React 19
Navigation Expo Router 6
Language TypeScript 5
Map rendering react-native-svg
Platforms iOS, Android, Web
Data model Bundled static metro network data

Architecture

MeBuc/
├── app/                         # Expo Router screens
├── src/
│   ├── data/metro/              # Stations, lines, connections, transfers, schedules
│   ├── features/
│   │   ├── route-planner/       # Transfer-aware routing
│   │   ├── stations/            # Search and grouped-station resolution
│   │   ├── lines/
│   │   ├── map/
│   │   ├── schedule/
│   │   └── settings/
│   ├── i18n/                    # English, Romanian, and Russian translations
│   ├── lib/                     # Shared utilities
│   └── ui/                      # Maps, route cards, timelines, and inputs
├── scripts/                     # Validation and repository checks
└── docs/                        # Product, data-policy, and setup documentation

Expo Router screens coordinate the application flow, feature modules contain domain logic, and the bundled metro dataset provides the source for offline route planning.

Verification

Run the full repository check before submitting changes:

npm run verify

Individual checks are also available:

Command Purpose
npm run validate:data Validate the bundled metro dataset
npm run health Run the project health check
npm run check:secrets Detect accidentally committed secrets

Data policy

MeBuc treats data provenance as a product feature:

  • Core route planning uses bundled static data and remains available offline.
  • Service status, delays, and arrival information are not presented as live unless they come from a verified source.
  • Station names preserve Romanian diacritics.
  • Metro lines are not identified by color alone.

The dataset in src/data/metro/metadata.json is derived from the Metrorex network map and covers the active M1–M5 network. See the data policy for sourcing and freshness details.

Contributing

Before opening a change:

  1. Read AGENTS.md and the relevant documentation in docs.
  2. Keep offline behavior and data provenance intact.
  3. Run npm run verify.
  4. Describe any user-visible or dataset changes clearly.

License

This project is available under the MIT License.

About

Offline-first Expo/React Native trip planner for the Bucharest Metro (M1-M5) with transfer-aware routing and multilingual support.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages