A mobile application built using Flutter, Google Gemini API, and Google ARCore, aimed at transforming vehicle diagnostics and maintenance. By leveraging an OBD2 (On-board diagnostics) scanner, the app offers comprehensive diagnostic reports and maintenance suggestions, enabling users to effectively monitor their vehicle's health. This project was created for the Google Gemini API Developer Competition 2024, demonstrating the integration of cutting-edge Google technologies.
Check out the Figma high fidelity prototype designs here and watch our pitch video here.
Important
Please note that the app requires an OBD2 scanner to connect to your vehicle and retrieve real-time diagnostic information. Also, the AI model is currently trained for a limited number of vehicles and may not support all vehicle models.
Register Screen | Home Screen | Diagnostics Screen |
Chat Support Screen | AR Core Identify Screen | Profile Screen |
- Noufil Saqib GitHub LinkedIn
- Towa Quimbayo GitHub LinkedIn
- Mangat Toor GitHub LinkedIn
- Abhishek Chouhan GitHub LinkedIn
- Bhavnoor Saroya GitHub LinkedIn
- Cloud Firestore
v5.1.0
- Dash Chat
v0.0.21
- Firebase Auth
v5.1.2
- Firebase Core
v3.2.0
- Flutter
>=3.4.3 <4.0.0
- Flutter Bloc
v8.1.6
- Google AI Dart SDK
0.4.3
- Google ARCore
- Google Gemini API
v1.5 Pro
- Google Sign In
v6.2.1
- Hydrated Bloc
v9.1.5
- Speech to Text
v6.6.2
Installation
- Clone the repository to your local machine:
git clone https://github.com/immangat/Garaage.git
- Install the required dependencies:
flutter pub get
- Generate a new Google Gemini API key by following the instructions provided in the Google Gemini API documentation and add the API key to your .env file.
Environment Variables Setup
For the project to run correctly, environment variable for Google Gemini API is required. Rename the .env.example
to .env
. Sign up for a Google Gemini API key by following the instructions provided in the Google Gemini API documentation and add the API key to your .env
file.
GOOGLE_GEMINI_API_KEY=YOUR_GOOGLE_GEMINI_API_KEY
Firebase Google Sign In Setup (Optional)
- Create a new Firebase project in the Firebase Console.
- Add an Android app to your Firebase project and follow the setup instructions to download the
google-services.json
file. - Add the
google-services.json
file to theandroid/app
directory of your Flutter project. - Generate your SHA-1 key using the following command in the terminal:
cd android
./gradlew signingReport
- Add the SHA-1 key to your Firebase project in the Firebase Console.
- Enable Google Sign In in the Firebase Authentication settings.
Run The App
In order to run the application, you need to have an Android emulator or a physical device connected to your computer. You can use the following commands to run the app:
flutter run
The app will be built and deployed to your emulator or device. You can interact with the app using the on-screen controls or your device's touch screen.
Leveraging Google's advanced technologies to enhance the app's functionality and user experience. The app integrates with Google Gemini API, Google ARCore, and other Google services to provide cutting-edge features and capabilities.
Securely authenticate users and manage user accounts using Firebase Auth and Cloud Firestore. Users can sign in using their Google account or email address and password. The app provides secure user authentication and registration, ensuring user data is protected and secure.
- User Authentication: Securely authenticate users using Firebase Auth. The app provides secure user authentication and registration using Firebase Auth. Users can sign in using their Google account or email address and password.
- Google Sign In: Enable users to sign in using their Google account. The app supports Google Sign In, allowing users to sign in using their Google account. Users can securely authenticate and access the app's features and functionalities using their Google account.
- Profile Management: Manage your profile, vehicle information, and preferences. The app allows users to create and manage their profiles, add multiple vehicles, and customize their preferences. Users can view and update their personal information, vehicle details, and settings.
Enhancing vehicle management with advanced diagnostics and maintenance recommendations. The app provides real-time vehicle information, diagnostic analysis, and maintenance recommendations to ensure your vehicle is in optimal condition.
- OBD2 Integration: Connect your vehicle via Bluetooth using an OBD2 scanner for real-time diagnostics and vehicle registration. The OBD2 scanner provides self-diagnostic and reporting capabilities to the app.
- Diagnostic Analysis: Perform comprehensive diagnostic checks on your vehicle. The app uses the Google Gemini API to interpret OBD2 error codes and generate detailed reports including the error code, description, possible causes, recommended maintenance, and more.
Access real-time vehicle information and statistics to monitor your vehicle's health, condition, and performance. The app provides detailed insights into your vehicle's status, including fuel consumption, engine temperature, battery voltage, and more.
- Dashboard: View essential vehicle information and key metrics such as fuel consumption, mileage, battery voltage, RPM, engine temperature, and more.
- Bluetooth Connection: Seamlessly connect to the OBD2 scanner using your phone's Bluetooth to retrieve and access real-time vehicle information and statistics. The app uses the OBD2 scanner to communicate with your vehicle and retrieve data.
Get interactive assistance and support through the app's AI chatbot and AR identification features. The app uses Google's advanced technologies to provide interactive assistance, troubleshooting tips, and augmented reality identification of vehicle components.
- Chatbot Integration: Use the Google Gemini-powered chatbot for instant assistance and interactive support. The chatbot provides real-time responses to your queries, offers troubleshooting tips, and guides you through the app's features and functionalities. Users can ask questions, send text, photos, and audio recordings to get detailed assistance regarding their vehicle.
- AR Identification: Use Google ARCore to identify and locate vehicle components and parts. The app uses augmented reality to provide an interactive and immersive experience for users to identify and locate vehicle parts, components, and systems. Users can point their phone's camera at the vehicle to view detailed information about specific parts and components.