KQuiz
Описание проекта
Проект представляет собой мобильное приложение, выполнящее роль платформы для создания, поиска, организации и выполнения онлайн тестов или викторин. Также в состав проекта входит серверное приложение, обеспечивающее возможность сетевой игры в режиме реальном времени с неопределённым количеством других игроков.
Цели проекта
- Модернизация учебного процесса с использованием платформы онлайн тестов
- Упрощение интерфейса организации и прохождения учебного тестирования
- Увеличение доступности и надёжности контроля знаний с использованием распространённых 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