The Car Rental App is a Flutter-based mobile application designed to facilitate the renting and listing of cars. It follows Clean Architecture principles and leverages Firebase for authentication, data storage, and notifications. The app enables users to search for available cars, book them, and make payments, while also allowing car owners to list their vehicles and manage bookings.
- User Authentication: Firebase Authentication for secure login and sign-up.
- Car Search: Search for cars by location using Google API.
- Booking System: Users can book available cars, and owners can approve or deny requests.
- Payments: Integrated with Razorpay for seamless transactions.
- Car Registration: Owners can register their cars for rental.
- Revenue Tracking: Owners can check their generated revenue.
- Notifications: Firebase Cloud Messaging for real-time updates.
- Flutter (for cross-platform mobile development)
- Firebase
- Authentication
- Firestore Database
- Cloud Storage
- Cloud Messaging (FCM)
- Google API (for location-based car search)
- Razorpay (for handling payments)
- Clean Architecture (ensuring modularity and maintainability)
The following diagram illustrates the overall flow of the Car Rental App:
Firebase DB:
- Login/Register via Firebase Authentication.
- Customer Role:
- Access the Customer Home Screen.
- Search for cars by location.
- Book an available car.
- Wait for owner approval.
- Make payment upon approval.
- View all bookings.
- Owner Role:
- Register a car.
- Approve or deny booking requests.
- Track revenue generated.
Below are screenshots of the application displayed side by side:
Splash Screen | Authentication Home | Sign Up |
---|---|---|
![]() |
![]() |
![]() |
Login | Home | Search |
---|---|---|
![]() |
![]() |
![]() |
Search Results | Car Results | Booking |
---|---|---|
![]() |
![]() |
![]() |
My Bookings | Profile | Edit Profile |
---|---|---|
![]() |
![]() |
![]() |
Become Owner | Register Car | Owner Home |
---|---|---|
![]() |
![]() |
![]() |
Owner Booking | Customer Payment | Payment |
---|---|---|
![]() |
![]() |
![]() |
Confirmation | Revenue | Help |
---|---|---|
![]() |
![]() |
![]() |
Owner Cars |
---|
![]() |
- Clone the repository:
git clone https://github.com/your-username/CarRentalApp.git cd CarRentalApp
- Install dependencies:
flutter pub get
- Configure Firebase:
- Set up a Firebase project.
- Enable Authentication (Email/Google Sign-in).
- Configure Firestore and Cloud Storage.
- Enable Firebase Cloud Messaging (FCM).
- Setup AppSecrets googleAPI, RazorpayAPI
- Run the app:
flutter run
Feel free to contribute to the project by submitting issues or pull requests.
This project is licensed under the MIT License.