Skip to content

castrogusttavo/spring-api

Repository files navigation

Gestão de Vagas API

API para gestão de vagas de emprego construída com Spring Boot 3.1.4 e Java 17. Permite que empresas publiquem vagas e candidatos se candidatem.

Pré-requisitos

  • Java 17+
  • Maven 3.8+
  • Docker e Docker Compose

Como rodar

1. Subir a infraestrutura (PostgreSQL, Prometheus, Grafana)

docker-compose up -d

Serviços disponíveis:

Serviço Porta Descrição
PostgreSQL 5432 Banco de dados
Prometheus 9090 Coleta de métricas
Grafana 3000 Dashboard de métricas

2. Configurar variáveis de ambiente

export DATABASE_URL=jdbc:postgresql://localhost:5432/gestao_vagas
export DATABASE_USERNAME=admin
export DATABASE_PASSWORD=admin

No Windows (PowerShell):

$env:DATABASE_URL="jdbc:postgresql://localhost:5432/gestao_vagas"
$env:DATABASE_USERNAME="admin"
$env:DATABASE_PASSWORD="admin"

3. Rodar a aplicação

./mvnw spring-boot:run

A API estará disponível em http://localhost:8080.

Documentação da API

Ferramenta URL
Scalar http://localhost:8080/scalar.html
Swagger UI http://localhost:8080/swagger-ui/index.html
OpenAPI JSON http://localhost:8080/v3/api-docs

A documentação estática também está disponível em docs/openapi.json.

Endpoints

Candidato

Método Rota Autenticação Descrição
POST /candidate/ Nenhuma Criar candidato
POST /candidate/auth Nenhuma Autenticar candidato
GET /candidate/ CANDIDATE Ver perfil do candidato
GET /candidate/job CANDIDATE Buscar vagas por filtro
POST /candidate/job/apply CANDIDATE Candidatar-se a uma vaga

Empresa

Método Rota Autenticação Descrição
POST /company/ Nenhuma Criar empresa
POST /company/auth Nenhuma Autenticar empresa

Vagas

Método Rota Autenticação Descrição
POST /company/job/ COMPANY Criar vaga
GET /company/job/ COMPANY Listar vagas da empresa

Autenticação

A API utiliza JWT (JSON Web Token). Após autenticar via /candidate/auth ou /company/auth, inclua o token no header:

Authorization: Bearer <token>

Testes

./mvnw test

Tech Stack

  • Spring Boot 3.1.4
  • Spring Security + JWT (Auth0)
  • Spring Data JPA + PostgreSQL
  • Springdoc OpenAPI + Scalar
  • Lombok
  • Actuator + Micrometer + Prometheus
  • JaCoCo + SonarQube

About

API feita em Spring Boot (DDD + CLEAN ARCH)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages