Приложение для управления каталогом товаров маркетплейса. Поддерживает:
- Аутентификация и авторизация пользователя;
- Добавление, получение, обновление, редактирование, удаление и просмотр товаров;
- Добавление, получение и удаление пользователей;
- Поиск и фильтрацию по различным параметрам (категория, бренд, цена);
- Авторизацию пользователей с ролями (ADMIN, USER);
- Аудит действий пользователей;
- Кэширование результатов запросов для ускорения повторных операций;
- Работа с БД PostgreSQL;
- Тесты с использованием Testcontainers, Mock;
- Контроллеры для обмена информацией между сервером и клиентом;
- Применены аспекты;
- Используется внешний и внутренний Tomcat;
- Swagger + Swagger UI.
audit-starter:
annotation— аннотация для аудита;aspect— аудит действий пользователя;config— автоконфигурация для аудита методов;service— Сервис аудита действий пользователя;
logging-starter:
aspect— логирование с замером времени;config— автоконфигурация для логирования;
marketplace:
aspect— подсчет запросов;config— инфраструктура;controller— контроллеры;dto— объекты для передачи данных;error— глобальный обработчик ошибок;exception— собственные исключения;mapper— MapStruct;metrics— метрика;model— сущности и роли;out— репозитории;service— бизнес-логика;util— утилиты (кэш, менеджер закрытия приложения);- Application — главный класс Spring Boot приложения маркетплейса.
- Java 21
- Spring
- Spring Boot
- Maven
- Lombok (для упрощения кода сущностей)
- Интеграционные тесты
- Юнит-тесты
- БД PostgreSQL
- Миграции Liquibase
- Перед запуском приложения необходимо открыть терминал;
- В корневую папку ввести docker-compose -f homework-3/docker-compose.yml up -d для запуска докер-контейнера БД;
- Используется внешний Tomcat 11.0.14. Все запускается вручную;
- В папке bin нужно создать файл setenv.bat со следующим содержимым
@echo off
set "CATALINA_OPTS=-javaagent:C:\Users\Ваше имя профиля.m2\repository\org\aspectj\aspectjweaver\1.9.25\aspectjweaver-1.9.25.jar"
Это необходимо, чтобы при запуске Tomcat подхватил аспекты; - Возвращаемся в корневую папку терминала и запускаем mvn -T 1C -f homework-3/pom.xml clean package;
- Далее из web/target копируем web-1.0-SNAPSHOT.war в папку Tomcat/webapps и помещаем в корень;
- Идем в папку bin и запускаем startup.bat;
- Запускаем Postman-тесты homework-3.json, которые находятся в модуле web;
- Тесты повторяют меню консоли из предыдущих заданий.
Тесты не должны срабатывать, пока пользователь не авторизован.
Также необходимо выходить из системы через тест, чтобы зайти под другим пользователем.
- Перед запуском приложения необходимо открыть терминал;
- В корневую папку ввести docker-compose -f docker-compose.yml up -d для запуска докер-контейнера БД;
- Используется внешний Tomcat 11.0.14. Все запускается вручную;
- В папке bin нужно создать файл setenv.bat со следующим содержимым
@echo off
set "CATALINA_OPTS=-javaagent:C:\Users\Ваше имя профиля.m2\repository\org\aspectj\aspectjweaver\1.9.25\aspectjweaver-1.9.25.jar"
Это необходимо, чтобы при запуске Tomcat подхватил аспекты; - Возвращаемся в корневую папку терминала и запускаем mvn -T 1C -f pom.xml clean package;
- Далее из Y_LAB_HW/target копируем marketplace-1.0-SNAPSHOT.war в папку Tomcat/webapps и помещаем в корень;
- Идем в папку bin и запускаем startup.bat;
- Запускаем Postman-тесты homework-4.json, которые находятся в модуле проекта;
- Тесты повторяют меню консоли из предыдущих заданий.
Тесты не должны срабатывать, пока пользователь не авторизован.
Также необходимо выходить из системы через тест, чтобы зайти под другим пользователем. - Для запуска Swagger в браузере необходимо перейти по ссылке: http://localhost:8080/marketplace-1.0-SNAPSHOT/webjars/swagger-ui/5.17.14/index.html
Вставить в поле ссылку: http://localhost:8080/marketplace-1.0-SNAPSHOT/v3/api-docs и нажать кнопку Explore.
- Перед запуском приложения необходимо открыть терминал;
- В корневую папку ввести docker-compose -f docker-compose.yml up -d для запуска докер-контейнера БД;
- Приложение запустить через главный класс Application;
- Запускаем Postman-тесты homework-5.json, которые находятся в модуле проекта;
- Тесты повторяют меню консоли из предыдущих заданий;
Тесты не должны срабатывать, пока пользователь не авторизован;
Также необходимо выходить из системы через тест, чтобы зайти под другим пользователем; - Для запуска Swagger в браузере необходимо перейти по ссылке: http://localhost:8080/swagger-ui/index.html
Вставить в поле ссылку: http://localhost:8080/v3/api-docs и нажать кнопку Explore.