How jeevandeepsaini/snapmechanic works
SnapMechanic is an Android garage-discovery and vehicle-service booking app. Users sign up or log in, browse/search paginated garages, inspect a garage, select services and a validated appointment time, then create and review bookings; account and profile tools complement that flow. The README documents Firebase authentication, Firestore profiles/bookings, and MockAPI garage data. Relationships for sampled flows follow source; additional UI capabilities use documented subsystem paths where exact wiring was not sampled.
Main entry points: UserRepository.kt User repository · ProfileActivity.kt Profile management · GarageRepository.kt Garage repository · GarageApi.kt Garage API
Components 24
Identity and profile
- Sign up
app/src/main/java/com/snapmechanic/app/ui/SignupActivity.kt - Login and reset
app/src/main/java/com/snapmechanic/app/ui/LoginActivity.kt - Profile management
app/src/main/java/com/snapmechanic/app/ui/ProfileActivity.kt - Edit profile
app/src/main/java/com/snapmechanic/app/ui/UpdateProfileActivity.kt - Change password
app/src/main/java/com/snapmechanic/app/ui/ChangePasswordActivity.kt - Help and support
app/src/main/java/com/snapmechanic/app/ui/HelpSupportActivity.kt
Garage discovery
- Garage home
app/src/main/java/com/snapmechanic/app/ui/HomeActivity.kt - Garage list adapter
app/src/main/java/com/snapmechanic/app/adapter/GarageAdapter.kt - Garage details
app/src/main/java/com/snapmechanic/app/ui/GarageDetailActivity.kt
Service booking
- Request service
app/src/main/java/com/snapmechanic/app/ui/RequestServiceActivity.kt - Time validation
app/src/main/java/com/snapmechanic/app/utils/TimeValidator.kt - Booking history
app/src/main/java/com/snapmechanic/app/ui/MyBookingsActivity.kt
Data access
- Authentication
app/src/main/java/com/snapmechanic/app/repository/AuthRepository.kt - Garage repository
app/src/main/java/com/snapmechanic/app/repository/GarageRepository.kt - API client
app/src/main/java/com/snapmechanic/app/network/ApiClient.kt - Garage API
app/src/main/java/com/snapmechanic/app/network/GarageApi.kt - Garage data
app/src/main/java/com/snapmechanic/app/model/Garage.kt - User repository
app/src/main/java/com/snapmechanic/app/repository/UserRepository.kt - User and booking models
app/src/main/java/com/snapmechanic/app/model/User.kt - Booking model
app/src/main/java/com/snapmechanic/app/model/Booking.kt
Other components
- App user
- Firebase Auth
- MockAPI garages
- Firestore
Connections 31
- App user → Sign up: creates account
- App user → Login and reset: signs in
- Sign up → Authentication: creates credentials
- Login and reset → Authentication: authenticates
- Authentication → Firebase Auth: calls
- Sign up → User repository: saves profile
- App user → Garage home: browses garages
- Garage home → Garage repository: loads pages
- Garage home → Garage list adapter: displays results
- Garage list adapter → Garage details: opens selection
- Garage repository → API client: uses client
- API client → Garage API: creates service
- Garage repository → Garage API: requests garages
- Garage API → MockAPI garages: fetches data
- Garage API → Garage data: decodes response
- Garage details → Garage repository: loads details
- Garage details → Request service: starts request
- Request service → Time validation: validates time
- Request service → User repository: creates booking
- App user → Profile management: manages account
- Profile management → User repository: loads profile
- Profile management → Edit profile: edits details
- Edit profile → User repository: updates profile
- Profile management → Change password: changes password
- Change password → Authentication: updates password
- Profile management → Booking history: views bookings
- Profile management → Help and support: opens support
- Booking history → User repository: loads history
- User repository → Firestore: reads and writes
- User repository → User and booking models: maps profile data
- User repository → Booking model: maps booking data