Skip to content
/ KQuiz Public

💡 Online real-time android mutiplayer quiz game

Notifications You must be signed in to change notification settings

AlbatovK/KQuiz

Repository files navigation

KQuiz

codebeat badge CodeFactor CI Build and Test

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

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

Цели проекта

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

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

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

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

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

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