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.
- Java 17+
- Maven 3.8+
- Docker e Docker Compose
docker-compose up -dServiç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 |
export DATABASE_URL=jdbc:postgresql://localhost:5432/gestao_vagas
export DATABASE_USERNAME=admin
export DATABASE_PASSWORD=adminNo Windows (PowerShell):
$env:DATABASE_URL="jdbc:postgresql://localhost:5432/gestao_vagas"
$env:DATABASE_USERNAME="admin"
$env:DATABASE_PASSWORD="admin"./mvnw spring-boot:runA API estará disponível em http://localhost:8080.
| 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.
| 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 |
| Método | Rota | Autenticação | Descrição |
|---|---|---|---|
| POST | /company/ |
Nenhuma | Criar empresa |
| POST | /company/auth |
Nenhuma | Autenticar empresa |
| Método | Rota | Autenticação | Descrição |
|---|---|---|---|
| POST | /company/job/ |
COMPANY | Criar vaga |
| GET | /company/job/ |
COMPANY | Listar vagas da empresa |
A API utiliza JWT (JSON Web Token). Após autenticar via /candidate/auth ou /company/auth, inclua o token no header:
Authorization: Bearer <token>
./mvnw test- Spring Boot 3.1.4
- Spring Security + JWT (Auth0)
- Spring Data JPA + PostgreSQL
- Springdoc OpenAPI + Scalar
- Lombok
- Actuator + Micrometer + Prometheus
- JaCoCo + SonarQube