Создайте веб Java-приложение, которое позволяет работать с карточками товара в интернет-магазине Создайте БД с информацией о товарах. Заполните начальными тестовыми данными. В базе данных должно содержаться следующая информация о товарах:
- Название товара
- Бренд
- Модель
- Количество доступных единиц
- Вес
- Рейтинг
- Категория товара
- Описание
- Цвет
- Цена
- Название фото
- Фото
- Особенности (список) В приложении должно быть:
- CRUD для Продуктов. URl:
/api/products
(см. Пример Json запроса)- При создании либо изменении в БД должно
изменяться поле
Описание
, оно должно содержать краткое описание, касающееся товара со всех основных полей БД, напримерПрекрасные наушники Acme, цвет: черный. Активное шумоподавление, Складной дизайн, Встроенный микрофон.»
- При создании либо изменении в БД должно
изменяться поле
- Функционал по обработке 1 фото (выберите фото с фоном на ваш выбор, исходник сохраните, в resources). При загрузке фото должен происходить запрос к API(https://www.remove.bg/api) с исходной фотографией для удаления фона с изображения. Измененное фото cохранить (место на выбор исполнителя задания), добавить обработанное фото в соответствующее поле в карточку товара.
{
"product": {
"name": "Прекрасные наушники",
"description": "Стерео наушники с шумоподавлением",
"price": 49.99,
"color": "черный",
"brand": "Acme",
"category": "Электроника",
"availability": true,
"rating": 4.5,
"image_url": "https://example.com/images/headphones.jpg",
"weight": "200 г",
"warranty": "2 года",
"special_features": [
"Активное шумоподавление",
"Складной дизайн",
"Встроенный микрофон"
]
}
}
Использованные исходные фото приложите в проект в /resources
- Gradle
- Spring Boot 3.2.5
- Java 17+
- Packaging Jar
- БД H2 или SQLite
- Добавить логи
Доп. Задания (необязательно):
- Запрос для получения карточки товара с наивысшим рейтингом.
- Запрос для получения карточки самого дорогого/дешевого товара.
- Добавить возможность загружать и хранить несколько фотографий для одного товара.
---
title: Sitemap
---
flowchart TB
root{"/(root)"} ---> pct(/api/products)
root ---> rbg(/api/removeBg)
pct --> GETpct{{GET}}
pct --> POSTpct{{POST}}
pct ---> pctID("/{id}")
pctID --> GETpctID{{GET}}
pctID --> PUTpctID{{PUT}}
pctID --> DELETEpctID{{DELETE}}
pct --> pctBest(/best) --> GETBestPct{{GET}}
pct --> pctExp(/cheap) --> GETExpPct{{GET}}
pct --> pctChe(/expensive) --> GETChePct{{GET}}
rbg --> POSTrbg{{POST}}
git clone https://github.com/nixiedroid/products.git
cd products/
chmod +x ./gradlew && ./gradlew && ./gradlew bootRun --args='--remove.bg.token=TOKEN --server.address=0.0.0.0 --server.port=8080'