АННОТАЦИЯ 3
Перечень условных обозначений 5
Введение 6
II Анализ и проектирование 7
1.1 Функциональные требования клиентских приложений 8
1.2 Нефункциональные требований клиентских приложений 11
1.3 Модель предметной области 12
1.4 Сценарии архитектурно-значимых вариантов использования 20
1.5 Требования к серверной части 25
2 Обзор используемых инструментов 28
2.1 Kubernetes 29
2.2 FastAPI, uvicorn 30
2.3 Pydantic 33
2.4 Punq 34
2.5 PyTest 35
2.6 PostgreSQL, asyncpg, Alembic 36
2.7 GitLab CI/CD 37
2.8 Redis и Arq 39
3 Разработка серверной части 41
3.1 Используемые принципы проектирования 41
3.2 Общая архитектура серверной части 45
3.3 Интеграции 46
3.4 Реализация архитектурно-значимых вариантов использования 55
3.5 Результаты реализации в приложении 67
Заключение 68
Список использованных источников и литературы 69
В современном мире все чаще возникает потребность в мобильных приложениях различного вида. Они увеличивают охват аудитории с каждым годом во всех сферах, будь то игры, интернет-магазины, социальные сети и многое другое. В связи с этим в области электронной коммерции также возрастает потребность в мобильных приложениях, которые вытесняют прочно занявшие эту нишу веб-приложения. В настоящее время некоторые компании базируют свою розничную торговлю исключительно на модели взаимодействия с клиентами через приложения на телефоне. На момент написания данной работы, мобильные приложения являются одним из самых массовых видов ПО. И, по всей видимости, данная тенденция не будет демонстрировать спад еще достаточно долгое время.
Небольшое отступление: для соблюдения договоренностей с компанией, для которой создавалось рассмотренное в данной работе ПО, вся информация о заказчике не будет упоминаться в работе, а заказчик будет именоваться как «заказчик».
Заказчиком рассмотренного в работе ПО является компания, проектирующая и производящая бытовую технику. Заказчик занимается реализацией своей продукции через многочисленные сети розничных продавцов бытовой техники и электроники на территории РФ. Несмотря на то, что бренд достаточно популярен, такое положение вещей не является самым лучшим для компании, которая имеет полный цикл производства продукции под своим контролем, поэтому для уменьшения издержек заказчик планирует продвигать свою продукцию самостоятельно. Первым этапом плана по избавлению от таких издержек является разработка мобильного приложения, способствующего привлечению аудитории с последующим наращиванием функционала.
Запрос на привлечение и удержание аудитории в первой версии планировалось реализовать несколькими способами:
1. Проведение розыгрышей призов.
2. Предоставление возможностей просмотреть всю информацию о своих товарах в одном месте.
3. Избавление пользователя от необходимости хранить товарные чеки для предоставления гарантии за счет возможности использовать электронную версию чека в приложении.
Забегая вперед, отметим, что спецификой данного проекта станут сторонние интеграции, которых будет достаточно много для такой небольшой
В рамках данной работы была рассмотрена разработка современного серверного приложения для обеспечения работы типичного современного мобильного приложения.
Поставленные в первом этапе разработки задачи были решены, приложение развернуто.
На момент написания работы заканчивается разработка новой версии мобильного приложения (и, соответственно, его серверной части), в которой был добавлен каталог товаров, отзывы и обзоры на товары, возможность добавления товаров в избранное.