rafaelfborges / error-central

Central de Erros - Desafio Projeto Final do AceleraDev Java

Home Page:https://error-central.herokuapp.com/swagger-ui.html

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Central de Erros

Projeto final do programa AceleraDev Java da Codenation.

Objetivo

Em projetos modernos é cada vez mais comum o uso de arquiteturas baseadas em serviços ou microsserviços. Nestes ambientes complexos, erros podem surgir em diferentes camadas da aplicação (backend, frontend, mobile, desktop) e mesmo em serviços distintos. Desta forma, é muito importante que os desenvolvedores possam centralizar todos os registros de erros em um local, de onde podem monitorar e tomar decisões mais acertadas. Neste projeto vamos implementar uma API Rest para centralizar registros de erros de aplicações.

Abaixo estão os requisitos desta API, o time terá total liberdade para tomar as decisões técnicas e de arquitetura da API, desde que atendam os requisitos abaixo.

Requisitos da API

Tecnologia
  • Utilizar a tecnologia base da aceleração para o desenvolvimento (Exemplo: Java, Node.js)
Premissas
  • A API deve ser pensada para atender diretamente um front-end
  • Deve ser capaz de gravar os logs de erro em um banco de dados relacional
  • O acesso a ela deve ser permitido apenas por requisições que utilizem um token de acesso válido
Funcionalidades
  • Deve permitir a autenticação do sistema que deseja utilizar a API gerando o Token de Acesso
  • Pode ser acessado por multiplos sistemas
  • Deve permitir gravar registros de eventos de log salvando informações de Level(error, warning, info), Descrição do Evento, LOG do Evento, ORIGEM(Sistema ou Serviço que originou o evento), DATA(Data do evento), QUANTIDADE(Quantidade de Eventos de mesmo tipo)
  • Deve permitir a listagem dos eventos juntamente com a filtragem de eventos por qualquer parâmetro especificado acima
  • Deve suportar Paginação
  • Deve suportar Ordenação por diferentes tipos de atributos
  • A consulta de listagem não deve retornar os LOGs dos Eventos
  • Deve permitir a busca de um evento por um ID, dessa maneira exibindo o LOG desse evento em específico

Decisões técnicas do projeto

  • Foco na entrega das funcionalidades de maneira mais simples possível.
  • Decidi não utilizar testes de unidade, dado tempo limitado.
  • Utilização de banco de dados relacional em memória.
  • Todo o backend foi escrito em inglês, incluindo os commits no git.

Tecnologias utilizadas

  • Ecossistema Spring Boot 2.3.1: Data JPA, Web, Security e Validation
  • H2 DataBase
  • Maven
  • Lombok
  • MapStruct
  • Swagger v3 (SpringDoc OpenApi)
  • Deploy no Heroku

About

Central de Erros - Desafio Projeto Final do AceleraDev Java

https://error-central.herokuapp.com/swagger-ui.html


Languages

Language:Java 100.0%