Skip to content

Flutter Project - RailOne-inspired train booking & tracking app

License

Notifications You must be signed in to change notification settings

BhavsarAesha/railOne

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

6 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸš† RailOne – Railway Ticket Booking App (Flutter)

RailOne is a comprehensive Flutter-based mobile application designed to simplify railway travel for passengers and streamline management tasks for administrators.
The app combines ticket booking, live train tracking, PNR status checking, food ordering, payments, feedback, and admin control into a single, modern platform.


⭐ Features

πŸ§‘β€πŸ’Ό User Module (Passengers)

πŸ” Authentication

  • Email signup & login
  • Google login
  • Forgot password (email-based)
  • Guest access

🎟️ Ticket Booking

  • Search trains by source, destination, and date
  • Detailed train information
  • Secure payment gateway integration

πŸ“ Real-Time Services

  • PNR status check
  • Live train tracking
  • Coach position visibility

πŸ” Additional Services

  • In-train food ordering
  • Refund filing
  • Travel feedback submission
  • Rail Madad support

πŸ‘€ User Account

  • Profile update
  • Booking history
  • Ticket cancellation
  • Notifications
  • Logout

πŸ› οΈ Admin Module (Railway Staff)

πŸ” Admin Authentication

  • Email/Google login
  • Forgot password
  • Guest (limited access)

πŸ“Š Dashboard Overview

  • Total users
  • Total bookings
  • Active trains

πŸš† Train Management

  • Add trains
  • Update train details
  • Remove trains
  • Monitor train schedules

πŸ’³ Payments & Bookings

  • View payment history
  • Monitor all bookings

πŸ“¨ User Support

  • Review feedback
  • Resolve grievances
  • Broadcast important updates/alerts

🧰 Tech Stack

Component Technology
Frontend Flutter (Dart)
Backend Firebase Authentication
Database Firestore / Realtime Database
Payment Online payment gateway integration
APIs Train Tracking API, PNR Status API
Tools Android Studio / VS Code, Firebase Console, Postman

πŸ“± Screenshots

image image image image image image image image image image image image image image image image image image image image image image image image image image image image image image image image image image image image image image image

🎯 Objectives of the System

  • Provide seamless and secure mobile ticket booking
  • Offer real-time train and PNR updates
  • Integrate refunds, and grievance handling
  • Deliver an admin panel for managing trains, payments & user issues
  • Combine everything in one cross-platform application

πŸ” Problem Solved

  • Users currently need multiple platforms for booking, tracking, and support
  • Existing systems lack integrated grievance handling & real-time updates
  • Admins have limited tools for managing trains and user issues

πŸ“Œ Scope of the Project

User Side

  • Authentication
  • Train search & booking
  • PNR, live tracking, coach view
  • Travel feedback
  • Refund requests
  • Booking management

Admin Side

  • Train management
  • User & booking overview
  • Payment monitoring
  • Feedback & grievances
  • Notification broadcasting

πŸ“¦ Project Structure

lib/
  models/           # Train, PNR, Food, Refund, Grievance models
  services/         # JsonService, mock repositories, FirebaseService
  screens/ 
    user/
    admin/
  widgets/
  utils/      
assets/
  data/             # trains.json, pnr.json, food.json, refunds.json, grievances.json

πŸ“ Requirements

  • Flutter SDK (3.x or above)
  • Dart
  • Android Studio / VS Code
  • Git installed
  • Firebase account (optional)

Run Locally

  1. Clone the repository:
git clone https://github.com/BhavsarAesha/railOne.git
cd railOne
  1. Install dependencies:
flutter pub get
  1. Run the app:
flutter run

Optional: Configure Firebase

  • Enable Authentication (Email/Password, Google Sign-In)
  • Create Firestore or Realtime DB
  • Add google-services.json (Android) and GoogleService-Info.plist (iOS/macOS) per Firebase setup

The app will still run without Firebase configured due to guarded initialization.


Mock Data

Edit JSON in assets/data/ to change trains, PNRs, food vendors, refunds, and grievances.


πŸ‘©β€πŸ’» Developer

Aesha Bhavsar
GitHub: https://github.com/BhavsarAesha