|
13 | 13 | [](https://sonarcloud.io/summary/new_code?id=sergeycherkasovv_java-project-99) |
14 | 14 | [](https://sonarcloud.io/summary/new_code?id=sergeycherkasovv_java-project-99) |
15 | 15 | [](https://sonarcloud.io/summary/new_code?id=sergeycherkasovv_java-project-99) |
16 | | -[](https://sonarcloud.io/summary/new_code?id=sergeycherkasovv_java-project-99) |
| 16 | +[](https://sonarcloud.io/summary/new_code?id=sergeycherkasovv_java-project-99) |
| 17 | + |
| 18 | +**[Task Manager](https://taskmanager-wc0g.onrender.com)** — это полнофункциональный REST API для системы управления задачами, разработанный на Spring Boot. |
| 19 | + |
| 20 | +## Проект включает в себя следующие основные сущности: |
| 21 | +- **User** — пользователь системы |
| 22 | +- **Task** — задача с возможностью назначения исполнителя и статуса |
| 23 | +- **TaskStatus** — статус задачи |
| 24 | +- **Label** — метки для категории задач |
| 25 | + |
| 26 | +## Возможности: |
| 27 | +- CRUD операции над сущностями |
| 28 | +- Привязка исполнителей, статусов и меток к задачам |
| 29 | +- Фильтрация задач по названию, исполнителю, статусу и меткам |
| 30 | +- Аутентификация пользователей и защита маршрутов |
| 31 | + |
| 32 | +## Технологии |
| 33 | +- Java 21 |
| 34 | +- [Spring Boot](https://spring.io/projects/spring-boot) — (Web, Data JPA, Validation, Security) |
| 35 | +- [MapStruct](https://mapstruct.org/) - для маппинга данных из одного объекта в другой |
| 36 | +- [Datafake](https://www.datafaker.net/) - библиотека для наполнения БД (продакшен и тестирование) |
| 37 | +- [H2 Database](https://www.h2database.com) — Локальная БД |
| 38 | +- [PostgreSQL](https://www.postgresql.org/) — Серверная БД |
| 39 | +- [JUnit5](https://junit.org/), [MockWebServer](https://github.com/square/okhttp/tree/master/mockwebserver), |
| 40 | + [Instansio](https://www.instancio.org/articles/using-instancio-with-junit-jupiter/), |
| 41 | + [JsonUnit](https://github.com/lukas-krecan/JsonUnit)— тестирование |
| 42 | +- [Gradle](https://gradle.org/), [GitHub Actions](https://github.com/features/actions), |
| 43 | + [SonarQube](https://www.sonarsource.com/) — CI/CD и покрытие |
| 44 | +- [Sentry](https://sentry.io/welcome/?utm_source=google&utm_medium=cpc&utm_id=%7B20407805488%7D&utm_campaign=Google_Search_Brand_SentryKW_NORM_Alpha&utm_content=g&utm_term=sentry&gad_source=1&gad_campaignid=20407805488&gbraid=0AAAAADua1WLRT4nVMj6tr8ZfkW6oKh8uJ&gclid=CjwKCAjwvO7CBhAqEiwA9q2YJUx-AwPaaXQajEqNtuZwduX6WBI2vbn-NMg7yp3jh0UCF68PFKoZURoCihcQAvD_BwE) — отслеживание ошибок |
| 45 | + |
| 46 | +## Установка и запуск локально |
| 47 | +1. Клонировать репозиторий: |
| 48 | +```bash |
| 49 | +git [email protected]:sergeycherkasovv/java-project-99.git |
| 50 | +cd java-project-99 |
| 51 | +```` |
| 52 | +2. Запустить приложения: |
| 53 | +```bash |
| 54 | +make start-prod |
| 55 | +``` |
| 56 | +3. Открытие приложение: |
| 57 | +```bash |
| 58 | +http://lovalhost:8080 |
| 59 | +``` |
| 60 | +4. OpenAPI(Swagger) документация: |
| 61 | +```bash |
| 62 | +http://localhost:8080/swagger-ui.html |
| 63 | +``` |
| 64 | +5. Посмотреть доступные команды: |
| 65 | +```bash |
| 66 | +make help |
| 67 | +``` |
| 68 | + |
| 69 | +## 🗂 Структура проекта |
| 70 | + java-project-99 |
| 71 | + ├── .github/ # CI (GitHub Actions) |
| 72 | + ├── src/ |
| 73 | + │ ├── main/ |
| 74 | + │ │ ├── java/hexlet/code/ |
| 75 | + │ │ │ ├── component/ # Наполнение БД и ключи |
| 76 | + │ │ │ ├── config/ # Конфигурации Spring Security |
| 77 | + │ │ │ ├── controller/ # REST контроллеры |
| 78 | + │ │ │ ├── exception/ # Кастомные исключения |
| 79 | + │ │ │ ├── handler/ # Глобальный обработчик исключений |
| 80 | + │ │ │ ├── dto/ # Классы DTO для передачи данных |
| 81 | + │ │ │ ├── mapper/ # Маппинг между DTO и сущностями |
| 82 | + │ │ │ ├── model/ # Модели: Task, Label, TaskStatus, User, AuthRequest |
| 83 | + │ │ │ ├── repository/ # Репозитории Spring Data |
| 84 | + │ │ │ ├── service/ # Сервисы (бизнес-логика) |
| 85 | + │ │ │ ├── specification/ # Фильтрация задач |
| 86 | + │ │ │ ├── util/ # Security |
| 87 | + │ │ │ └── AppApplication.java # Точка входа Spring Boot |
| 88 | + │ │ └── resources/ |
| 89 | + │ │ └── application.yml # Конфиги Spring |
| 90 | + │ └── test/ |
| 91 | + │ └── java/hexlet/code/ # Тесты (unit, integration) |
| 92 | + ├── build.gradle.kts # Gradle сборка (Kotlin DSL) |
| 93 | + ├── Makefile # Команды для сборки, запуска и тестов |
| 94 | + └── README.md |
| 95 | + |
| 96 | +## 📮 Автор |
| 97 | +Разработано в рамках обучения на Hexlet. |
| 98 | +Автор: [sergeycherkasovv](https://github.com/sergeycherkasovv) |
| 99 | + |
| 100 | + |
| 101 | + |
| 102 | +Telegram: https://t.me/iamcherkasov |
0 commit comments