Учебный проект на Spring Boot — REST API для отслеживания личных целей и заметок об обучении.
Приложение для отслеживания целей и заметок об обучении. Позволяет ставить цели, разбивать их на подцели и вести записи о прогрессе.
- Java 21
- Spring Boot 4.1.1
- Spring Data JPA (Hibernate)
- PostgreSQL 18
- Maven
- Git / GitHub
- JUnit 5 + Mockito (тестирование)
- Swagger / OpenAPI (документация API)
- REST API с полным CRUD для целей (Goal)
- REST API для записей к целям (Entry)
- Связь One-to-Many между Goal и Entry
- JPA-сущности с полями: id, title, description, status
- Подключение к базе данных PostgreSQL 18
- Автоматическое создание таблиц через Hibernate
- Слоистая архитектура: controller, service, repository, model
- Unit-тесты для сервисного слоя (JUnit 5 + Mockito)
- Документация API через Swagger UI
- Покрытие тестами: GoalService (4 теста)
Controller → Service → Repository → PostgreSQL
- Controller — принимает HTTP-запросы
- Service — бизнес-логика
- Repository — работа с БД через JPA
- Model — JPA-сущности
| Метод | URL | Описание |
|---|---|---|
| GET | /api/goals |
Получить все цели |
| GET | /api/goals/{id} |
Получить цель по ID |
| POST | /api/goals |
Создать цель |
| PUT | /api/goals/{id} |
Обновить цель |
| DELETE | /api/goals/{id} |
Удалить цель |
| Метод | URL | Описание |
|---|---|---|
| GET | /api/goals/{goalId}/entries |
Получить записи цели |
| POST | /api/goals/{goalId}/entries |
Создать запись |
| DELETE | /api/goals/{goalId}/entries/{id} |
Удалить запись |
-
Склонировать репозиторий:
git clone https://github.com/ENS21/learningjournal.git
-
Открыть проект в IntelliJ IDEA
-
Установить PostgreSQL 18
-
Создать базу данных learningjournal через pgAdmin
-
Настроить подключение в src/main/resources/application.properties
-
Запустить LearningJournalApplication.java
-
Открыть в браузере: http://localhost:8080/api/goals — список целей
Автоматическая документация API доступна по ссылке:
http://localhost:8080/swagger-ui/index.html
- Добавить сущность Goal
- Добавить сущность Entry
- Подключить базу данных (PostgreSQL)
- REST API для целей и записей
- Дерево подцелей
- Автотесты Selenium
Екатерина Соколова — начинающий Java-разработчик



