Skip to content

Quiz Platform is a Open Source knowledge testing platform for Android based on Jetpack Compose and Google solutions

License

Notifications You must be signed in to change notification settings

Yugyd/quiz-platform

Repository files navigation

Quiz Platform

Quiz Platform is a Open Source knowledge testing platform for Android based on Jetpack Compose and Google solutions. The project is based on the latest Android development solutions and can act as a sample for other developers.

Coming soon app "Quiz Platform" on Google Play.

Download Quiz Platform

Apps built on Quiz Platform

500K+ downloads (total for 5 apps)

Stack

The project is developed strictly within the framework of the Google way, only Google solutions are used. For novice developers to dive into android development.

  • Language: Kotlin
  • Architecture: MVVM (Google), clean, multi-module
  • UI: Compose, Material 3
  • Navigation: Jetpack Compose Navigation
  • Threading: Coroutines + Flow
  • DI: Hilt
  • DB: Room
  • Image: Coil
  • Firebase: Analytics, AppIndexing, Crashlytics, Cloud Messaging, Remote Config
  • Logging: Timber
  • Testing: Coming soon

Build types

The devDebug build option can be built and run. The release option is used on internal projects and is not publicly available, you need a real Firebase project to access it.

Debug - Logging, debug mode, proguard off.

Release - No logging, no debug mode, proguard enabled.

Deploy to Firebase App Distribution

Use environment variable FIREBASE_APP_ID. Set your app id value from Firebase.

https://docs.gradle.org/current/userguide/build_environment.html#sec:gradle_environment_variables

Contributions

Guide

Build

Build debug

  • ./gradlew clean assembleDevDebug

Deploy debug to Firebase App Distribution

  • ./gradlew clean bundleDevDebug
  • ./gradlew appDistributionUploadDevDebug

Deploy release to Firebase App Distribution

  • ./gradlew clean bundleDevRelease
  • ./gradlew appDistributionUploadDevRelease

Upload to Google Play

  • ./gradlew clean bundleProdRelease
  • Manual upload to Google Play

Build a standalone app

Code integration

Resource integration

  • Add a new directory with the flavor name to build.gradle. For example, dev, the same name will be used in the examples below.
  • Add the database file to your flavor's assets. Note that the file name must be content-encode-pro.db. For example, assets
  • Add strings.xml to res/values of your flavor. This file contains string values specific to your application. For example, res/values
  • Add ad-ids.xml to res/values of your flavor. This file contains ad identifiers for your app. For example, res/values. This step is optional.
  • Add category images to your flavor's assets. Note that the file format must be jpg or png. Example, assets folder. This step is optional.
  • Add a google-services.json file to connect to Firebase services in the flavor name directory. For example, google-services.json. This step is optional.

License

   Copyright 2023 Roman Likhachev

   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.