A modern Quiz App built with Jetpack Compose and organized using a multi-module architecture. This project demonstrates practices in Android development, emphasizing scalability, maintainability, and clean architecture.
- Multi-Module-Architecture
- Jetpack Compose
- Material Design
- Coroutines - Flow
- Retrofit
- KotlinX Serialization
- Hilt
- Navigation
- Coil
- Detekt
- DataStore
- Chucker
This project is organized into the following modules:
- Convention: Centralizes the project's build and configuration logic.
- App Module: Serves as the entry point of the application and contains global configurations.
- Common: Contains reusable components and shared utilities used across multiple modules.
- Connectivity: Manages network connection checks and status handling.
- Datasource: Handles data sources related to user sessions and profiles.
- Logout: Manages data operations for user logout functionality.
- Profile: Manages data related to user profiles.
- Datastore: Handles persistent data storage across the app.
- Network: Manages network requests and API calls.
- UI: Provides shared UI components and styles.
- Category: Handles categories, including data, business logic, and UI layers.
- Detail: Manages screens for displaying detailed information.
- EditProfile: Handles functionality for editing user profiles.
- Favorites: Manages the user’s favorite items or data.
- Home: Contains functionality for the home screen.
- Leaderboard: Handles leaderboard data and presentation.
- Login: Manages user login functionality.
- Profile: Provides access to user profile screens and features.
- Quiz: Handles the question-answer flow and quiz management.
- Register: Manages user registration functionality.
- Search: Handles search functionality and result display.
- Splash: Manages the splash screen displayed at the app start.
- Summary: Displays quiz summaries and results.
- Welcome: Manages the welcome screen of the app.
- Navigation Module: Handles the navigation logic for transitions between screens in the app.
Splash | Welcome | Register |
---|---|---|
Login | Forgot Password | Home |
---|---|---|
Favorites | Leaderboard | Search |
---|---|---|
Detail | Quiz | Summary |
---|---|---|
Profile | Edit Profile | Select Avatar |
---|---|---|
- Clone the repository:
git clone https://github.com/cnrture/Quizzy-Compose-Multi-Module.git
- Open the project in Android Studio.
- Sync Gradle to download all dependencies.
- You need to provide Firebase connection, add google.services.json into the app and add client id in local.properties as follows
SERVER_CLIENT_ID=YOUR_CLIENT_ID
- Run the app on an emulator or physical device.
- Add unit tests.
- Add UI tests.
- Add dark mode support.
Contributions are always welcome! Here’s how you can help:
- Fork the repository.
- Create a new branch for your feature (
feature/your-feature-name
). - Commit your changes and push the branch.
- Open a pull request.