Skip to content

danshilm/MoBouzer

Repository files navigation

Expo Project Page

MoBouzer

A cross-platform mobile app for navigating Mauritius by bus (and soon via the metro too!) based on public transport data and user contributions to OpenStreetMaps.

iOS Preview Android Preview

Screenshots

Soon

Features

  • Shows bus stops throughout the island (currently ~800 bus stops)
  • Shows bus lines (currently ~5 bus lines)
  • Provides directions for walking & bus routes to your destination [in progress]
  • Calculates estimated arrival time/travel duration
  • Estimates time for buses to arrive at specific bus stops
    • Based on fixed schedule
    • Based on real time data
  • Calculates fare for your trip

Project Layout

This repository is the home of the mobile app as well as all associated services to run and manage the application, in a monorepo structure using PNPM workspaces.

  • apps/mobile-app is the React Native app itself made with Expo and built with EAS Build
  • apps/admin-cli is a small CLI tool made to manage the data on Firestore (for bus stops & bus lines) that's used in the mobile application
  • apps/website is the website built with NextJS 13 and hosted on Vercel
  • packages/functions contains serverless functions running on GCP related to MoBouzer and the MoBouzer GCP project itself
  • packages/shared holds interfaces/procedures used in both the admin CLI and the mobile app, hence the name (obviously)

Acknowledgements

  • This project wouldn't have been started if I hadn't come across the awesome mauritius-buses.com website where people can get routes to their destination and the buses they can take to get there.

    I personally used that website for years before coming up with the idea for MoBouzer. That was mainly due to the bus stops on mauritius-buses.com not being individually visible; bus stops are grouped by stage (a unit of measurement used to calculate the bus fare). Therefore, it is pretty hard to use mauritius-buses.com to travel to unknown areas since one has to estimate when they have reached their destination.

  • This project is tested with BrowserStack.

    BrowserStack Banner