Welcome to the Melbourne Train Game, an interactive and engaging mobile application built with React Native and Expo! This app lets users explore the Melbourne train network, navigate between stations, and dive into a rich map-based experience.
- Interactive Map Exploration: Navigate across the Melbourne train network using an intuitive and immersive map interface (powered by React Native Maps and Mapbox).
- Station Search & Details: Quickly find stations and view rich details or user-contributed images seamlessly via our custom Bottom Sheet overlays.
- Train Directions: Get dynamic, public transport directions routing entirely within the app.
- Modern UI & UX: Enjoy beautiful visual designs, smooth micro-animations, dynamic z-indexing for markers, and a responsive edge-to-edge layout.
- Offline & Online Data: Uses optimized train tracking and routing logic right off the bat.
To get a local development environment up and running, follow these steps.
- Node.js (v18 or higher recommended)
npmoryarninstalled- Expo CLI
- Expo Go app on your physical device, or an iOS / Android simulator installed on your machine.
-
Clone the repository:
git clone https://github.com/SpySethyDev/MelbourneTrainGame.git cd MelbourneTrainGame -
Install the necessary dependencies:
npm install
-
Set up your environment variables: Copy the example template and fill in your API keys (e.g. Google Places API Key).
cp .env.template .env
-
Start the Expo development server:
npx expo start
From there, you can scan the QR code with your Expo Go app or press a / i to launch it on an emulator.
- Expo & React Native - The core mobile framework
- Expo Router - File-based routing for React Native
- React Native Maps & React Native Mapbox - Dynamic mapping capabilities
- React Native Paper - Material Design components
- Node.js scripts for GEOJSON optimization & data parsing
Contributions, issues, and feature requests are welcome! Feel free to check the issues page if you want to contribute.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Distributed under the MIT License. See LICENSE for more information.