Skip to content

About

Strathmover is a bus seat booking system that provides real-time updates and user authentication. Built with Flutter and Firebase, it offers a seamless UI for booking seats and accessing information. Features include secure user authentication, real-time data, and efficient data processing. Contributions are welcome!

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

112 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Strathmover Application

Strathmover is a user-friendly transport management application designed to simplify the booking and management of bus trips. Whether you're a student or staff at Strathmore University, this app makes it easy to manage your transportation needs.

Features

  • Easy Booking: Quickly book trips with just a few taps.
  • Transport History: View your past bookings and manage your travel history.
  • User Profiles: Manage your profile and keep track of your bookings.
  • Filter Options: Filter your bookings by date or departure time to find specific trips.

Project Setup/Installation Instructions

Dependencies

Installation Steps

  1. Clone the Repository:

    git clone https://github.com/your-username/strathmover.git
    cd strathmover
  2. Install Flutter Dependencies:

    flutter pub get
  3. Set Up Firebase:

    • Follow the Firebase setup guide to add Firebase to your Flutter project.
    • Download the google-services.json file for Android and GoogleService-Info.plist for iOS and place them in their respective directories.
  4. Run the App:

    flutter run

Usage Instructions

How to Run

  1. Login/Register:

    • Open the Strathmover app.
    • Login with your email and password, or register for a new account if you don't have one.
  2. Book a Trip:

    • Browse available trips on the main screen.
    • Select a trip, choose your preferred seat, and confirm your booking.
  3. View Transport History:

    • Navigate to the profile screen.
    • Access your transport history to view past bookings.
    • Use filters to sort bookings by date or departure time.
  4. Manage Profile:

    • Update your personal information in the profile section.
    • Keep track of your bookings and personal details.

Examples

  • Booking a Trip:

    • Select a trip from the list of available trips.
    • Choose a seat and confirm your booking.
  • Filtering Bookings:

    • Go to the transport history screen.
    • Use the filter options to narrow down your bookings by date or departure time.

Input/Output

  • Input: User inputs for booking trips include trip selection, seat choice, and personal details.
  • Output: Confirmation of bookings, updated transport history, and filtered lists of bookings.

Project Structure

  • lib/: Contains the main application code.
    • features/: Contains different features of the app.
    • authentication/: Manages user authentication.
    • views/: Contains UI screens for authentication.
    • booking/: Manages trip booking functionality.
    • transport_history/: Manages user transport history.
    • routes/: Manages the routes functionality.
    • notifications/: Manages notifications functionality.
    • models/: Contains data models used across the app.
      • booking_model.dart
      • trip_model.dart
      • user_model.dart
      • route_model.dart
    • controllers/: Contains global controllers.
      • auth_controller.dart
      • booking_controller.dart
      • home_controller.dart
      • route_controller.dart
      • transport_history_controller.dart
    • services/: Contains global services.
      • api_service.dart
      • auth_service.dart
      • booking_service.dart
      • notification_service.dart
      • route_service.dart
    • utils/: Contains utility classes and functions.
      • constants.dart
      • helpers.dart
      • theme.dart
      • validators.dart

Key Files

  • main.dart: Entry point of the application.
  • booking_controller.dart: Manages booking-related logic.
  • transport_history_controller.dart: Manages transport history logic.
  • booking_model.dart: Defines the data structure for bookings.

Additional Sections

Project Status

This project is currently in progress with active development.

Known Issues

  • Route on home screen not redirecting. Work in progress.
  • Project structure not well defined in README.
  • Bus Map implementation in Booking Screen. Investigations ongoing.
  • Cancel/Completed not functional on home screen yet. Work in progress.
  • Time sensitivity on fetching bookings in home screen. Work in progress.

Screenshots

Welcome Screen Sign Up Log In Home Booking Profile

Acknowledgements

Contact Information

For support or any issues, please contact the Strathmover support team:

License

This project is licensed under the MIT License - see the LICENSE file for details.

About

Strathmover is a bus seat booking system that provides real-time updates and user authentication. Built with Flutter and Firebase, it offers a seamless UI for booking seats and accessing information. Features include secure user authentication, real-time data, and efficient data processing. Contributions are welcome!

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages