Skip to content

Repository files navigation

Y_LAB_HW

Product Catalog Service (Маркетплейс)

Описание

Приложение для управления каталогом товаров маркетплейса. Поддерживает:

  • Аутентификация и авторизация пользователя;
  • Добавление, получение, обновление, редактирование, удаление и просмотр товаров;
  • Добавление, получение и удаление пользователей;
  • Поиск и фильтрацию по различным параметрам (категория, бренд, цена);
  • Авторизацию пользователей с ролями (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

ДЗ №3. Инструкция по работе с веб-приложением:

  1. Перед запуском приложения необходимо открыть терминал;
  2. В корневую папку ввести docker-compose -f homework-3/docker-compose.yml up -d для запуска докер-контейнера БД;
  3. Используется внешний Tomcat 11.0.14. Все запускается вручную;
  4. В папке 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 подхватил аспекты;
  5. Возвращаемся в корневую папку терминала и запускаем mvn -T 1C -f homework-3/pom.xml clean package;
  6. Далее из web/target копируем web-1.0-SNAPSHOT.war в папку Tomcat/webapps и помещаем в корень;
  7. Идем в папку bin и запускаем startup.bat;
  8. Запускаем Postman-тесты homework-3.json, которые находятся в модуле web;
  9. Тесты повторяют меню консоли из предыдущих заданий.
    Тесты не должны срабатывать, пока пользователь не авторизован.
    Также необходимо выходить из системы через тест, чтобы зайти под другим пользователем.

ДЗ №4. Инструкция по работе с веб-приложением:

  1. Перед запуском приложения необходимо открыть терминал;
  2. В корневую папку ввести docker-compose -f docker-compose.yml up -d для запуска докер-контейнера БД;
  3. Используется внешний Tomcat 11.0.14. Все запускается вручную;
  4. В папке 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 подхватил аспекты;
  5. Возвращаемся в корневую папку терминала и запускаем mvn -T 1C -f pom.xml clean package;
  6. Далее из Y_LAB_HW/target копируем marketplace-1.0-SNAPSHOT.war в папку Tomcat/webapps и помещаем в корень;
  7. Идем в папку bin и запускаем startup.bat;
  8. Запускаем Postman-тесты homework-4.json, которые находятся в модуле проекта;
  9. Тесты повторяют меню консоли из предыдущих заданий.
    Тесты не должны срабатывать, пока пользователь не авторизован.
    Также необходимо выходить из системы через тест, чтобы зайти под другим пользователем.
  10. Для запуска 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.

ДЗ №5. Инструкция по работе с веб-приложением:

  1. Перед запуском приложения необходимо открыть терминал;
  2. В корневую папку ввести docker-compose -f docker-compose.yml up -d для запуска докер-контейнера БД;
  3. Приложение запустить через главный класс Application;
  4. Запускаем Postman-тесты homework-5.json, которые находятся в модуле проекта;
  5. Тесты повторяют меню консоли из предыдущих заданий;
    Тесты не должны срабатывать, пока пользователь не авторизован;
    Также необходимо выходить из системы через тест, чтобы зайти под другим пользователем;
  6. Для запуска Swagger в браузере необходимо перейти по ссылке: http://localhost:8080/swagger-ui/index.html
    Вставить в поле ссылку: http://localhost:8080/v3/api-docs и нажать кнопку Explore.

About

Интенсив Y_LAB

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages