{"id":31593033,"url":"https://github.com/gabrielmoreiradevs/moodify","last_synced_at":"2025-10-06T03:36:41.736Z","repository":{"id":314796056,"uuid":"1056780979","full_name":"gabrielmoreiradevs/moodify","owner":"gabrielmoreiradevs","description":"API RESTful para o Moodify, uma plataforma inovadora para catalogar e recomendar conteúdos com base no humor do usuário","archived":false,"fork":false,"pushed_at":"2025-10-02T01:40:35.000Z","size":57,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-10-02T03:28:44.327Z","etag":null,"topics":["crud","flyway","java","jpa","jwt","maven","postgresql","spring","sql","swagger","swagger-ui"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gabrielmoreiradevs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-14T19:37:59.000Z","updated_at":"2025-10-02T01:40:38.000Z","dependencies_parsed_at":"2025-09-16T18:16:12.835Z","dependency_job_id":null,"html_url":"https://github.com/gabrielmoreiradevs/moodify","commit_stats":null,"previous_names":["gabrielmoreiradevs/moodify"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/gabrielmoreiradevs/moodify","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gabrielmoreiradevs%2Fmoodify","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gabrielmoreiradevs%2Fmoodify/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gabrielmoreiradevs%2Fmoodify/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gabrielmoreiradevs%2Fmoodify/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gabrielmoreiradevs","download_url":"https://codeload.github.com/gabrielmoreiradevs/moodify/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gabrielmoreiradevs%2Fmoodify/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278556226,"owners_count":26006079,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-06T02:00:05.630Z","response_time":65,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["crud","flyway","java","jpa","jwt","maven","postgresql","spring","sql","swagger","swagger-ui"],"created_at":"2025-10-06T03:36:03.869Z","updated_at":"2025-10-06T03:36:41.730Z","avatar_url":"https://github.com/gabrielmoreiradevs.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Moodify API\n\n[![Java](https://img.shields.io/badge/Java-17-blue.svg)](https://www.java.com)\n[![Spring Boot](https://img.shields.io/badge/Spring%20Boot-3.x-brightgreen.svg)](https://spring.io/projects/spring-boot)\n[![PostgreSQL](https://img.shields.io/badge/PostgreSQL-14-blue.svg)](https://www.postgresql.org/)\n[![License](https://img.shields.io/badge/GitHub-GPL--3.0-informational)](https://www.gnu.org/licenses/gpl-3.0.html)\n\nAPI 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.\n\nO 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.\n\n## ✨ Funcionalidades Principais\n\n- **Autenticação Segura**: Sistema completo de registro e login com autenticação baseada em JSON Web Tokens (JWT).\n- **Gerenciamento de Conteúdo**: CRUD completo para `Contents` (conteúdos), `Moods` (humores) e `Platforms` (plataformas).\n- **Busca Inteligente**: Endpoints otimizados para:\n  - Filtrar conteúdos por um ou mais humores.\n  - Buscar conteúdos por tipo (música, vídeo, livro).\n  - Listar sugestões personalizadas com base no humor do usuário.\n- **Documentação Interativa**: API totalmente documentada com Swagger (OpenAPI) para fácil exploração e teste dos endpoints.\n- **Migrações de Banco de Dados**: Versionamento e gerenciamento de schema do banco de dados de forma automatizada com Flyway.\n\n## 🛠️ Tecnologias e Ferramentas\n\nEste projeto foi construído utilizando uma stack moderna e robusta, focada em performance e escalabilidade:\n\n- **Linguagem**: Java 17\n- **Framework**: Spring Boot 3\n- **Módulos Spring**:\n  - `Spring Web`: Para a construção de APIs RESTful.\n  - `Spring Data JPA`: Para persistência de dados de forma simplificada.\n  - `Spring Security`: Para a implementação de autenticação e autorização com JWT.\n- **Banco de Dados**: PostgreSQL\n- **Migrations**: Flyway\n- **Bibliotecas**:\n  - `Lombok`: Para reduzir código boilerplate.\n  - `Spring Boot Validation`: Para validação de dados de entrada.\n  - `java-jwt`: Para a criação e validação de tokens JWT.\n- **Documentação**: `springdoc-openapi` (Swagger UI)\n\n### Desenvolvido com ❤️ por Gabriel Moreira\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgabrielmoreiradevs%2Fmoodify","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgabrielmoreiradevs%2Fmoodify","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgabrielmoreiradevs%2Fmoodify/lists"}