Сервис является RESTful API позволяющий автоматизировать учет продукции для небольшой фермы. Согласно ТЗ реализованы все основные требования и все дополнительные задания.
-
регистрация нового пользователя;
-
Вход пользователя в систему;
-
Блокировка пользователя;
-
регистрация нового продукта;
-
Добавление собранных продуктов в общую статистику;
-
Получение статистики по произведенным товарам (за конкретный день, неделю или месяц) по конкретному человеку;
-
Получение статистики по произведенным товарам (за конкретный день, неделю или месяц) по фирме в целом;
-
Получение отчета на почту по собранным товарам;
-
Выставление оценки работникам;
-
Задать норму сбора урожая;
-
Java 17
-
Spring Boot
-
Spring Web
-
Spring Data Jpa
-
Spring Security
-
Spring Validation
-
Spring Mail
-
Postgresgl
-
Liquibase
-
Swagger
-
Mapstruct
-
Docker
-
Maven
Для корректной работы приложения необходимо настроить Spring Mail. Для этого нужно передать environment параметры:
-
MAIL_HOST
-
MAIL_PORT
-
MAIL_USERNAME
-
MAIL_PASSWORD
-
STARTTLS_ENABLE
Также нужно передать параметры:
-
ADMIN_EMAIL
- адрес, на который будут приходить отчеты. -
SECRET_KEY
- Ключ для подписи токенов.
Склонировать репозиторий, выполнив команду: git clone https://github.com/lofominhili/FarmFlow
Добавить environment переменные в сервисе app файла compose.yaml
.
Написать в терминале команду mvn clean package
Написать в терминале команду docker-compose up
Все параметры на вход Rest-запросов и ответы этих запросов можно посмотреть в swagger
POST /auth/register-user
POST /auth/sign-in
POST /admin/block/{email}
POST /admin/rate
POST /admin/set-harvest-rate
POST /product/register-product
POST /product/add-collected-product
Получение статистики по произведенным товарам (за конкретный день, неделю или месяц) по конкретному человеку
GET /admin/get-statistics-by-user
Получение статистики по произведенным товарам (за конкретный день, неделю или месяц) по фирме в целом;
GET /admin/get-statistics-by-farm
GET /swagger-ui/index.html