Skip to content

About

API de Certificações desenvolvida na NLW Expert e evoluída para Java 21 e Spring Boot 4. Inclui lógica de elegibilidade, correção automática e ranking Top 10.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

11 Commits

Folders and files

Repository files navigation

🎓 Certification API

Java Backend | Spring Boot | REST API

API desenvolvida para gerenciamento de certificações online, permitindo que estudantes realizem testes técnicos, validem conhecimentos em tecnologias específicas e acompanhem sua posição em um ranking global de desempenho.


🛠️ Tecnologias Utilizadas

Java Spring Boot Spring Data JPA PostgreSQL Docker Jackson Lombok Maven


🏗️ Arquitetura da Aplicação

A aplicação foi construída com foco em organização, separação de responsabilidades e escalabilidade, contemplando os seguintes componentes principais:

Controllers

Responsáveis pela exposição dos endpoints da API e pelo tratamento das requisições HTTP.

Services

Centralizam as regras de negócio da aplicação, incluindo validação de elegibilidade, correção de respostas e processamento das certificações.

Repositories

Responsáveis pela persistência e acesso aos dados utilizando Spring Data JPA.

Entities

Representam o domínio da aplicação e o mapeamento das estruturas persistidas no banco de dados.

DTOs

Utilizados para transporte de dados entre as camadas da aplicação, mantendo clareza e desacoplamento.

Exceptions

Camada voltada ao tratamento de erros e exceções customizadas, proporcionando respostas mais consistentes para a API.


🚀 Como Rodar o Projeto

Pré-requisitos

  • Java 21+
  • Maven 3.x
  • Docker
  • Docker Compose

Passo a passo

1. Clone o repositório

git clone https://github.com/1LucasSena/certification-api.git
cd certification-api

2. Suba o banco de dados

docker-compose up -d

3. Execute a aplicação

mvn spring-boot:run

💡 Objetivo do Projeto

Este projeto foi desenvolvido originalmente durante o evento NLW Expert – Trilha Java, da Rocketseat, e posteriormente evoluído com adaptações técnicas voltadas para modernização do stack, robustez da aplicação e melhoria na organização da arquitetura.

A proposta do projeto é consolidar conceitos práticos de desenvolvimento backend com Java e Spring Boot, incluindo persistência de dados, exposição de endpoints REST, serialização JSON, tratamento de exceções e estruturação de regras de negócio.


📌 Funcionalidades

  • Validação de elegibilidade do estudante
  • Bloqueio de repetição de certificações já concluídas
  • Correção automática de respostas
  • Cálculo de nota em tempo real
  • Cadastro e persistência de novos estudantes
  • Ranking global com os Top 10 melhores desempenhos

⚙️ Evoluções Implementadas

Além da versão base do projeto, esta implementação recebeu melhorias importantes:

  • Upgrade para Java 21
  • Migração para Spring Boot 4.0.3
  • Melhoria na serialização JSON com @JsonManagedReference e @JsonIgnore
  • Refatoração dos controllers com ResponseEntity
  • Tratamento de erros com exceções customizadas
  • Melhor organização das respostas da API
  • Ajustes na lógica de elegibilidade e processamento das certificações

📌 Endpoints Principais

Método Endpoint Descrição
POST /students/verifyIfHasCertification Verifica se o aluno já possui a certificação
POST /students/certification/answer Envia as respostas e processa a nota
GET /ranking/top10 Retorna o ranking com os 10 melhores alunos

🧪 Possíveis Melhorias Futuras

  • Autenticação com JWT
  • Documentação com Swagger/OpenAPI
  • Testes unitários e de integração
  • Paginação no ranking
  • Histórico completo de certificações por aluno
  • Deploy em ambiente cloud

👨‍💻 Autor

Desenvolvido por Lucas Sena 🚀

About

API de Certificações desenvolvida na NLW Expert e evoluída para Java 21 e Spring Boot 4. Inclui lógica de elegibilidade, correção automática e ranking Top 10.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages