Skip to content

API REST de gerenciamento de emoções com Spring Boot e MySQL.

License

Notifications You must be signed in to change notification settings

splinterdev/emotion-tracker-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Emotion Tracker - API de gerenciamento de emoções 🧠

Java 21.0.6 Spring Boot 4.0.2 MySQL 8.0 OpenAPI 2.8.14

API REST de gerenciamento de emoções que permite realizar registros diários de humor, sentimentos e situações específicas do dia a dia, além de permitir a visualização de histórico dos registros e a visualização de tendência de humor por meio de gráfico, a fim de trazer clareza emocional para o usuário final, diminuindo problemas como o viés da negatividade e padrões disfuncionais de comportamento.

Principais tecnologias utilizadas

  • Java 21
  • Spring Boot 4.0.2 para construção da API
  • Swagger/OpenAPI 3.0.1 para documentação
  • imagem MySQL 8.0 + contêiner Docker para persistência de dados
  • Lombok para código boilerplate
  • Mapstruct para mapeamento entre DTOs e entidades
  • Junit, AssertJ e Postman para testes unitários e integrados

Estrutura

src/main/java/com.github.IsaacMartins.emotionTrackerApi/
├── configuration/
├── controller/
│   └── common/
│   └── dto/
│   |   └── recordDTOs/
│   |   └── moodStatsDTOs/
│   └── mapper/
|
├── exception/
├── model/
│   └── entities/
|
├── repository/
├── security/
├── service/
├── validator/
└── Program.java

Endpoints

Método Endpoint Descrição Status Sucesso Status Erro
POST /records Salva um novo registro 201 Created 400 Bad Request, 422 Unprocessable Content
GET /records Lista todos os registros cadastrados 200 OK -
GET /records/{id} Busca um registro específico por ID 200 OK 404 Not Found
GET /records/moodstats{currentDate} Retorna pontos (X e Y) dos últimos 7 dias baseado na data da requisição, onde X é um dia e Y é a média de humor desse dia 200 OK 400 Bad Request, 422 Unprocessable Content
PUT /records/{id} Atualiza um registro específico por ID 200 OK 400 Bad Request, 404 Not Found, 422 Unprocessable Content
DELETE /records/{id} Deleta um registro específico por ID 204 No Content 404 Not Found
POST /login Cadastra um novo usuário 200 OK 400 Bad Request

Exemplo de corpo JSON para métodos POST e PUT em /records

{
  "recordDate": "2026-10-11T15:01Z",
  "mood": "MAL",
  "emotions": ["MEDO", "FRUSTRACAO"],
  "situation": {
     "title": "Um titulo curto para a situação",
     "thought": "O que eu pensei nessa situação",
     "behavior": "Como eu agi nessa situação"
  }
}

ou

{
  "recordDate": "2026-10-11T15:01Z",
  "mood": "BEM",
  "emotions": ["FELICIDADE", "PAZ"],
  "description": "Uma descrição curta sobre o momento presente."
}

About

API REST de gerenciamento de emoções com Spring Boot e MySQL.

Topics

Resources

License

Stars

Watchers

Forks

Contributors

Languages