An open API service indexing awesome lists of open source software.

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.

Awesome Lists containing this project

README

          


TransitGo Logo

TransitGo


Tap, ride, and earn—your all-in-one app for sustainable public transit in Malaysia.

Flutter
Dart
Google Maps
Firebase
Google Cloud

## 📱 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.

Mockup

## ✨ 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

Flutter
Dart

Cross-platform UI development


State Management

Provider

Application state management


Maps & Location

Google Maps
Geolocator

Maps integration and location services


Storage

Shared Preferences

Local data persistence


Networking

HTTP

API communication


UI Enhancement

Lottie
Slide to Act

Animations and interactive components


Utilities

QR Flutter
URL Launcher
Image Picker

QR code generation, external links, image handling


Configuration

Flutter dotenv

Environment variable management


Cloud Services

Firebase

Backend services and authentication


External APIs

OpenWeather API

Real-time weather data and forecasts


AI Integration

Google Generative AI
Google Studio AI

AI assistant capabilities


Voice Recognition

Flutter Speech to Text

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
```