4.99M
Категория: ИнтернетИнтернет

Разработка веб-приложения для организации курсов «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.

Основные выводы
ПРОАНАЛИЗИРОВАНЫ СУЩЕСТВУЮЩИЕ РЕШЕНИЯ ПО ОРГАНИЗАЦИИ
КУРСОВ;
БЫЛИ ОПРЕДЕЛЕНЫ ФУНКЦИОНАЛЬНЫЕ ТРЕБОВАНИЯ К РАЗРАБАТЫВАЕМОМУ
ПРИЛОЖЕНИЮ;
СПРОЕКТИРОВАНА АРХИТЕКТУРА И ПОДХОДЫ К РЕАЛИЗАЦИИ ПРИЛОЖЕНИЯ;
СПРОЕКТИРОВАНА СТРУКТУРА ПРИЛОЖЕНИЯ;
ВЫБРАНЫ ТЕХНОЛОГИИ ДЛЯ РАЗРАБОТКИ;
НАПИСАН КОД ПРИЛОЖЕНИЯ И ПРОВЕДЕНО ТЕСТИРОВАНИЕ;
СДЕЛАНЫ ВЫВОДЫ О ПРОДЕЛАННОЙ РАБОТЕ.

19.

СПАСИБО ЗА ВНИМАНИЕ!
English     Русский Правила