Skip to content

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.

License

Notifications You must be signed in to change notification settings

cnrture/Quizzy-Compose-Multi-Module

Repository files navigation

quiz-app-github

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.

Tech

  • Multi-Module-Architecture
  • Jetpack Compose
  • Material Design
  • Coroutines - Flow
  • Retrofit
  • KotlinX Serialization
  • Hilt
  • Navigation
  • Coil
  • Detekt
  • DataStore
  • Chucker

Modules

This project is organized into the following modules:

Build-Logic

  • Convention: Centralizes the project's build and configuration logic.

App

  • App Module: Serves as the entry point of the application and contains global configurations.

Core

  • 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.

Feature

  • 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

  • Navigation Module: Handles the navigation logic for transitions between screens in the app.

Screenshots

Splash Welcome Register
Login Forgot Password Home
Favorites Leaderboard Search
Detail Quiz Summary
Profile Edit Profile Select Avatar

Installation

  1. Clone the repository:
    git clone https://github.com/cnrture/Quizzy-Compose-Multi-Module.git
  2. Open the project in Android Studio.
  3. Sync Gradle to download all dependencies.
  4. 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
  5. Run the app on an emulator or physical device.

Roadmap

  • Add unit tests.
  • Add UI tests.
  • Add dark mode support.

Contribution

Contributions are always welcome! Here’s how you can help:

  1. Fork the repository.
  2. Create a new branch for your feature (feature/your-feature-name).
  3. Commit your changes and push the branch.
  4. Open a pull request.

About

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.

Topics

Resources

License

Stars

Watchers

Forks