- Introduction
- Features
- Screenshots
- Installation
- Usage
- Technologies Used
- Architecture
- Roadmap
- Contributing
- License
- Contact
The Car Rental Application is a comprehensive mobile solution for car rental services, developed using Flutter, Firebase, Bloc, and Clean Architecture. The application provides a seamless and intuitive interface for users to manage car rentals. It also integrates OpenStreetMaps for enhanced mapping and location-based services, ensuring a superior user experience. This application can be easily adapted for other rental services beyond cars.
- Comprehensive Rental Management: Allows users to seamlessly manage car rentals, including listing cars and navigation.
- Intuitive User Interface: Provides a user-friendly interface that makes navigating and using the app straightforward and efficient.
- OpenStreetMaps Integration: Incorporates OpenStreetMaps for accurate and detailed mapping, enabling users to find car locations and directions with ease.
- Adaptable Design: The architecture and design are flexible, allowing the app to be easily adapted for other rental services beyond cars.
![]() |
![]() |
---|---|
Home Screen | Cars List Screen |
![]() |
![]() |
---|---|
Car Details Screen | Map Integration |
- Flutter: Ensure Flutter is installed on your machine. Follow the official Flutter installation guide for your OS.
- Firebase: Set up a Firebase project and add the necessary configurations for Android and iOS.
- Clone the repository:
git clone https://github.com/naumanbutt2002/car_rental_app.git
- Navigate to the project directory:
cd car_rental_app
- Install dependencies:
flutter pub get
- Set up Firebase:
- Add your google-services.json (for Android) and GoogleService-Info.plist (for iOS) to the respective directories.
- Run the app:
- For iOS:
flutter run -d ios
- For Android:
flutter run -d android
- Start the application after installation by running flutter run on your preferred device.
- Browse available cars on the home screen.
- Filter and sort cars according to your preferences.
- Select a car to view detailed information and proceed to booking.
- Use the integrated OpenStreetMaps to locate available cars and get directions.
- Flutter: Cross-platform UI toolkit.
- Firebase: Backend services including Firestore.
- Bloc: State management solution for Flutter.
- Clean Architecture: A layered approach to software architecture.
- OpenStreetMaps: Open-source map and location services.
This project follows the Clean Architecture principles, ensuring a scalable and maintainable codebase. The architecture is divided into the following layers:
- Presentation Layer: UI components (Widgets), pages and state management (Bloc).
- Domain Layer: Repositories and use cases.
- Data Layer: Data repositories, datasources, and data models.
lib/
├── data/
│ ├── datasources/
│ ├── repositories/
│ └── models/
├── domain/
│ ├── repositories/
│ ├── usecases/
├── presentation/
│ ├── bloc/
│ ├── pages/
| ├── onboarding_page.dart
| ├── car_list_screen.dart
| ├── car_details_page.dart
| ├── maps_detail_page.dart
│ └── widgets/
-
- Initial release with core features.
-
- Add advanced search filters.
-
- Integration with payment gateways.
-
- Release version 1.0.
Contributions are welcome! Please follow the steps below:
- Fork the repository.
- Create a new branch ('git checkout -b feature-branch').
- Make your changes.
- Commit your changes ('git commit -m 'Add some feature'').
- Push to the branch ('git push origin feature-branch').
- Open a pull request.
Please ensure all contributions align with the Clean Architecture principles used in this project.
Distributed under the MIT License. See LICENSE for more information.
Muhammad Nauman
[email protected]
Linkedin | Instagram
You can also follow my GitHub Profile to stay updated about my latest projects: Github