
Z1411_tyutterin_Yakov_KR
.pdfМИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
федеральное государственное автономное образовательное учреждение высшего образования
«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ»
ИНСТИТУТ НЕПРЕРЫВНОГО И ДИСТАНЦИОННОГО ОБРАЗОВАНИЯ
КАФЕДРА ПРИКЛАДНОЙ ИНФОРМАТИКИ
КУРСОВАЯ РАБОТА (ПРОЕКТ) ЗАЩИЩЕНА С ОЦЕНКОЙ
РУКОВОДИТЕЛЬ |
|
|
|
|
|
|
|
доцент |
|
|
|
|
С. А. Чернышев |
|
должность, уч. степень, звание |
|
подпись, дата |
инициалы, фамилия |
||
|
|
ПОЯСНИТЕЛЬНАЯ ЗАПИСКА |
|
|||
|
|
|
К КУРСОВОЙ РАБОТЕ |
|
Веб-сервис «Портал с тестами»
по дисциплине: Технологии программирования
РАБОТУ ВЫПОЛНИЛ
СТУДЕНТ ГР. № |
|
Z1411 |
|
|
|
|
Я. Н. Тюттерин |
|
|
|
|
|
|
|
|||
|
|
номер группы |
|
подпись, дата |
|
инициалы, фамилия |
||
Студенческий билет № |
2019/3603 |
|
|
|
|
|
|
|
|
|
|
|
Шифр ИНДО |
|
|
|
|
|
|
|
|
|
|
|
|
|
Санкт-Петербург 2024
|
Содержание |
|
1. |
Введение................................................................................................................. |
3 |
2. |
Анализ предметной области ................................................................................. |
5 |
3. |
Анализ аналогов .................................................................................................... |
6 |
4. |
Выбор стека используемых технологий ............................................................... |
8 |
5. |
Техническое задание ........................................................................................... |
11 |
6. |
Схема базы данных ............................................................................................. |
12 |
7. |
Реализация проекта.............................................................................................. |
14 |
Заключение ................................................................................................................... |
42 |
|
Список использованной литературы .......................................................................... |
43 |
1. Введение
Персональные компьютеры являются неотъемлемой частью повседневной жизни любого уважающего себя человека. Компьютеры вполне могут заменить телевизор, радио, аудио- и видеопроигрыватели, телефон и массу иной техники. Неудивительно, что потребности пользователей всё возрастают, растет количество программного обеспечения, появляются новые технологии, задачи, пути их решения и внедрения.
Разумеется, в отраслях бизнеса, экономики, производства и учета компьютеры тоже нашли своё применение. Одним из самых распространенных видов программного обеспечения в этих сферах являются информационные системы: они очень упрощают и ускоряют работу предприятий, позволяют получать и предоставлять актуальную информацию без особых усилий, а также куда более надежны, нежели бумажные носители информации.
Тестирование – это способ контроля знаний. С помощью такого вида измерения знаний, у человека развивается навыки саморегулирования и самоконтроля. Тестирование ставит всех людей в одинаково равные условия,
практически исключая, субъективное отношение преподавателя. Самый большой плюс в тестировании – это минимум временных затрат на получение итогов контроля. При тестировании используют как бумажные, так и электронные варианты. Последние особенно привлекательны, так как позволяют получить результаты практически сразу по завершении теста.
Компьютерное тестирование позволяет заинтересовать обучающихся,
которые любят выполнять задания на компьютере, а таких немало. В
интерактивных обучающих заданиях используются компьютерные модели,
демонстрируются фотографии и видеоизображения, что позволяет более полно рассмотреть реальный объект изучения.
Отметим, что электронный тест имеет недостатки:
1. Необходим компьютер для прохождения теста.
3
2.Во время тестирования может произойти сбой (программный, может отключится свет, может сломаться компьютер).
Но электронный тест имеет и свои преимущества перед бумажным
тестом:
1.Не нужно тратить дополнительное время на проверку теста – количество правильных ответов и оценку видно сразу.
2.Если нашли ошибку в тесте ее можно исправить на месте и провести тестирование еще раз.
3.Электронный тест не требует дополнительных затрат на тестирование
(не нужно распечатывать тест).
4.Правила выполнения заданий электронного теста нельзя нарушить.
5.Результаты электронного теста удобнее обрабатывать и хранить.
4
2. Анализ предметной области
Разработать Веб-сервис «Портал с тестами». Портал с тестами – это онлайн платформа, которая предоставляет пользователям доступ к различным тестам и опросам по разным областям знаний. Такой сервис может быть полезен как студентам и школьникам для проверки своих знаний перед экзаменами, так и специалистам для оценки уровня своей квалификации.
При разработке веб-сервиса "Портал с тестами" необходимо учесть следующие аспекты предметной области:
1.Разнообразие тестов. Платформа должна предоставлять доступ к тестам по различным категориям – от программирования и математики до истории и т.д. Также важно предусмотреть возможность создания отдельных категорий.
2.Статистика. Веб-сервис должен предоставлять администартору и пользователям статистику по прохождению тестов, чтобы они могли отслеживать свой прогресс и улучшать свои результаты.
3.Адаптивный дизайн. Сервис должен быть удобен для использования на разных устройствах – от компьютеров до смартфонов, чтобы пользователи могли проходить тесты в любое удобное время и место.
4.Безопасность данных. Важно обеспечить защиту персональных данных пользователей и сохранность результатов их тестирования.
Таким образом, разработка веб-сервиса "Портал с тестами" требует внимания к разнообразию тестов, уровням сложности, статистике, дизайну,
обратной связи и безопасности данных. Успешная реализация всех этих аспектов поможет создать удобную и популярную платформу для проверки знаний и саморазвития пользователей.
5
3. Анализ аналогов
Порталы с тестами являются популярным способом проведения онлайн-тестирования и оценки знаний. Анализ аналогов таких порталов может помочь выявить их основные преимущества и недостатки, а также определить, какие функциональные возможности являются наиболее востребованными у пользователей.
Основные характеристики и функционал порталов с тестами:
1.Разнообразие категорий для разных групп интересов. Хороший портал с тестами должен предлагать широкий выбор тем и предметов для тестирования, чтобы удовлетворить потребности как школьников и студентов, так и профессионалов.
2.Удобный интерфейс и навигация. Пользователь должен легко находить нужные тесты, проходить их, просматривать результаты и анализировать свои ошибки.
3.Возможность создания собственных тестов. Некоторые порталы предоставляют возможность пользователям создавать собственные тесты и делиться ими с другими участниками.
4.Обратная связь и статистика результатов. Пользователи должны иметь возможность получить детальную обратную связь по результатам тестирования, а также просматривать статистику своей активности на портале.
5.Адаптивный дизайн. Порталы с тестами должны быть доступны для
использования на различных устройствах, включая смартфоны и планшеты.
Примеры популярных порталов с тестами и их основные особенности:
1.Testmoz - платформа для создания и прохождения тестов,
предоставляющая возможность добавления изображений и звуковых файлов к вопросам.
2.Quizlet - портал для изучения иностранных языков с помощью интерактивных карточек, аудио-тестов и других учебных материалов.
6
3. Kahoot - сервис для проведения интерактивных викторин и опросов в реальном времени с возможностью участия нескольких игроков.
Анализ аналогов порталов с тестами позволяет выделить идеи для улучшения существующих проектов и разработки новых функциональных возможностей, которые могут привлечь больше пользователей и повысить качество образовательного процесса.
7
4. Выбор стека используемых технологий
Веб-сервис будет состоять из двух отдельных приложений.
Для написания FrontEnd’a будет использоваться язык программирования 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 предоставляет разработчикам |
|||
инструменты для |
создания |
сложных |
систем, |
например |
8
многопользовательских корпоративных веб-приложений со множеством функций для бизнеса. Он позволяет быстро создавать приложения, которые умеют работать с базами данных и облаками, состоят из разных модулей, обмениваются данными с пользователями через интернет по защищённым каналам.
•Jjwt - это библиотека Java, обеспечивающая сквозное создание и проверку веб-токена JSON. Навсегда бесплатный и с открытым исходным кодом (лицензия Apache, версия 2.0), он был разработан с ориентированным на сборщика интерфейсом, скрывающим большую часть его сложности.
•commons-lang3 - библиотека Apache Commons Lang 3 представляет собой популярный, полнофункциональный пакет служебных классов, направленный на расширение функциональности Java API. Репертуар библиотеки довольно богат, начиная от манипуляций со строками, массивами и числами, отражения и параллелизма и заканчивая реализациями нескольких упорядоченных структур данных, таких как пары и тройки (обычно известные как кортежи).
•Lombok - это библиотека для сокращения кода в классах и расширения функциональности языка Java. Она подключается к среде разработки (IDE) или инструменту сборки приложений Maven, Gradle в качестве плагина. Принцип работы библиотеки основан на использовании аннотаций, которые:
o многократно сокращают шаблонный код; o экономят время разработчиков;
o улучшают читаемость кода.
Использование Lombok позволяет автоматически преобразовать объёмный Java-код в оптимизированную и лаконичную структуру. Также плагин избавляет разработчика от ручного набора однотипных фрагментов кода и предотвращает появление ошибок.
•Mapstruct - это библиотека для Java, которая генерирует код для передачи данных между разными сущностями в программе. Она помогает сопоставлять объекты из одной сущности с другой. Этот процесс называется маппингом данных, а инструмент для передачи — маппером, или Java mapper. Маппер в широком смысле — подсистема для преобразования и передачи данных.
•Flyway - это фреймворк, который обновляет версии баз данных с помощью миграций. Миграции можно писать на SQL (с синтаксисом, специфичным для конкретной СУБД) или на Java. Миграции могут быть версионными или повторяющимися. Первые имеют уникальную версию и применяются ровно один раз. У вторых номера версии нет, и они
9
применяются, когда у них изменяется контрольная сумма. Повторяющиеся миграции в рамках одного запуска всегда применяются после выполнения версионных миграций.
•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) — объединение изменений из одной ветки в другую.
10