Skip to content

Latest commit

 

History

History
137 lines (105 loc) · 3.79 KB

File metadata and controls

137 lines (105 loc) · 3.79 KB

mood-journal-api

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

Быстрый старт с Docker

Запустить приложение с PostgreSQL:

docker compose up

Приложение будет доступно на http://localhost:8082

Остановить:

docker compose down

Локальная разработка

Построить проект:

mvn clean install

Запустить приложение (требуется PostgreSQL):

mvn spring-boot:run

API Endpoints

  • GET 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

Доступные значения Mood

  • HAPPY
  • SAD
  • ANXIOUS
  • EXCITED
  • CALM

Лицензия

MIT License