Khomasi is a modern Android application designed to streamline the process of booking sports fields and venues. Whether you're looking for a football pitch, a tennis court, or a basketball arena, Khomasi connects athletes with the perfect play space.
- Discover Venues: Browse and search for various sports fields near you.
- Easy Booking: Seamlessly book your preferred time slots with a few taps.
- User Authentication: Secure login, registration, and OTP verification.
- Manage Bookings: Keep track of your upcoming and past bookings in one place.
- Favorites: Save your most-loved venues for quick access.
- Notifications: Stay updated with booking confirmations and reminders.
- AI Integration: Enhanced user experience with AI-powered features.
- Face Detection: Integrated ML Kit for identity verification or profile customization.
- Interactive UI: Built entirely with Jetpack Compose for a smooth and modern feel.
- UI: Jetpack Compose with Material 3.
- Architecture: MVVM with Clean Architecture principles (Data, Domain, and Presentation layers).
- Dependency Injection: Hilt.
- Networking: Retrofit & OkHttp for REST API communication.
- Local Database: Room for caching and offline support.
- Asynchronous Programming: Kotlin Coroutines and Flow.
- Navigation: Jetpack Compose Navigation.
- Image Loading: Coil.
- AI/ML: Google ML Kit (Face Detection).
- Media: Media3 ExoPlayer for video content.
- Animations: Lottie for rich interactive animations.
- Local Storage: DataStore for preferences.
The project follows Clean Architecture to ensure scalability, maintainability, and testability:
- Presentation Layer: Contains UI components (Compose) and ViewModels.
- Domain Layer: Contains Business Logic, Use Cases, and Repository Interfaces.
- Data Layer: Contains Repository Implementations, Data Sources (Remote & Local), and Mappers.
- Android Studio Iguana or newer.
- JDK 17.
- Android SDK 24+.
- Clone the repository:
git clone https://github.com/Android-Geeks/khomasi.git
- Open the project in Android Studio.
- Sync the project with Gradle files.
- Run the app on an emulator or a physical device.
The project includes both unit and instrumentation tests:
- Unit Tests: Located in
src/test. - Instrumentation Tests: Located in
src/androidTest. - Uses JUnit, Google Truth, and MockWebServer.