Similar presentations:
Разработка веб-приложения для организации курсов «Senla Courses» на основе облачных технологий
1.
Разработка веб-приложения дляорганизации курсов «SenlaCourses»
на основе облачных технологий
ВЫПОЛНИЛ:
СТУДЕНТ 4 КУРСА СПЕЦИАЛЬНОСТИ ПОИТ
СТЕШКО АЛЕКСАНДР ЯНОВИЧ
НАУЧНЫЙ РУКОВОДИТЕЛЬ:
РОДЧЕНКО ВАДИМ ГРИГОРЬЕВИЧ, ДОЦЕНТ
КАФЕДРЫ СОВРЕМЕННЫХ ТЕХНОЛОГИЙ
ПРОГРАММИРОВАНИЯ, КАНДИДАТ
ТЕХНИЧЕСКИХ НАУК, ДОЦЕНТ
2.
Цели и задачи дипломной работыЦелью данной дипломной работы является разработка веб-приложения
для организации процесса обучения внутри компании «Senla».
анализ существующих решений сервисов для организации курсов;
постановка задачи на разработку приложения для организации курсов
«SenlaCourses»;
определение функциональных требований к разрабатываемому сервису;
осуществление проектирования приложения;
выбор технологического инструментария, используемого для реализации проекта;
написание кода приложения;
тестирование приложения;
3.
Анализ существующих решенийGeekBrains
Моя IT школа
Skillbox
IT-Academy
4.
Результаты анализа приложенияПо результатам анализа приложений были
определены следующие важные моменты:
Большая часть анализируемых сервисов
предусматривает возможность фильтрации,
пагинацию, сортировку.
Многие сервисы предоставляют возможность
просматривать лекции в записи.
Процесс обучения в данных сервисах
подразумевает наличие средств мониторинга и
контроля.
Для достижения поставленной цели были
сформулированы следующие требования к
разрабатываемому приложению:
Cервис должен предоставить возможность
отображать активные курсы пользователю;
Пользователь должен иметь возможность
просмотреть подробную информацию о курсе,
зарегистрироваться на курс;
Должна быть обеспечена возможность
просмотра контента курсов после одобрения
заявки на курсы;
Сервис должен предоставлять возможность
создавать курсы, загружать видео для занятий,
создавать задания, редактировать, назначать
менторов;
Дизайн сервиса должен быть понятным и
максимально удобным.
5.
Use caseдиаграмма
Диаграмма вариантов
использования была реализована
чтобы показать основной набор
функций системы для
пользователей исходя из их роли.
6.
Диаграммапоследовательности
Диаграмма последовательности
приложения для организации курсов,
которая моделирует последовательное
взаимодействие пользователей с
системой, а также демонстрирует
работу объектов друг с другом, что
наглядно показано на рисунке.
7.
Схема базы данных системы8.
Проектированиеобъектного
облачного
хранилища
При рассмотрении вариантов хранения
файлов из облачных технологий было
выбрано использовать облачное объектное
хранилище, ведь данный подход позволит
воплотить все задумки и является лучшим
решением. Преимущества данного
решения, которые будут полезны в нашем
приложении, следующие:
Масштабируемость;
Надежность и отказоустойчивость;
Гибкость доступа;
Шифрование и безопасность;
Производительность;
Удобный API;
9.
Проектирование общей архитектурыприложения
Основной сервис будет
реализован с
использованием
фреймворка Spring MVC,
который обеспечивает
архитектуру паттерна
Model – View – Controller
(Модель – Отображение –
Контроллер).
Главная задача стримингового
сервиса– потоковая передача видео
контента из облачного хранилища на
клиентскую часть. Разработка
отдельного сервиса позволит
уменьшить нагрузку на основной
сервис, тем самым обеспечить
большую доступность и
отказоустойчивость приложения в
целом.
Было принято решение реализовать
данный сервис с помощью стека
реактивных технологий, что позволит
избавиться от блокирующих вызовов и
отказаться от синхронной модели и
эффективно обрабатывать
асинхронные операции вводавывода.
10.
Стек технологийЯзык программирования Java
Spring framework и его компоненты
ORM-фреймворк Hibernate
Minio - объектное хранилище, совместимое с Amazon S3
СУБД PostgreSQL
SMTP сервер почты Yandex
Инструмент версионирования базы данных Liquibase
Maven – сборщик проектов.
IntelliJ IDEA – среда разработки
Webflux — реактивный фреймворк семейства спринг
Docker
ReactJS, HTML, CSS
11.
Возможности проектаАвторизация и аутентификация
Регистрация с подтверждением
Просмотр информации о курсах, занятиях, заданиях
Регистрация на курс
Манипуляция над данными (создание, редактирование, удаление)
Просмотр данных о процессе обучения.
Просмотр и загрузка видео-контента и файлового контента
Проверка и сдача выполненных работ
Отправка уведомлений на почтовый ящик
12.
Интерфейс приложения13.
Интерфейс приложения14.
Интерфейс приложения15.
Интерфейс приложения16.
Интерфейс приложения17.
Интерфейс приложения18.
Основные выводыПРОАНАЛИЗИРОВАНЫ СУЩЕСТВУЮЩИЕ РЕШЕНИЯ ПО ОРГАНИЗАЦИИ
КУРСОВ;
БЫЛИ ОПРЕДЕЛЕНЫ ФУНКЦИОНАЛЬНЫЕ ТРЕБОВАНИЯ К РАЗРАБАТЫВАЕМОМУ
ПРИЛОЖЕНИЮ;
СПРОЕКТИРОВАНА АРХИТЕКТУРА И ПОДХОДЫ К РЕАЛИЗАЦИИ ПРИЛОЖЕНИЯ;
СПРОЕКТИРОВАНА СТРУКТУРА ПРИЛОЖЕНИЯ;
ВЫБРАНЫ ТЕХНОЛОГИИ ДЛЯ РАЗРАБОТКИ;
НАПИСАН КОД ПРИЛОЖЕНИЯ И ПРОВЕДЕНО ТЕСТИРОВАНИЕ;
СДЕЛАНЫ ВЫВОДЫ О ПРОДЕЛАННОЙ РАБОТЕ.