https://github.com/gabrielmoreiradevs/moodify
API RESTful para o Moodify, uma plataforma inovadora para catalogar e recomendar conteúdos com base no humor do usuário
https://github.com/gabrielmoreiradevs/moodify
crud flyway java jpa jwt maven postgresql spring sql swagger swagger-ui
Last synced: 9 months ago
JSON representation
API RESTful para o Moodify, uma plataforma inovadora para catalogar e recomendar conteúdos com base no humor do usuário
- Host: GitHub
- URL: https://github.com/gabrielmoreiradevs/moodify
- Owner: gabrielmoreiradevs
- License: gpl-3.0
- Created: 2025-09-14T19:37:59.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2025-10-02T01:40:35.000Z (9 months ago)
- Last Synced: 2025-10-02T03:28:44.327Z (9 months ago)
- Topics: crud, flyway, java, jpa, jwt, maven, postgresql, spring, sql, swagger, swagger-ui
- Language: Java
- Homepage:
- Size: 55.7 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Moodify API
[](https://www.java.com)
[](https://spring.io/projects/spring-boot)
[](https://www.postgresql.org/)
[](https://www.gnu.org/licenses/gpl-3.0.html)
API RESTful para o **Moodify**, uma plataforma inovadora para catalogar e recomendar conteúdos com base no humor do usuário. Em vez de focar em um único tipo de mídia, o Moodify permite que os usuários registrem músicas, vídeos, livros e artigos, associando cada um a um estado de humor.
O principal objetivo é oferecer sugestões personalizadas de conteúdo que correspondam ao estado emocional atual do usuário, ajudando-o a encontrar a mídia perfeita para cada momento.
## ✨ Funcionalidades Principais
- **Autenticação Segura**: Sistema completo de registro e login com autenticação baseada em JSON Web Tokens (JWT).
- **Gerenciamento de Conteúdo**: CRUD completo para `Contents` (conteúdos), `Moods` (humores) e `Platforms` (plataformas).
- **Busca Inteligente**: Endpoints otimizados para:
- Filtrar conteúdos por um ou mais humores.
- Buscar conteúdos por tipo (música, vídeo, livro).
- Listar sugestões personalizadas com base no humor do usuário.
- **Documentação Interativa**: API totalmente documentada com Swagger (OpenAPI) para fácil exploração e teste dos endpoints.
- **Migrações de Banco de Dados**: Versionamento e gerenciamento de schema do banco de dados de forma automatizada com Flyway.
## 🛠️ Tecnologias e Ferramentas
Este projeto foi construído utilizando uma stack moderna e robusta, focada em performance e escalabilidade:
- **Linguagem**: Java 17
- **Framework**: Spring Boot 3
- **Módulos Spring**:
- `Spring Web`: Para a construção de APIs RESTful.
- `Spring Data JPA`: Para persistência de dados de forma simplificada.
- `Spring Security`: Para a implementação de autenticação e autorização com JWT.
- **Banco de Dados**: PostgreSQL
- **Migrations**: Flyway
- **Bibliotecas**:
- `Lombok`: Para reduzir código boilerplate.
- `Spring Boot Validation`: Para validação de dados de entrada.
- `java-jwt`: Para a criação e validação de tokens JWT.
- **Documentação**: `springdoc-openapi` (Swagger UI)
### Desenvolvido com ❤️ por Gabriel Moreira