Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Z1411_tyutterin_Yakov_KR

.pdf
Скачиваний:
0
Добавлен:
07.01.2025
Размер:
3.97 Mб
Скачать

МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ

федеральное государственное автономное образовательное учреждение высшего образования

«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ»

ИНСТИТУТ НЕПРЕРЫВНОГО И ДИСТАНЦИОННОГО ОБРАЗОВАНИЯ

КАФЕДРА ПРИКЛАДНОЙ ИНФОРМАТИКИ

КУРСОВАЯ РАБОТА (ПРОЕКТ) ЗАЩИЩЕНА С ОЦЕНКОЙ

РУКОВОДИТЕЛЬ

 

 

 

 

 

 

доцент

 

 

 

 

С. А. Чернышев

 

должность, уч. степень, звание

 

подпись, дата

инициалы, фамилия

 

 

ПОЯСНИТЕЛЬНАЯ ЗАПИСКА

 

 

 

 

К КУРСОВОЙ РАБОТЕ

 

Веб-сервис «Портал с тестами»

по дисциплине: Технологии программирования

РАБОТУ ВЫПОЛНИЛ

СТУДЕНТ ГР. №

 

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

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