Репозиторий по курсу "Рефакторинг баз данных и приложений", Университет ИТМО
Сущенко Роман P34131
Бусыгин Дмитрий P34131
Описание проекта
Проект представляет собой готовое программное решение из двух компонентов для поиска и приобретения техники.
Администраторы могут добавлять новые позиции товара, выставляя им характеристики и цену, пользователи могут искать эти товары и покупать.
Оплата покупки будет осуществляться через запросы в отдельный сервис, имитирующий работу систему банковского биллинга
Сценарии использования
- Регистрация и аутентификация пользователей
- Создание, удаление, редактирование карточки товара
- Поиск товара по категории или названию
- Покупка товара
Компоненты системы
- Backend-приложение на Kotlin и Spring Framework, отвечающее за работу с карточкой товара (gadget_service)
- Оперирует базой данных PostgreSQL
- Backend-приложение на Kotlin и Spring Framework, отвечающее за процесс оплаты товара при покупке (billing_service)
- Оперирует базой данных PostgreSQL
На данном этапе фокусируемся на сборе и анализе требований, проектировании архитектуры системы и подготовке плана разработки.
План:
- Изучить сценарии использования, чтобы понять все необходимые функции и их взаимосвязи.
- Определить, как компоненты системы будут взаимодействовать друг с другом. Спроектировать REST API, описывающее основные взаимодействия.
- Подготовить окружение для разработки, выбрать необходимые библиотеки для Spring. Настроить PostgreSQL и средство осуществления миграций БД для использования в системе.
Создать минимальную рабочую версию системы, которая будет включать основные функции для проверки концепции. Сбор первоначальной обратной связи.
План:
- Реализовать регистрацию и аутентификацию пользователей.
- Создать модуль для работы с карточками товаров.
- Создать модуль для оплаты покупок.
- Протестировать и отладить работу MVP. Провести тестирование всех функций и устраните обнаруженные баги.
На этом этапе улучшаем платформу на основании обратной связи пользователей и собранных данных.
План:
- Расширить функциональность. Добавить следующие фичи:
- История покупок
- Список избранного
- Повысить уровень безопасности посредством внедрения двухфакторной аутентификации.
- Оптимизировать производительность системы. Внедрить кеширование.
- Контроль версий и совместная разработка будет вестись через текущий git-репозиторий
- Миграции БД будем осуществлять с использованием Flyway
- Реализация UI в рамках выполнения проекта не предусмотрена, демо-записи и финальная демонстрация будет проводиться через платформу тестирования API (Bruno/Postman)