{"id":24773932,"url":"https://github.com/lucas300/blogpessoal_spring","last_synced_at":"2026-05-21T05:02:37.188Z","repository":{"id":272334799,"uuid":"915113229","full_name":"Lucas300/blogpessoal_spring","owner":"Lucas300","description":"Blog pessoal onde compartilho minhas ideias, pensamentos e conhecimentos. API desenvolvida em Java com Spring Boot, com CRUD de postagens, temas e usuários, além de autenticação com JWT. Documentação via Swagger.","archived":false,"fork":false,"pushed_at":"2025-06-22T01:13:18.000Z","size":497,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-22T02:27:27.052Z","etag":null,"topics":["hibernate","java","jparepository","spring","spring-security"],"latest_commit_sha":null,"homepage":"https://blog-pessoal-lucas-pi.vercel.app/","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Lucas300.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2025-01-11T02:18:13.000Z","updated_at":"2025-06-22T01:34:10.000Z","dependencies_parsed_at":"2025-01-13T19:34:21.969Z","dependency_job_id":"6468ad57-7037-433e-8f1b-6397a9774728","html_url":"https://github.com/Lucas300/blogpessoal_spring","commit_stats":null,"previous_names":["lucas300/blogpessoal_spring"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Lucas300/blogpessoal_spring","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lucas300%2Fblogpessoal_spring","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lucas300%2Fblogpessoal_spring/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lucas300%2Fblogpessoal_spring/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lucas300%2Fblogpessoal_spring/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Lucas300","download_url":"https://codeload.github.com/Lucas300/blogpessoal_spring/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lucas300%2Fblogpessoal_spring/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265895894,"owners_count":23845402,"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","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":["hibernate","java","jparepository","spring","spring-security"],"created_at":"2025-01-29T05:19:58.400Z","updated_at":"2026-05-21T05:02:36.605Z","avatar_url":"https://github.com/Lucas300.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🔐 API - Blog Pessoal com Spring Boot, Spring Security e JWT\n\nEste é o back-end de um projeto que implementa um CRUD completo com autenticação e autorização, utilizando **Java**, **Spring Boot**, **Spring Security** e **JWT**. A API conta com relacionamento entre entidades, validações e está documentada com **Swagger**.\n\n## 🚀 Projeto Online\n\n🔗 \u003cstrong\u003eAcesse aqui o Blog Pessoal:\u003c/strong\u003e \u003ca href=\"https://blog-pessoal-lucas-pi.vercel.app/\" target=\"_blank\"\u003ehttps://blog-pessoal-lucas-pi.vercel.app/\u003c/a\u003e  \n\n🔗 \u003cstrong\u003eRepositório Front-end:\u003c/strong\u003e \u003ca href=\"https://github.com/Lucas300/BlogPessoal_React\" target=\"_blank\"\u003ehttps://github.com/Lucas300/BlogPessoal_React\u003c/a\u003e\n\n\n---\n\n## Tecnologias utilizadas\n\n- Java 17\n- Spring Boot\n- Spring Security\n- JSON Web Tokens (JWT)\n- Hibernate\n- PostgreSQL\n- Maven\n- Swagger\n\n## 🛠 Principais pontos abordados no projeto\n\n✔️ Estruturação de entidades no banco de dados com JPA e validações.\u003cbr\u003e\n✔️ Configuração de autenticação e autorização utilizando Spring Security e JWT.\u003cbr\u003e\n✔️ Desenvolvimento de endpoints RESTful com métodos HTTP (GET, POST, PUT, DELETE).\u003cbr\u003e\n✔️ Implementação de relacionamento OneToMany entre as entidades.\u003cbr\u003e\n✔️ Criação de um serviço de autenticação para proteger rotas e garantir acesso seguro aos recursos.\u003cbr\u003e\u003cbr\u003e\n\nAlém disso, o projeto seguiu boas práticas, como o uso de injeção de dependências (@Autowired), DTOs para login e senha e validação de dados de entrada com Bean Validation.\n\n🎯 Foi uma experiência incrível que me ajudou a consolidar o aprendizado e expandir meus conhecimentos no desenvolvimento de APIs seguras e eficientes.\n\n## \u003cdiv id=\"testar\"\u003eInstruções para rodar na sua máquina\u003c/div\u003e\n\n1. Certifique-se de ter o Java 17+ instalado e o MySQL Workbench configurado.\u003cbr\u003e\n2. Baixe a aplicação no seu computador através do repositório: [GitHub](https://github.com/Lucas300/blogpessoal_spring.git) ou baixe o arquivo compactado e extraia-o para o local de sua preferência.\u003cbr\u003e\n3. Abra o projeto na sua IDE de preferência.\u003cbr\u003e\n4. Importe o projeto como \"Existing Maven Projects\".\u003cbr\u003e\n\n### Exemplo usando o Spring Tools/Eclipse:\n\u003cimg width=\"500px\" src=\"imagens_readme/import_maven_project.JPG\"\u003e\u003cbr\u003e\n\n5. Aguarde até que a IDE baixe todas as dependências do projeto.\u003cbr\u003e\n6. Verifique se o perfil ativo da aplicação está definido como \"dev\":\u003cbr\u003e\n\u003cimg width=\"500px\" src=\"imagens_readme/config_bd.JPG\"\u003e\u003cbr\u003e\n\n7. No arquivo `application-dev.properties`, verifique e ajuste seu usuário e senha do MySQL, se necessário:\u003cbr\u003e\n\u003cimg width=\"500px\" src=\"imagens_readme/banco_config.JPG\"\u003e\u003cbr\u003e\n\n8. Execute a aplicação:\u003cbr\u003e\n\n### Exemplo usando o Spring Tools/Eclipse:\n\u003cimg width=\"500px\" src=\"imagens_readme/como_rodar.jpg\"\u003e\u003cbr\u003e\n\n9. Acesse a aplicação através do navegador no endereço: [http://localhost:8080/](http://localhost:8080/)\n\n### Agora você já pode explorar a API documentada com Swagger:\n\u003cimg width=\"500px\" src=\"imagens_readme/swagger.JPG\"\u003e\u003cbr\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flucas300%2Fblogpessoal_spring","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flucas300%2Fblogpessoal_spring","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flucas300%2Fblogpessoal_spring/lists"}