Skip to content

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.

License

Notifications You must be signed in to change notification settings

MarcusMQF/TransitGo

Repository files navigation

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

About

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.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published