Skip to content

Projeto desenvolvido no Framework Spring durante o Bootcamp Desenvolvedor Java Fullstack da Generation Brasil

Notifications You must be signed in to change notification settings

gisellesouzaa/BlogPessoal_Spring

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Blog Pessoal

Aplicação backend de um Blog Pessoal desenvolvida no Framework Spring durante o Bootcamp Desenvolvedor Java Fullstack da Generation Brasil
No projeto foi implementada a arquitetura API Rest e a comunicação com os bancos de dados MySQL e PostgreSQL.
Além dos métodos de postagens, filtros, atualizações e exclusões, a aplicação conta com verificações de segurança e validações de testes unitários.

🛠 Tecnologias:

As seguintes ferramentas foram usadas na construção do projeto:

Java Spring Boot MySQL Insomnia PostgreSQL Render Swagger

💬 Assuntos abordados:

  • Programação Orientada a objetos
  • Desenvolvimento Ágil de Software com SCRUM
  • Criação de API Java com Arquitetura REST
  • Modelagem de Dados
  • CLI (Command Line Interface)
  • Git e GitHub
  • Teste de requisições HTTP (Get, Post, Put e Delete)
  • Bancos de Dados Relacionais: MySQL e PostgreSQL
  • Gerenciador de dependências Maven
  • Spring Boot
  • Spring Data JPA
  • Spring Security (JWT)
  • Web Services REST com Spring
  • Testes unitários com JUnit
  • Deploy da aplicação com Render

EndPoints:

Abaixo consta os recursos da API:

Imagem com os EndPoints da Aplicação


Diagrama de Classes do Projeto:

classDiagram
class Tema {
  - id : Long
  - descricao : String
  - postagem : List ~Postagem~
  + getAll()
  + getById(Long id)
  + getByDescricao(String descricao)
  + postTema(Tema tema)
  + putTema(Tema tema)
  + deleteTema(Long id)
}
class Postagem {
  - id : Long
  - titulo : String
  - texto: String
  - data: LocalDateTime
  - senha : String
  - tema : Tema
  - usuario : Usuario
  + getAll()
  + getById(Long id)
  + getByTitulo(String titulo)
  + postPostagem(Postagem postagem)
  + putPostagem(Postagem postagem)
  + deleteTema(Long id)
}
class Usuario {
  - id : Long
  - nome : String
  - usuario : String
  - senha : String
  - foto : String
  - postagem : List ~Postagem~
  + getAll()
  + getById(Long id)
  + autenticarUsuario(UsuarioLogin usuarioLogin)
  + cadastrarUsuario(Usuario usuario)
  + atualizarUsuario(Usuario usuario)
}
class UsuarioLogin{
  - id : Long
  - nome : String
  - usuario : String
  - senha : String
  - foto : String
  - token : String
}
Tema --> Postagem
Usuario --> Postagem
Loading

O Projeto é composto por 3 Recursos (Conjunto de Classes e Interfaces responsáveis por mapear um tipo de Objeto e persistir no Banco de dados Relacional) e uma Classe auxiliar:

Classe Descrição
Postagem Recurso responsável por definir Objeto Postagem (posts) do Blog Pessoal
Tema Recurso responsável por classificar as postagens através do Objeto Tema
Usuario Recurso responsável por definir o Objeto Usuário, que poderá acessar e criar postagens no Blog Pessoal
UsuarioLogin Classe auxiliar, que será utilizada para efetuar login no Blog Pessoal

Cada Recurso gera uma tabela no Banco de dados da aplicação. A Classe auxiliar não gera uma tabela no Banco de dados da aplicação porque ela serve de Classe auxiliar na implementação da Segurança da aplicação.

Diagrama de Entidade e Relacionamentos:

Relacionamento entre as classes:


Dependências utilizadas no projeto:

Dependência Descrição
Spring Web Essa dependência fornece todas as bibliotecas necessárias para criar um projeto WEB e trabalhar com o protocolo HTTP/HTTPS.
Spring Boot Dev Tools Permite a atualização do projeto em tempo real durante o processo de Desenvolvimento da aplicação.
Validation Fornece um conjunto de anotações que permitem validar os Atributos das Classes da Camada Model.
Spring Data JPA Java Persistence API (JPA) é uma Biblioteca que armazena e recupera Objetos, que foram persistidos (armazenados) em um Bancos de Dados.
MySQL Driver Responsável pela conexão entre nossa aplicação e o Banco de Dados MySQL.
Se alterarmos o Sistema Gerenciador de Banco de dados - SGBD da aplicação (Postgre SQL, SQL server, Oracle, entre outros) precisaremos alterar o Driver da nossa aplicação.
Starter Security Responsável por todas as dependências relacionadas à segurança do Spring. Dentro desta dependência, existem outras 3 dependências: spring-security-core, spring-security-config e spring-security-web
JWT As dependências jjwt-api, jjwt-impl e jjwt-jackson são responsáveis por gerar e validar o Token JWT.
PostgreSQL Responsável pela conexão entre nossa aplicação e o Banco de Dados na Nuvem. O PostgreSQL é utilizado como SGBD pelo Render.
Spring Doc Fornece as anotações do OpenAPI e oferece suporte ao Swagger, permitindo a disponibilização da UI e facilitando a construção da documentação da API.

💻 Demostração:

Para testar a API entre no link abaixo com:
usuário: root@root.com
senha: rootroot

Testar Aplicação

⚠️Obs: Por se tratar de uma hospedagem gratuita, o sistema pode apresentar lentidão ao carregar a primeira página.

Autor:

Giselle Souza

Feito com ❤️ por Giselle Souza. 👋

About

Projeto desenvolvido no Framework Spring durante o Bootcamp Desenvolvedor Java Fullstack da Generation Brasil

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published