Сервис для размещения заданий с оплатой виртуальными баллами.
Java 17, Spring Boot 4.0.3
Maven
PostgreSQL (в Docker)
Flyway (миграции)
Docker, Docker Compose
git clone https://github.com/BrovkoRoman/SsuBench.git
cd SsuBench
docker-compose up -d
curl localhost:8080/v3/api-docs.yaml
Миграции расположены в src/main/resources/db/migration. Имена файлов: V<версия>__<описание>.sql. При запуске приложения Flyway применяет новые миграции автоматически.
Полная спецификация OpenAPI:
localhost:8080/v3/api-docs.yaml
Интерактивная документация (Swagger UI):
http://localhost:8080/swagger-ui.html
curl -X POST http://localhost:8080/user/login -H "Content-Type: application/json" -d "{\"login\": \"admin\", \"password\": \"admin\"}"
В ответе приходит JWT-токен. Далее используйте его в заголовке
Authorization: Bearer <token>
curl -X POST http://localhost:8080/user/register -H "Content-Type: application/json" -d "{\"login\": \"customer1\", \"password\": \"12345\", \"role\": \"CUSTOMER\"}"
Зарегистрироваться можно только с ролями CUSTOMER и EXECUTOR, для роли ADMIN используйте аутентификацию с логином "admin" и паролем "admin" (этот пользователь определен в миграциях).
Вместо <token> нужно подставить значение jwt, полученное при регистрации или входе в систему. Чтобы создать задание, нужно войти с ролью CUSTOMER.
curl -X POST http://localhost:8080/task -H "Content-Type: application/json" -H "Authorization: Bearer <token>" -d "{\"text\": \"Task description\", \"rewardMoney\": \"100\"}"
mvn test