Skip to content

Repository files navigation

Instant Mechanic

A mini Android app that lets users browse nearby mechanics, view garage details, and submit vehicle service requests.

Features

  • Browse mechanics sorted by distance
  • View rating, review count, location, services, and open/closed status
  • View mechanic details and working hours
  • Submit a vehicle service request
  • Form validation
  • Loading, success, and error states
  • Graceful handling of missing mechanic data
  • Firebase Realtime Database integration

Tech Stack

  • Kotlin
  • Jetpack Compose
  • MVVM
  • Clean Architecture
  • Retrofit + Gson
  • Firebase Realtime Database
  • Hilt
  • KSP
  • Kotlin Coroutines + StateFlow
  • Navigation Compose
  • JUnit
  • JSON parsing
  • REST API integration

Architecture

The project uses a multi-module Clean Architecture setup:

app     -> UI, Navigation, ViewModels, Dependency Injection
data    -> Retrofit, Firebase, DTOs, Mappers, Repository Implementations
domain  -> Domain Models, Repository Interfaces, Business Logic

The domain module does not depend on Android, Retrofit, or Firebase.

API / Data

Mechanic data is hosted in Firebase Realtime Database and fetched using Retrofit through the Firebase REST API.

GET /mechanics.json

Base URL:

https://instant-mechanic-3baac-default-rtdb.firebaseio.com/

Service requests are submitted to Firebase Realtime Database under:

serviceRequests/

Open/Closed status is calculated dynamically using each mechanic's opening and closing time rather than relying on a stored status value.

Setup

  1. Clone the repository.
  2. Open the project in Android Studio.
  3. Add google-services.json inside the app/ directory.
  4. Sync Gradle.
  5. Run the app on an emulator or Android device with internet access.

Minimum SDK: Android 8.0 (API 26)

Screenshots

Screenshots

Home Screen Mechanic Details Request Service Screenshot_20260903_170312 Network Error Screenshot_20260903_170353

Left to right: Home Screen, Mechanic Details, Request Service, Success Confirmation, Error State

Notes

  • Distance is currently provided by the backend and mechanics are displayed nearest-first.
  • Live GPS-based distance calculation is outside the current assignment scope.
  • Missing optional fields are handled gracefully in the UI.

About

A mini Android application that allows users to browse nearby mechanics, view garage details, and submit vehicle service requests.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages