Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Z1411_Tyutterin_Yakov_TP.docx
Скачиваний:
3
Добавлен:
07.01.2025
Размер:
10.83 Mб
Скачать
  1. Анализ аналогов

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

Основные характеристики и функционал порталов с тестами:

  1. Разнообразие категорий для разных групп интересов. Хороший портал с тестами должен предлагать широкий выбор тем и предметов для тестирования, чтобы удовлетворить потребности как школьников и студентов, так и профессионалов.

  2. Удобный интерфейс и навигация. Пользователь должен легко находить нужные тесты, проходить их, просматривать результаты и анализировать свои ошибки.

  3. Возможность создания собственных тестов. Некоторые порталы предоставляют возможность пользователям создавать собственные тесты и делиться ими с другими участниками.

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

  5. Адаптивный дизайн. Порталы с тестами должны быть доступны для использования на различных устройствах, включая смартфоны и планшеты.

Примеры популярных порталов с тестами и их основные особенности:

  1. Testmoz - платформа для создания и прохождения тестов, предоставляющая возможность добавления изображений и звуковых файлов к вопросам.

  2. Quizlet - портал для изучения иностранных языков с помощью интерактивных карточек, аудио-тестов и других учебных материалов.

  3. Kahoot - сервис для проведения интерактивных викторин и опросов в реальном времени с возможностью участия нескольких игроков.

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

  1. Выбор стека используемых технологий

Веб-сервис будет состоять из двух отдельных приложений.

Для написания FrontEnda будет использоваться язык программирования JavaScript, но не в чистом виде. Angular — это фреймворк для frontend-разработчиков, который использует язык JavaScript и имеет открытый исходный код.

Он предоставляет возможность полноценной работы по созданию приложений и включает в себя:

  • полноценную платформу для программирования;

  • набор библиотек, интегрированных друг с другом и имеющих множество готовых решений для реализации обширного функционала;

  • комплект дополнительных инструментов для программистов, помогающих писать, собирать, проводить тестирование, оптимизировать и обновлять программный код.

Главным отличием Angular от предшественников стала возможность работы с инструментами HTML и CSS. Это позволило даже неквалифицированным программистам разрабатывать и внедрять достаточно сложные приложения в разных форматах — для браузера, для мобильных устройств или в десктопном варианте.

Для разработки BackEnd части будет использоваться язык программирования Java.

Java – это многоплатформенный, объектно-ориентированный и сетецентрический язык, который сам по себе может использоваться как платформа. Это быстрый, безопасный и надежный язык программирования для всего: от мобильных приложений и корпоративного ПО до приложений для работы с большими данными и серверных технологий. Поскольку Java является бесплатным и универсальным языком, на нем создаются локализованные и распространяемые программы.

Список используемых фреймворков будет включать:

  • Spring Framework - универсальный фреймворк с открытым исходным кодом для Java-платформы. Также существует форк для платформы .NET Framework, названный Spring.NET. Первая версия была написана Родом Джонсоном, который впервые опубликовал её вместе с изданием своей книги «Expert One-on-One Java EE Design and Development». Фреймворк Java Spring предоставляет разработчикам инструменты для создания сложных систем, например многопользовательских корпоративных веб-приложений со множеством функций для бизнеса. Он позволяет быстро создавать приложения, которые умеют работать с базами данных и облаками, состоят из разных модулей, обмениваются данными с пользователями через интернет по защищённым каналам. 

  • Jjwt - это библиотека Java, обеспечивающая сквозное создание и проверку веб-токена JSON. Навсегда бесплатный и с открытым исходным кодом (лицензия Apache, версия 2.0), он был разработан с ориентированным на сборщика интерфейсом, скрывающим большую часть его сложности.

  • commons-lang3 - библиотека Apache Commons Lang 3 представляет собой популярный, полнофункциональный пакет служебных классов, направленный на расширение функциональности Java API. Репертуар библиотеки довольно богат, начиная от манипуляций со строками, массивами и числами, отражения и параллелизма и заканчивая реализациями нескольких упорядоченных структур данных, таких как пары и тройки (обычно известные как кортежи).

  • Lombok - это библиотека для сокращения кода в классах и расширения функциональности языка Java. Она подключается к среде разработки (IDE) или инструменту сборки приложений Maven, Gradle в качестве плагина. Принцип работы библиотеки основан на использовании аннотаций, которые:

    • многократно сокращают шаблонный код;

    • экономят время разработчиков;

    • улучшают читаемость кода.

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

  • Mapstruct - это библиотека для Java, которая генерирует код для передачи данных между разными сущностями в программе. Она помогает сопоставлять объекты из одной сущности с другой. Этот процесс называется маппингом данных, а инструмент для передачи — маппером, или Java mapper. Маппер в широком смысле — подсистема для преобразования и передачи данных.

  • Flyway - это фреймворк, который обновляет версии баз данных с помощью миграций. Миграции можно писать на SQL (с синтаксисом, специфичным для конкретной СУБД) или на Java. Миграции могут быть версионными или повторяющимися. Первые имеют уникальную версию и применяются ровно один раз. У вторых номера версии нет, и они применяются, когда у них изменяется контрольная сумма. Повторяющиеся миграции в рамках одного запуска всегда применяются после выполнения версионных миграций.

  • Hibernate - Библиотека для языка программирования Java, предназначенная для решения задач объектно-реляционного отображения (ORM). Является самой популярной реализацией спецификации JPA.

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

В качестве базы данных будет использоваться PostgreSQL. PostgreSQL — это свободно распространяемая объектно-реляционная система управления базами данных (СУБД) с открытым исходным кодом, написанном на языке C. «Объектно-реляционная» означает, что PostgreSQL поддерживает концепции, присущие как реляционным базам данных, так и объектно-ориентированным языкам программирования (объекты, классы, наследование и другие).

В качестве системы сборки будет использоваться Maven. Фреймворк для автоматизации сборки проектов на основе описания их структуры в файлах POM, на языке XML. Проект Maven издаётся сообществом Apache Software Foundation, где формально является частью Jakarta Project.

В качестве системы контроля версий будет использоваться Git. Git — это распределённая система контроля версий. Она позволяет разработчикам отслеживать изменения в исходном коде и сотрудничать с другими разработчиками над одним проектом.

Основные понятия Git:

  1. Репозиторий — хранилище, содержащее все файлы и историю изменений проекта.

  2. Коммит — фиксация изменений в репозитории с описанием внесенных изменений.

  3. Ветка (branch) — отдельный поток разработки, который позволяет создавать и тестировать новые функции, не затрагивая основной код.

  4. Слияние (merge) — объединение изменений из одной ветки в другую.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]