/marketplace

Skypro educational team project 2

Primary LanguageJava

Skypro от Skyeng

Платформа по перепродаже вещей

Демо: marketplace.heaven.ga
Визитка команды: heaven.ga

Основная информация:

Бэк web-сервиса по перепродаже вещей на Java Spring Boot к предоставленному FrontEnd по имеющейся спецификации.

Реализован следующий функционал:

Срок разработки: 6 недель

  • Авторизация и аутентификация пользователей;
  • Распределение ролей между пользователями: пользователь и администратор;
  • CRUD для объявлений на сайте: администратор может удалять или редактировать все объявления, а пользователи — только свои;
  • Под каждым объявлением пользователи могут оставлять отзывы;
  • В заголовке сайта можно осуществлять поиск объявлений по названию;
  • Показывать и сохранять картинки объявлений.
Архитектурные особенности:
Схема базы данных
Используемые зависимости
Инструкции по развертыванию:
Сборка и сохранение в архив Docker image Бэкенд-части
docker build -t backend-marketplace-heaven .
docker save "backend-marketplace-heaven:latest" | gzip -c  > "./marketplace-heaven-backend-image-`date +%Y-%m-%d_%H-%M`.tgz";
Импорт Docker image Бэкенд-части
gunzip -c "./marketplace-heaven-backend-image-`date +%Y-%m-%d_%H-%M`.tgz" | docker load
Запуск в docker compose:

COMPOSE_HTTP_TIMEOUT=600 docker compose up -d

листинг docker-compose.yml
version: "3.3"
services:
backend-marketplace-heaven:
image: backend-marketplace-heaven:latest
deploy:
resources:
limits:
cpus: '0.50'
memory: 200M
reservations:
cpus: '0.45'
memory: 180M
      container_name: backend-marketplace-heaven
      ports:
        - "8080:8080"
        - "9090:9090"
      environment:
        - "PUID=1000"
        - "PGID=1000"
      restart: 'no'
      volumes:
        - ./appdata/db:/src/main/resources/db:Z
        - ./appdata/root:/root:Z
        - /etc/timezone:/etc/timezone:ro

При первичном запуске инициализируется H2 БД (файлы расположены в ./appdata/db) и создается

учетная запись администратора
логин: admin@heaven.ga  
пароль: admin