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.
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
- 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
- Clone o repositório
git clone https://github.com/agace/dream-matcher-api.git- Execute a aplicação via IDE ou terminal
./mvnw spring-boot:runAcesse a documentação Swagger em:
http://localhost:8080/swagger-ui.htmlGET /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.
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.
GET /emocoes
- Lista todas as emoções cadastradas.
POST /emocoes
- Cria uma nova emoção.
{
"nome": "Medo"
}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.
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.
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
}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