This Android app enables users to manage their vehicles by allowing them to create, view, and delete vehicles. The app dynamically displays features specific to the selected vehicle. Users can interact with vehicle data such as brand, series, build year, and fuel type, and view specific vehicle features like Diagnostics, Live Data, and Battery Check.
screen-recored.mp4
![]() |
![]() |
![]() |
|
![]() |
![]() |
![]() |
![]() |
- Brand Selection: Users can select a vehicle brand from the provided list (BMW, Mercedes, Audi, Volkswagen).
- Series Selection: After selecting a brand, users can choose a series from the available options.
- Build Year Selection: Users can select the vehicle's build year based on the chosen series.
- Fuel Type Selection: Users can choose the vehicle’s fuel type from Diesel, Gasoline, Hybrid, Electric, or Other.
- Search Functionality: Each selection screen includes a search bar for filtering available options for quick and easy selection.
- Vehicle List: Displays a list of vehicles the user has added, showing the brand, series, year, and fuel type.
- Vehicle Selection: Users can select a vehicle from the list. The selected vehicle is highlighted for better identification.
- Delete Functionality: Users can delete any vehicle except the currently selected vehicle.
- No Vehicles: If no vehicles have been added, the dashboard will display an "Add Vehicle" button.
- With Vehicles: If vehicles have been added, the dashboard displays the details (brand, series, year, fuel type) of the currently selected vehicle, along with a default vehicle image.
- Features List: Dynamically displays a list of features specific to the selected vehicle.
In this project, the package structure is divided into the following packages using feature per package:
- di - contains the dependency injection modules for the feature.
- domain - contains the business logic classes for the feature.
- rp - contains the repository classes for the feature.
- vm - contains the view model classes(view model - state - actions - sideffect) for the feature.
- ui - contains the composable functions for the feature.
Note: The core package contains common classes that are shared across various features, such as
database entities and data sources, as these are used in multiple parts of the application.
- Kotlin: Used for Android development.
- Jetpack Compose: Used for building the UI.
- Room: For local database storage and management.
- Kotlin Coroutines: For handling background operations.
- Koin: For dependency injection.
- kotlin-serialization-: For json serialization and deserialization.
To build the APK locally, ensure you are using Android Studio Koala Feature Drop | 2024.1.2 Patch 1 or later:
- Open the project in Android Studio.
- Sync Gradle and use
Build > Build APK.
You can download the APK from the Actions tab under the Artifacts section after a workflow run.









