REST API для записи и управления настроением, построенный на Spring Boot с использованием Spring Data JPA и PostgreSQL.
- Добавление новых записей о настроении (например, "HAPPY", "SAD", "EXCITED", "ANXIOUS", "CALM")
- Просмотр всех записей о настроении
- Фильтрация записей по дате или настроению
- Удаление записи по ID
- Хранение данных в PostgreSQL
- Контейнеризация с Docker Compose
- Java 17
- Spring Boot 3.1.0
- Spring Web
- Spring Data JPA
- PostgreSQL 15
- Maven
- Docker & Docker Compose
- Архитектура RESTful
Запустить приложение с PostgreSQL:
docker compose upПриложение будет доступно на http://localhost:8082
Остановить:
docker compose downПостроить проект:
mvn clean installЗапустить приложение (требуется PostgreSQL):
mvn spring-boot:runGET http://localhost:8082/api/test→ проверить соединениеGET http://localhost:8082/api/moods→ список всех записейGET http://localhost:8082/api/moods?date=2026-03-08→ записи по датеGET http://localhost:8082/api/moods?mood=HAPPY→ записи по настроениюPOST http://localhost:8082/api/moods→ создать новую запись (JSON)DELETE http://localhost:8082/api/moods/{id}→ удалить запись
POST /api/moods
Content-Type: application/json
{
"date": "2026-03-08",
"mood": "HAPPY",
"note": "Completed a great project today!"
}{
"id": "123e4567-e89b-12d3-a456-426614174000",
"date": "2026-03-08",
"mood": "HAPPY",
"note": "Completed a great project today!"
}mood-journal-api/
├── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── moodjournal/
│ │ │ ├── controller/
│ │ │ │ ├── MoodController.java
│ │ │ │ └── TestController.java
│ │ │ ├── model/
│ │ │ │ ├── Mood.java (enum)
│ │ │ │ └── MoodEntry.java (JPA entity)
│ │ │ ├── repository/
│ │ │ │ └── MoodEntryRepository.java (Spring Data JPA)
│ │ │ ├── service/
│ │ │ │ └── MoodService.java
│ │ │ └── MoodJournalApplication.java
│ │ └── resources/
│ │ └── application.properties
│ └── test/
├── db/
│ └── password.txt (git ignored)
├── compose.yaml
├── Dockerfile
├── pom.xml
└── README.md
Проект использует PostgreSQL для персистентного хранения данных. При запуске через Docker Compose автоматически создается:
- База данных:
moodjournal - Таблица:
mood_entries(создается автоматически через Hibernate) - Пользователь:
postgres
HAPPYSADANXIOUSEXCITEDCALM
MIT License