Task Manager — это полнофункциональный REST API для системы управления задачами, разработанный на Spring Boot.
- User — пользователь системы
- Task — задача с возможностью назначения исполнителя и статуса
- TaskStatus — статус задачи
- Label — метки для категории задач
- CRUD операции над сущностями
- Привязка исполнителей, статусов и меток к задачам
- Фильтрация задач по названию, исполнителю, статусу и меткам
- Аутентификация пользователей и защита маршрутов
- Java 21
- Spring Boot — (Web, Data JPA, Validation, Security)
- MapStruct - для маппинга данных из одного объекта в другой
- Datafake - библиотека для наполнения БД (продакшен и тестирование)
- H2 Database — Локальная БД
- PostgreSQL — Серверная БД
- JUnit5, MockWebServer, Instansio, JsonUnit— тестирование
- Gradle, GitHub Actions, SonarQube — CI/CD и покрытие
- Sentry — отслеживание ошибок
- Клонировать репозиторий:
git [email protected]:sergeycherkasovv/java-project-99.git
cd java-project-99- Запустить локально:
make start-prod- Открыть в браузере
http://localhost:8080
username: [email protected]
password: qwerty
- OpenAPI(Swagger) документация
http://localhost:8080/swagger-ui.html
- Посмотреть доступные команды:
make helpjava-project-99
├── .github/ # CI (GitHub Actions)
├── src/
│ ├── main/
│ │ ├── java/hexlet/code/
│ │ │ ├── component/ # Наполнение БД и ключи
│ │ │ ├── config/ # Конфигурации Spring Security
│ │ │ ├── controller/ # REST контроллеры
│ │ │ ├── exception/ # Кастомные исключения
│ │ │ ├── handler/ # Глобальный обработчик исключений
│ │ │ ├── dto/ # Классы DTO для передачи данных
│ │ │ ├── mapper/ # Маппинг между DTO и сущностями
│ │ │ ├── model/ # Модели: Task, Label, TaskStatus, User, AuthRequest
│ │ │ ├── repository/ # Репозитории Spring Data
│ │ │ ├── service/ # Сервисы (бизнес-логика)
│ │ │ ├── specification/ # Фильтрация задач
│ │ │ ├── util/ # Security
│ │ │ └── AppApplication.java # Точка входа Spring Boot
│ │ └── resources/
│ │ └── application.yml # Конфиги Spring
│ └── test/
│ └── java/hexlet/code/
│ ├── controller/ # Интеграционные тесты
│ └── util/ # Наполнение БД для тестов
├── build.gradle.kts # Gradle сборка (Kotlin DSL)
├── Makefile # Команды для сборки, запуска и тестов
└── README.md
Разработано в рамках обучения на Hexlet. Автор: sergeycherkasovv
Почта: [email protected]