/smart-match

O projeto se trata de uma API Rest desenvolvida com Java e Spring Boot voltada para o gerenciamento de vagas, candidatos e empresas, com funcionalidades semelhantes a plataformas de emprego. A API facilita a integração e o gerenciamento de processos de recrutamento e seleção, oferecendo um backend robusto e escalável.

Primary LanguageJava

Smart Match Logo

Smart Match API

Smart Match é uma API Rest, que foi desenvolvida para facilitar o gerenciamento de empresas, vagas e candidatos de uma plataforma de RH. 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 Java e o framework Spring, com banco de dados MySQL , banco de dados H2 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.

📒 Índice

📌 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 o currículo do 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
  • 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

Endpoint Resumo Autenticação
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
POST /companies/jobs Responsável por realizar o cadastro de vaga por um usuário com perfil de empresa 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 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 CANDIDATE
POST /candidates/jobs/apply Responsável por aplicar o usuário com perfil de candidato a uma vaga, informando o ID CANDIDATE
GET /swagger-ui/index.html Responsável por servir a documentação dos recursos da API
GET /h2-console Responsável por acesso ao H2 Database

🚀 Instalação

  # Clone este repositório:
  $ git clone https://github.com/devictoralmeida/smart-match.git
  $ cd ./smart-match

  # Instalar as dependências:
  $ mvn clean install
  
  # Crie os containers:
  $ docker-compose up -d

  # Executar:
  $ mvn spring-boot:run