https://github.com/cleilsonandrade/gestao-vagas-api
Gestão Vagas API é uma API Rest, que foi desenvolvida com de gerenciamento para cadastramento de empresa e suas vagas de emprego e candidatos para o preenchimento das mesmas. Com possibilidades de cadastramento de vagas, aplicação do candidato e filtro de busca pelo mesmo, exibição do currículo do candidato e listagem de informações das vagas.
https://github.com/cleilsonandrade/gestao-vagas-api
api backend docker docker-compose hr human-re human-resources java job-vacancy jpa junit jwt lombok maven spring spring-boot spring-security sql testing
Last synced: 26 days ago
JSON representation
Gestão Vagas API é uma API Rest, que foi desenvolvida com de gerenciamento para cadastramento de empresa e suas vagas de emprego e candidatos para o preenchimento das mesmas. Com possibilidades de cadastramento de vagas, aplicação do candidato e filtro de busca pelo mesmo, exibição do currículo do candidato e listagem de informações das vagas.
- Host: GitHub
- URL: https://github.com/cleilsonandrade/gestao-vagas-api
- Owner: CleilsonAndrade
- License: mit
- Created: 2023-11-06T01:27:55.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-08-19T15:50:33.000Z (about 1 year ago)
- Last Synced: 2025-06-02T13:11:10.092Z (5 months ago)
- Topics: api, backend, docker, docker-compose, hr, human-re, human-resources, java, job-vacancy, jpa, junit, jwt, lombok, maven, spring, spring-boot, spring-security, sql, testing
- Language: Java
- Homepage:
- Size: 235 KB
- Stars: 4
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Gestão Vagas API
Gestão Vagas API é uma API Rest, que foi desenvolvida com de gerenciamento para cadastramento de empresa e suas vagas de emprego e candidatos para o preenchimento das mesmas. Com possibilidades de cadastramento de vagas, aplicação do candidato e filtro de busca pelo mesmo, exibição do currículo do candidato e listagem de informações das vagas. Desenvolvido utilizando as tecnologias Java e seu framework Spring, com banco de dados MySQL e H2 Database e cobertura de testes com JUnit, tornando a aplicação flexível e robusta.
# 📒 Índice
* [Descrição](#descrição)
* [Requisitos Funcionais](#requisitos)
* [Features](#features)
* [Tecnologias](#tecnologias)
* [Endpoints](#endpoints)
* [Instalação](#instalação)
* [Licença](#licença)# 📃 Descrição
Gestão Vagas API é uma API Rest, que foi desenvolvida com de gerenciamento para cadastramento de empresa e suas vagas de emprego e candidatos para o preenchimento das mesmas. Com possibilidades de cadastramento de vagas, aplicação do candidato e filtro de busca pelo mesmo, exibição do currículo do candidato e listagem de informações das vagas. Desenvolvido utilizando as tecnologias [**Java**](https://www.java.com/) e o framework [**Spring**](https://spring.io/), com banco de dados [**MySQL**](https://www.mysql.com/) e [**H2 Database**](https://www.h2database.com/) e cobertura de testes com [**JUnit**](https://junit.org/junit5/), autenticação usando o [**Spring Security**](https://spring.io/projects/spring-security), token [**JWT**](https://jwt.io/), encriptação de senhas utilizando [**BCrypt**](https://en.wikipedia.org/wiki/Bcrypt) e documentação desenvolvida pelo [**Swagger**](https://swagger.io/), tornando a aplicação flexível e robusta.# 📌 Requisitos Funcionais
- [x] Realizar o cadastro de um usuário representando a empresa
- [x] Cadastro de vaga por um usuário com perfil de empresa
- [x] Realizar o cadastro do usuário com perfil de candidato
- [x] Listar as vagas cadastradas da empresa para um usuário com perfil de empresa responsável
- [x] Listar o currículo da usuário com perfil de candidato
- [x] Listar as vagas disponíveis para o usuário com perfil de candidato por um filtro
- [x] Aplicar o usuário com perfil de candidato a uma vaga## Features
- [x] Autenticação de usuário utilizando JWT Token
- [x] Exibição de informações do próprio usuário em sessão ativa
- [x] Adicionando mapeamento de CORS
- [x] Modelo de domínio complexo
- [x] Projeção com SQL nativo
- [x] Cobertura de testes
- [x] Docker-compose com imagem para um banco de dados PostgreSQL# 💻 Tecnologias
- **Java**
- **Spring**
- **Spring Web**
- **Spring Boot DevTools**
- **Spring Data JPA**
- **Spring Bean Validation**
- **JUnit**
- **JWT**
- **BCrypt**
- **Swagger**
- **MySQL**
- **PostgreSQL**
- **H2 Database**
- **Docker**# 📍 Endpoints
| Método | Endpoint | Resumo | Autenticação | Role
|--------|----------------------|-----------------------------------------------------|--------------------------|----------------------
POST | /companies/auth | Responsável por autenticar o usuário com perfil de empresa, gerando o Bearer Token *JWT* | Sim | *
POST | /companies | Responsável por realizar o cadastro de um usuário representando a empresa | Não | *
GET | /companies | Responsável por listar todas as vagas pertencentes a empresa | Sim | COMPANY
POST | /companies/jobs | Responsável por realizar o cadastro de vaga por um usuário com perfil de empresa | Sim | COMPANY
POST | /candidates/auth | Responsável por autenticar o usuário com perfil de candidato, gerando o Bearer Token *JWT* | Sim | *
GET | /candidates | Responsável por listar o currículo da usuário com perfil de candidato | Sim | CANDIDATE
POST | /candidates | Responsável por realizar o cadastro do usuário com perfil de candidato | Não | *
GET | /candidates/jobs | Responsável por listar as vagas disponíveis para o usuário com perfil de candidato informando um *query param* como filtro | Sim | CANDIDATE
POST | /candidates/jobs/apply | Responsável por aplicar o usuário com perfil de candidato a uma vaga, informando o ID | Sim | CANDIDATE
GET | /swagger-ui/index.html | Responsável por servir a documentação dos recursos da API | Sim | *
GET | /h2-console | Responsável por acesso ao *H2 Database* | Não | *# 🚀 Instalação
```bash
# Clone este repositório:
$ git clone https://github.com/CleilsonAndrade/gestao-vagas-api.git
$ cd ./gestao-vagas-api# Instalar as dependências:
$ mvn clean install# Executar:
$ mvn spring-boot:run
```# 📝 Licença
Esse projeto está sob a licença MIT. Veja o arquivo [LICENSE](LICENSE) para mais detalhes.---
Feito com 💜 by CleilsonAndrade