https://github.com/willaevangelista/blog-pessoal_java
Repositório do Projeto Blog Pessoal, desenvolvido durante o Bootcamp Fullstack Java da Generation Brasil.
https://github.com/willaevangelista/blog-pessoal_java
generation-brasil insomnia java spring-boot sql
Last synced: 2 months ago
JSON representation
Repositório do Projeto Blog Pessoal, desenvolvido durante o Bootcamp Fullstack Java da Generation Brasil.
- Host: GitHub
- URL: https://github.com/willaevangelista/blog-pessoal_java
- Owner: willaevangelista
- Created: 2025-02-28T18:31:20.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-05-02T16:32:39.000Z (about 1 year ago)
- Last Synced: 2025-05-02T17:29:30.401Z (about 1 year ago)
- Topics: generation-brasil, insomnia, java, spring-boot, sql
- Language: Java
- Homepage:
- Size: 110 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 📝 Projeto Blog Pessoal - Backend com Spring
O projeto **Blog Pessoal** é uma aplicação backend desenvolvida com o Spring Framework. O objetivo principal deste sistema é criar uma API CRUD para gerenciar postagens e usuários em um blog, utilizando as boas práticas de desenvolvimento, arquitetura em camadas (Model, Repository, Service, Controller) e segurança com autenticação JWT.
******




******
### 📌 Tabela de Conteúdo
1. [Conhecimentos Mobilizados](#conhecimentosMobilizados)
2. [Estrutura do Projeto](#estruturaDoProjeto)
3. [Código Desenvolvido](#codigoDesenvolvido)
4. [Tecnologias Utilizadas](#tecnologiasUtilizadas)
******
## 💡 Conhecimentos Mobilizados
- **Spring Framework:** Utilização do Spring Boot para construção de APIs RESTful.
- **JPA e Hibernate:** Mapeamento objeto-relacional para interação com o banco de dados MySQL.
- **Arquitetura MVC:** Implementação da arquitetura em camadas (Model, Repository, Service, Controller).
- **Banco de Dados:** Configuração do banco MySQL e persistência com Spring Data JPA.
- **RESTful API:** Implementação de endpoints CRUD para postagens e usuários.
- **Segurança:** Autenticação de usuários com Spring Security e JWT (JSON Web Token).
## 🏗️ Estrutura do Projeto
```
blogpessoal/
├── controller/
│ ├── PostagemController.java
│ ├── UsuarioController.java
├── model/
│ ├── Postagem.java
│ ├── Usuario.java
│ ├── UsuarioLogin.java
├── repository/
│ ├── PostagemRepository.java
│ ├── UsuarioRepository.java
├── security/
│ ├── BasicSecurityConfig.java
│ ├── JwtAuthFilter.java
│ ├── JwtService.java
│ ├── UserDetailsImpl.java
│ ├── UserDetailsServiceImpl.java
├── service/
│ ├── UsuarioService.java
├── resources/
│ ├── application.properties
└── BlogPessoalApplication.java
```
## 📂 Código Desenvolvido
Para melhor visualização, aqui estão os links para os códigos principais:
- **[PostagemController](src/main/java/com/generation/blogpessoal/controller/PostagemController.java):** Controlador responsável pelas postagens. Implementa métodos CRUD.
- **[UsuarioController](src/main/java/com/generation/blogpessoal/controller/UsuarioController.java):** Controlador responsável pelos usuários. Implementa `getAll()`, `getById()`, `post()`, `put()`, `logar()`.
- **[Postagem](src/main/java/com/generation/blogpessoal/model/Postagem.java):** Entidade que representa as postagens no banco de dados.
- **[Usuario](src/main/java/com/generation/blogpessoal/model/Usuario.java):** Entidade que representa os usuários no banco de dados.
- **[UsuarioLogin](src/blogpessoal/model/UsuarioLogin.java):** Modelo auxiliar para login, sem persistência no banco.
- **[UsuarioRepository](src/main/java/com/generation/blogpessoal/repository/UsuarioRepository.java):** Interface que permite buscar usuários pelo e-mail.
- **[UsuarioService](src/blogpessoal/service/UsuarioService.java):** Serviço responsável por `cadastrarUsuario()`, `atualizarUsuario()` e `autenticarUsuario()`.
- **[JwtService](src/main/java/com/generation/blogpessoal/security/JwtService.java):** Serviço para geração e validação de tokens JWT.
- **[JwtAuthFilter](src/main/java/com/generation/blogpessoal/security/JwtAuthFilter.java):** Filtro responsável por validar tokens em requisições autenticadas.
## 🛠️ Tecnologias Utilizadas
- **Linguagem:** Java
- **Framework:** Spring Boot
- **Banco de Dados:** MySQL
- **JPA/Hibernate:** Para persistência de dados
- **Spring Security:** Para autenticação e autorização
- **JWT:** Para autenticação baseada em tokens
- **IDE utilizada:** Spring Tools Suite (STS)
- **Ferramenta de Testes:** Insomnia
[Voltar ao Topo ⬆️](#topo)