https://github.com/cptntotoro/full-stack-store-showcase
Онлайн-магазин (Java 21, Spring Boot, Hibernate, PostgreSQL, Lombok, Mapstruct, Maven, Docker, Thymeleaf, HTML, CSS, JavaScript)
https://github.com/cptntotoro/full-stack-store-showcase
docker-compose github-actions hibernate java-21 javascript lombok mapstruct maven postgresql spring-boot thymeleaf
Last synced: 2 months ago
JSON representation
Онлайн-магазин (Java 21, Spring Boot, Hibernate, PostgreSQL, Lombok, Mapstruct, Maven, Docker, Thymeleaf, HTML, CSS, JavaScript)
- Host: GitHub
- URL: https://github.com/cptntotoro/full-stack-store-showcase
- Owner: cptntotoro
- Created: 2025-06-06T16:17:24.000Z (12 months ago)
- Default Branch: main
- Last Pushed: 2025-06-11T07:41:47.000Z (12 months ago)
- Last Synced: 2025-06-11T08:44:50.168Z (12 months ago)
- Topics: docker-compose, github-actions, hibernate, java-21, javascript, lombok, mapstruct, maven, postgresql, spring-boot, thymeleaf
- Language: Java
- Homepage:
- Size: 19.8 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
[](https://github.com/cptntotoro/full-stack-store-showcase/actions/workflows/maven.yml) [](https://coveralls.io/github/cptntotoro/full-stack-store-showcase)
# Приложение "Онлайн-магазин"
Java 21, Spring Boot, Hibernate, PostgreSQL, Lombok, Mapstruct, Maven, Docker, Thymeleaf, HTML, CSS, JavaScript
## О проекте
Веб-приложение представляет собой витрину товаров.
Пользователь может положить товар в корзину, оформить, оплатить и отменить заказ.
Также пользователь может наполнить витрину товаров новыми товарами.
Предоставление актуальных данных для разных пользователей реализовано с помощью управления идентификатором пользователя через куки в OncePerRequestFilter в Spring Web.
Для отображения актуальной стоимости корзины и реализации UI элементов согласно её состоянию применен @ControllerAdvice.
Для уменьшения нагрузки на приложение состояние корзины кешируется с помощью Spring Cache.
## Демонстрация

## 🚀 Как запускать
### В Docker
#### Только тесты
```
docker-compose --profile test up --build --abort-on-container-exit
```
Если ответ 0, все тесты прошли успешно
#### Только продакшен
```
docker-compose --profile prod up -d
```
Приложение будет доступно по адресу: http://localhost:8080/products.
### Остановка контейнеров
Чтобы остановить все запущенные контейнеры, выполните:
```
docker-compose down
```
Если вы хотите также удалить тома (volumes), используйте:
```
docker-compose down -v
```
### Локально
1. Разверните БД согласно application.properties и application-test.properties в отдельном приложении или среде разработки
2. Соберите проект:
```
mvn clean package
```
3. Запустите приложение:
```
java -jar target/yp-online-store.jar
```
Приложение будет доступно по адресу: http://localhost:8080/products.