Целью данной работы является разработка Web-приложения для чтения книг с функционалом быстрого переключения между электронным и аудио форматами.
Для достижения данной цели были поставлены следующие задачи:
– создать эргономическое удобство и прозрачность пользовательского интерфейса;
– реализовать возможность чтения электронной книги непосредственно на той же платформе, без необходимости установки дополнительного программного обеспечения;
– организовать доступ к приложению без привязки к определенной платформе либо месту (например, общественная библиотека);
– создать возможность бесшовного перехода между электронными форматами;
– реализовать архитектурную гибкость, система должна быть отзывчива к новым требованиям, а потенциальные доработки и привнесение свежих идей не должны отнимать достаточно много времени;
– использовать актуальный и современный стек технологий, который в перспективе должен быть ориентирован на развитие;
– использовать технологии, которые обладают достаточно широкой аудиторией разработчиков, чтобы своевременно находить необходимую информацию по возникшим проблемам;
– реализовать решение так чтобы оно не было связано, как на уровне платформы, так и на уровне кода внутри проекта.
На основе выполненных задач будет реализована информационная система, которая будет понятна и удобна конечным пользователям, а также достаточно технологически гибка и современна, что будет отвечать требованиям прогрессивной разработки и поддержки программного обеспечения.
ВВЕДЕНИЕ 3
1. Конструирование платформы 5
1.1. Технологический стек 5
1.2. Архитектура 10
1.2.1. Схема разделения данных MVC 10
1.2.2. Луковая архитектура 11
1.2.3. Принцип CQRS и паттерн проектирования «Медиатор» 13
1.2.4. REST API 14
1.2.5. Паттерн Flux 16
2. Структура и хранение данных 18
2.1. Описание доменной модели 18
2.2. Работа с хранилищем данных 19
3. Техническая реализация 21
3.1. Механизм синхронизации 21
3.2. Механизм авторизации 22
3.2.1. Критерии к безопасности системы управления доступом 22
3.2.2. Аутентификация на основе токенов 23
3.2.3. Описание концепции аутентификации на основе токенов с использованием идентификатора клиента 24
3.2.4. Сценарий кражи токенов 26
3.2.5. Реализация аутентификации на основе токенов 26
3.3. Пример жизненного цикла запроса в приложении 27
4. Функционал приложения 32
4.1. Пользовательское приложение 32
4.2. Административное приложение 39
ЗАКЛЮЧЕНИЕ 43
СПИСОК ЛИТЕРАТУРЫ 44
ПРИЛОЖЕНИЕ 46
1. Обзор Web-разработки [Электронный ресурс] – URL: https://sky- rzn.ru/blog/interesnoe/chto-takoe-web/ (дата обращения 11.04.2020)
2. Платформа .NET CORE [Электронный ресурс] – URL: https://docs.microsoft.com/ru-ru/dotnet/core/ (дата обращения 11.04.2020)
3. Габдулбаров А.А. Отчет по практике по получению первичных профессиональных умений и навыков. – Казань: КФУ, 2020. – 5 с.
4. C# & .NET [Электронный ресурс] – URL: https://metanit.com/sharp/tutorial/1.1.php (дата обращения 24.03.2020)
5. Microsoft SQL Server Management Studio documentation [Электронный ресурс] – URL: https://docs.microsoft.com/ru-ru/sql/ssms/sql- server-management-studio-ssms?view=sql-server-ver15 (дата обращения 09.04.2020)
6. ReactJS documentation [Электронный ресурс] – URL: https://ru.reactjs.org/ (дата обращения 09.04.2020)
7. ReduxJS documentation [Электронный ресурс] – URL: https://redux.js.org/ (дата обращения 04.03.2020)
8. Requests: HTTP for Humans [Электронный ресурс] – URL: https://requests.readthedocs.io/en/master/ (дата обращения 24.03.2020)
9. Схема разделения данных Model-View-Controller [Электронный ресурс] – URL: https://javarush.ru/quests/lectures/questcollections.level06.lecture01 (дата обращения 14.04.2020)
10. Луковая архитектура [Электронный ресурс] – URL: https://refactoring.guru/ru/design-patterns/mediator (дата обращения 14.04.2020)
11. SOLID [Электронный ресурс] – URL: https://medium.com/webbdev/solid-4ffc018077da (дата обращения 04.04.2020)
12. Dependency Injection [Электронный ресурс] – URL: https://metanit.com/sharp/aspnet5/6.1.php (дата обращения 04.04.2020)
13. Grocery CRUD documentation [Электронный ресурс] – URL: https://www.grocerycrud.com/documentation/ (дата обращения 24.03.2020)
14. Посредник [Электронный ресурс] – URL: https://refactoring.guru/ru/design-patterns/mediator (дата обращения 24.04.2020)
15. REST API [Электронный ресурс] – URL: https://lectureswww.readthedocs.io/6.www.sync/3.framework/pyramid/5.1.rest.ht ml (дата обращения 25.03.2020)
16. FLUX [Электронный ресурс] – URL: https://medium.com/@marina.kovalyova/flux-the-react-js-application-architecture- 773f515d068d (дата обращения 20.03.2020)
17. Введение в ADO NET [Электронный ресурс] – URL: https://metanit.com/sharp/adonet/1.1.php (дата обращения 14.04.2020)
18. Руководство по Entity Framework Core [Электронный ресурс] – URL: https://metanit.com/sharp/entityframeworkcore/ (дата обращения 24.04.2020)
19. Token-Based Authentication [Электронный ресурс] – URL: https://gist.github.com/zmts/802dc9c3510d79fd40f9dc38a12bccfc (дата обращения 14.04.2020)
20. 10 Principles for Good UX Design Documentation [Электронный ресурс] – URL: https://medium.com/the-versatile-designer/10-principles-for-good- ux-design-documentation-dd5b812bebc1 (дата обращения 24.04.2020)