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.
- Email signup & login
- Google login
- Forgot password (email-based)
- Guest access
- Search trains by source, destination, and date
- Detailed train information
- Secure payment gateway integration
- PNR status check
- Live train tracking
- Coach position visibility
- In-train food ordering
- Refund filing
- Travel feedback submission
- Rail Madad support
- Profile update
- Booking history
- Ticket cancellation
- Notifications
- Logout
- Email/Google login
- Forgot password
- Guest (limited access)
- Total users
- Total bookings
- Active trains
- Add trains
- Update train details
- Remove trains
- Monitor train schedules
- View payment history
- Monitor all bookings
- Review feedback
- Resolve grievances
- Broadcast important updates/alerts
| 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 |
- 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
- 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
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
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
- Flutter SDK (3.x or above)
- Dart
- Android Studio / VS Code
- Git installed
- Firebase account (optional)
- Clone the repository:
git clone https://github.com/BhavsarAesha/railOne.git
cd railOne- Install dependencies:
flutter pub get- Run the app:
flutter run- Enable Authentication (Email/Password, Google Sign-In)
- Create Firestore or Realtime DB
- Add
google-services.json(Android) andGoogleService-Info.plist(iOS/macOS) per Firebase setup
The app will still run without Firebase configured due to guarded initialization.
Edit JSON in assets/data/ to change trains, PNRs, food vendors, refunds, and grievances.
Aesha Bhavsar
GitHub: https://github.com/BhavsarAesha