https://github.com/marcusmqf/transitgo
A Flutter-based mobile app to revolutionize public transit in Malaysia, encouraging sustainable urban mobility (SDG 11) with a seamless payment and reward system. Users tap their phone’s NFC (simulated for demo) to pay for transit rides, earning points for every trip—claimable with a swipe.
https://github.com/marcusmqf/transitgo
public-transport sdg transit
Last synced: 6 months ago
JSON representation
A Flutter-based mobile app to revolutionize public transit in Malaysia, encouraging sustainable urban mobility (SDG 11) with a seamless payment and reward system. Users tap their phone’s NFC (simulated for demo) to pay for transit rides, earning points for every trip—claimable with a swipe.
- Host: GitHub
- URL: https://github.com/marcusmqf/transitgo
- Owner: MarcusMQF
- License: gpl-3.0
- Created: 2025-03-21T15:22:06.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2025-04-29T15:59:37.000Z (9 months ago)
- Last Synced: 2025-06-21T17:02:02.282Z (7 months ago)
- Topics: public-transport, sdg, transit
- Language: Dart
- Homepage: https://shorturl.at/LSqhK
- Size: 6.09 MB
- Stars: 1
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
TransitGo
Tap, ride, and earn—your all-in-one app for sustainable public transit in Malaysia.

## 📱 About
**TransitGo** is a Flutter-based mobile application designed to **promote sustainable urban mobility in Malaysia** by simplifying public transit payments and rewarding eco-friendly travel. Built for a hackathon, it **simulates NFC-based tap-and-pay functionality for LRT, MRT,KTM and Bus rides**, allowing users to pay via an eWallet, earn points with a swipe-to-claim system, and track trip history with **Google Maps integration**. Leveraging **Google AI technologies like Firebase for real-time data and Google Maps Platform API for route visualization, and Google Gemini AI Assistant** TransitGo aligns with SDG 11 (Sustainable Cities) and SDG 13 (Climate Action). Whether you're commuting in Kuala Lumpur or beyond, TransitGo makes public transit seamless, rewarding, and green.
- **Key Features:** Simulated NFC Payments, EWallet, Points system, Transit history with maps, Transit Routing.
- **Tech Stack:** Flutter, Dart, Firebase, Google Maps Platform API, Google Gemini
- **Purpose:** Encourage public transit use to reduce urban congestion and carbon emissions.

## ✨ Features
- 🗺️ **Route Planning** - Find optimal routes to a destination using public transportation with step-by-step navigation
- ⏱️ **Real-time Updates** - Get accurate arrival and departure times
- 🔖 **Favorites** - Save frequent locations and routes for quick access
- 📊 **Travel History** - Track and analyze your travel patterns
- 🏆 **Rewards System** - Earn points and credits for using sustainable public transportation
## 🛠️ Tech Stack
Category
Technologies
Purpose
Framework
Cross-platform UI development
State Management
Application state management
Maps & Location
Maps integration and location services
Storage
Local data persistence
Networking
API communication
UI Enhancement
Animations and interactive components
Utilities
QR code generation, external links, image handling
Configuration
Environment variable management
Cloud Services
Backend services and authentication
External APIs
Real-time weather data and forecasts
AI Integration
AI assistant capabilities
Voice Recognition
Voice input and recognition
## 📂 Project Structure
TransitGo follows a modular architecture for maintainability and scalability:
```
lib/
├── main.dart # Application entry point
├── theme.dart # Global theme configuration
│
├── components/ # Reusable UI components
│ ├── buttons/ # Custom button components
│ ├── cards/ # Card-based UI elements
│ ├── inputs/ # Form and input components
│ └── navigation/ # Navigation-related components
│
├── config/ # Configuration files
│ ├── api_keys.dart # API key storage (gitignored)
│ ├── routes.dart # App navigation routes
│ └── constants.dart # Global constants
│
├── models/ # Data models
│ ├── user_model.dart # User profile data structure
│ ├── transit_model.dart # Transit-related data structures
│ ├── payment_model.dart # Payment and transaction models
│ └── rewards_model.dart # Points and rewards system models
│
├── screens/ # App screens
│ ├── home/ # Home screen and related views
│ ├── map/ # Map-related screens
│ ├── payment/ # Payment flow screens
│ ├── routes/ # Route planning screens
│ ├── profile/ # User profile screens
│ └── rewards/ # Rewards and points screens
│
├── services/ # External service integrations
│ ├── api_service.dart # API communication layer
│ ├── location_service.dart # Location services
│ ├── map_service.dart # Google Maps integration
│ ├── auth_service.dart # Authentication service
│ └── storage_service.dart # Local storage service
│
├── utils/ # Utility functions
│ ├── formatters.dart # Text and data formatters
│ ├── validators.dart # Input validation functions
│ ├── extensions.dart # Dart extensions
│ └── helpers.dart # General helper functions
│
└── widgets/ # Custom widgets
├── transit_card.dart # Transit information card
├── route_item.dart # Route list item
├── payment_button.dart # NFC payment button
└── reward_card.dart # Reward display card
```