Skip to content

agace/dream-matcher-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

💭 Dream Matcher API

A Dream Matcher é uma API REST desenvolvida em Java com Spring Boot que conecta pessoas por meio de sonhos semelhantes. A aplicação permite que usuários compartilhem sonhos, expressem emoções associadas, comentem nos sonhos de outras pessoas e encontrem conexões com base em similaridade.

🌐 Visão Geral

A API oferece recursos para:

  • Criar, listar, buscar e deletar usuários

  • Criar, listar, buscar e deletar sonhos

  • Comentar sonhos

  • Criar e listar emoções

  • Gerar e listar matches baseados na similaridade emocional entre sonhos

📌 Tecnologias Utilizadas

  • Java 21
  • Spring Boot 3.4.5
  • Spring Web
  • Spring Data JPA
  • H2 Database (banco de dados em memória)
  • Lombok
  • OpenAPI / Swagger 3.0

🔧 Como Executar o Projeto

  1. Clone o repositório
git clone https://github.com/agace/dream-matcher-api.git
  1. Execute a aplicação via IDE ou terminal
./mvnw spring-boot:run

Acesse a documentação Swagger em:

http://localhost:8080/swagger-ui.html

🔎 Endpoints Principais

Usuários

GET /usuarios

  • Lista todos os usuários cadastrados.

POST /usuarios

  • Cria um novo usuário.
{
  "nome": "Ana",
  "email": "ana@email.com",
  "senha": "1234",
  "idade": 25,
  "pais": "Brasil"
}

GET /usuarios/{id}

  • Retorna um usuário por ID.

DELETE /usuarios/{id}

  • Deleta um usuário por ID.

Sonhos

GET /sonhos

  • Lista todos os sonhos.

POST /sonhos

  • Cria um novo sonho.
{
  "descricao": "Sonhei que estava voando",
  "dataSonho": "2025-06-03",
  "usuarioId": 1,
  "emocoesIds": [1, 2]
}

GET /sonhos/{id}

  • Busca um sonho por ID.

DELETE /sonhos/{id}

  • Deleta um sonho por ID.

Emoções

GET /emocoes

  • Lista todas as emoções cadastradas.

POST /emocoes

  • Cria uma nova emoção.
{
  "nome": "Medo"
}

Comentários

POST /comentarios

  • Cria um comentário para um sonho.
{
  "texto": "Tive um sonho parecido!",
  "usuarioId": 2,
  "sonhoId": 1
}

GET /comentarios/sonho/{sonhoId}

  • Lista comentários de um sonho.

Matches

POST /matches/gerar/{sonhoId}

  • Gera matches com base na similaridade de emoções de um sonho.

GET /matches/{sonhoId}

  • Lista matches previamente gerados para um sonho.

📄 Estrutura dos DTOs

UsuarioDTO

{
  "id": 1,
  "nome": "João",
  "email": "joao@email.com",
  "senha": "1234",
  "idade": 30,
  "pais": "Brasil"
}

SonhoDTO

{
  "id": 1,
  "descricao": "Sonhei que estava flutuando sobre uma floresta mágica",
  "dataSonho": "2025-06-03",
  "usuarioId": 1,
  "emocoesIds": [1, 2]
}

EmocaoDTO

{
  "id": 1,
  "nome": "Alegria"
}

ComentarioDTO

{
  "id": 1,
  "texto": "Interessante...",
  "dataHora": "2025-06-17T01:12:00",
  "usuarioId": 1,
  "sonhoId": 2
}

MatchDTO

{
  "id": 1,
  "sonhoOrigemId": 1,
  "sonhoComparadoId": 2,
  "similaridade": 0.85
}

📁 Swagger / OpenAPI

A API possui suporte completo a Swagger, com um arquivo YAML (api-docs.yaml) gerado automaticamente. Ele pode ser acessado via:

http://localhost:8080/v3/api-docs

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages