Online real-time android quiz game

Overview

KQuiz

codebeat badge CodeFactor CI Build and Test

Описание проекта

Проект представляет собой мобильное приложение, выполнящее роль платформы для создания, поиска, организации и выполнения онлайн тестов или викторин. Также в состав проекта входит серверное приложение, обеспечивающее возможность сетевой игры в режиме реальном времени с неопределённым количеством других игроков.

Цели проекта

  • Модернизация учебного процесса с использованием платформы онлайн тестов
  • Упрощение интерфейса организации и прохождения учебного тестирования
  • Увеличение доступности и надёжности контроля знаний с использованием распространённых Android устройств
  • Развитие заинтересованности учеников в процессе с помощью соревновательной системы в реальном времени

Проект может быть использован не только в рамках учебной деятельности, но и, к примеру, для равзлечения в компании друзей или с семьёй в свободное время благодаря встроенному сетевому режиму и свободе в выборе тем и создании собственных викторин.

Техническая характеристика проекта

  • Стэк технологий
    • Kotlin Coroutines - выполнение асинхронных операций для работы с сетью
    • Retrofit - быстрый и удобный доступ к API со стороны клиента
    • Spring Boot Framework - web-приложение развёрнутое на хостинге Heroku
    • Google Firebase Filestore - серверная документоориентированная NoSql база данных
    • Android Jetpack
      • Fragment - использование нескольких экранов в рамках одной активности
      • Navigation - навигация между фрагментами в рамках одной активности
      • Navigation SafeArgs Plugin - безопасная передача данных между фрагментами
      • Lifecycle - обработка событий на основе жизненного цикла приложения
      • ViewModel - хранение и использование данных относящихся к UI в привязке к жизненному циклу представления
      • Android Kotlin Extensions
      • RecyclerView - представление данных в виде интерактивного списка
      • ViewBinding - современный способ доступа к элементам разметки
  • Современная архитектура
    • Многоуровневая архитектура
    • Паттерн проектирования MVVM на стороне клиента
    • Spring MVP на стороне сервера
    • Koin - Инъекция зависимостей
    • JUnit4 и Espresso - модульное и инструментальное тестирование
  • Continious Integration
    • GitHub Actions - сборка и анализ артефакта приложения с помощью Gradle
    • Автоматический анализ кода с помощью сторонних сервисов (Codebeat, Codefactor)
  • UI дизайн
    • Material design
    • FlexBox

Базовая структура

Слои приложения

Структура интерфейса

Структура базы данных

Скриншоты работы приложения

You might also like...
A clone of Zomato, A Online Food Ordering App using Jetpack Compose
A clone of Zomato, A Online Food Ordering App using Jetpack Compose

Zomato-Clone A clone of Zomato, A Online Food Ordering App using Jetpack Compose Below are a few Screenshots of the app till now - Screens Demo Login

The RuneTopic game server implementation that hosts and processes a game world.

RuneTopic Game Server The RuneTopic game server implementation that hosts and processes a game world. Setup Guide You can host a game server with Dock

WordGuess - A portuguese game inspired in the world fever wordle game
WordGuess - A portuguese game inspired in the world fever wordle game

WordGuess WordGuess is a portuguese game inspired in the world fever wordle game

🎓 Learning Kotlin Coroutines for Android by example. 🚀 Sample implementations for real-world Android use cases. 🛠 Unit tests included!
🎓 Learning Kotlin Coroutines for Android by example. 🚀 Sample implementations for real-world Android use cases. 🛠 Unit tests included!

Kotlin Coroutines - Use Cases on Android 🎓 Learning Kotlin Coroutines for Android by example. 🚀 Sample implementations for real-world Android use ca

sample project that shows you how you can use Ktor to creat a server for real Project.

Ktor-Sample This is a sample project that shows you how you can use Ktor to creat a server for real Project. What is done Save data to database (Get a

Grupo Zap - Viva Real
Grupo Zap - Viva Real

Grupo Zap - Viva Real How to run locally To run the application you need an installed emulator or a connected smartphone. The app's minimum Api is 21,

Meetups microservice, applying tactical DDD building blocks and in a real example.
Meetups microservice, applying tactical DDD building blocks and in a real example.

Meetups microservice: Applying tactical DDD Description This project is a practical example to understand the tactical patterns/building-blocks that d

A Simple Android library to get the number of words and give you the time it will take you to finish an article/story.

MinRead A Simple Android library to get the number of words and give you the time it will take you to finish an article/story. Prerequisite Androidx K

Owner
Konstantin Albatov
Konstantin Albatov
Android Project to find FatMax in real time with a Polar H10

FatMaxxer According to recent research (see below) the FatMaxxer Android app may help you to exercise at the optimum effort level for fat burning, mea

null 37 Dec 28, 2022
FirestoreCleanArchitectureApp is an app built with Kotlin and Firestore that displays data in real-time using the MVVM Architecture Pattern. For the UI it uses Jetpack Compose, Android's modern toolkit for building native UI.

FirestoreCleanArchitectureApp FirestoreCleanArchitectureApp is an app built with Kotlin and Cloud Firestore that displays data in real-time using Andr

Alex 66 Dec 15, 2022
An Android app that scans images or human faces in real time and detects whether the mask is worn or not, with the ability to set an audible alert

Swift Mask Real time face mask detection Brief overview Swift Mask scans images or human faces in real time and detects whether the mask is worn or no

Giorgio Cantoni 4 Sep 22, 2022
A webapp which generates a simple Discord profile banner image in real-time which shows user's status and activity.

DiscordProfileBanner This tool generates a Discord profile banner image in realtime. I wrote it for use in my AniList profile. An example in action: H

Quanta 11 Oct 17, 2022
The app features real-time chatting between different users on daily topics

DailyDiscuss The app features real-time chatting between different users on daily topics. The app comes with 2 types of user interface: Admin who crea

null 1 Dec 20, 2021
Task Manager feat. real-time competitive system and user engagement

Dira Что из себя представляет Dira? Android-приложение Directa (сокр. Dira) - это планер, который способен улучшить жизнь пользователей. Он позволяет

Konstantin Albatov 4 Sep 28, 2022
Map-vs-list-comparator - The project compares the time needed to find a given element in a map vs the time needed to find a given element in a list.

Map vs List Comparator The project compares the time needed to find a given element in a map vs the time needed to find a given element in a list. To

null 0 Jan 4, 2022
New style for app design Online Sunglasses Shop App UI made in Jetpack Compose.😉😎

JetSunglassUI-Android New style for app design Online Sunglasses Shop App UI made in Jetpack Compose. ?? ?? (Navigation Components, Dagger-Hilt, Mater

Arvind Meshram 18 Dec 12, 2022
An Online Meme Sharing app with swipeable vidoes, user can like, share different videos, each viewpager item has one video to show.

MemesSharing An Online Meme Sharing app with swipeable vidoes, user can like, share different videos, each viewpager item has one video to show. 1. Fl

Vikas Bajpayee 13 Aug 6, 2022