Skip to content

Latest commit

 

History

History
87 lines (75 loc) · 5.26 KB

README.md

File metadata and controls

87 lines (75 loc) · 5.26 KB

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

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 o framework Spring, com banco de dados MySQL e H2 Database e cobertura de testes com JUnit, autenticação usando o Spring Security, token JWT, encriptação de senhas utilizando BCrypt e documentação desenvolvida pelo Swagger, tornando a aplicação flexível e robusta.

📌 Requisitos Funcionais

  • Realizar o cadastro de um usuário representando a empresa
  • Cadastro de vaga por um usuário com perfil de empresa
  • Realizar o cadastro do usuário com perfil de candidato
  • Listar as vagas cadastradas da empresa para um usuário com perfil de empresa responsável
  • Listar o currículo da usuário com perfil de candidato
  • Listar as vagas disponíveis para o usuário com perfil de candidato por um filtro
  • Aplicar o usuário com perfil de candidato a uma vaga

Features

  • Autenticação de usuário utilizando JWT Token
  • Exibição de informações do próprio usuário em sessão ativa
  • Adicionando mapeamento de CORS
  • Modelo de domínio complexo
  • Projeção com SQL nativo
  • Cobertura de testes
  • 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

  # 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 para mais detalhes.


Feito com 💜 by CleilsonAndrade