AlbatovK / KQuiz

:bulb: Online real-time android mutiplayer quiz game

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

KQuiz

codebeat badge CodeFactor CI Build and Test

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

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

Цели проекта

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

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

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

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

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

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

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

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

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