Skip to content

A Job Board API é um serviço RESTful para gerenciar vagas de emprego. Fornece endpoints para criar, ler, atualizar, deletar e listar vagas disponíveis. É construída em Go com o framework Gin e GORM para o banco de dados.

License

Notifications You must be signed in to change notification settings

Dev-Etto/job-board-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Job Board API

Visão Geral

A Job Board API é um serviço RESTful projetado para gerenciar vagas de emprego. Ela fornece endpoints para criar, ler, atualizar e deletar vagas de emprego, além de listar todas as vagas disponíveis. A API é construída em Go e utiliza o framework Gin para roteamento e GORM para interações com o banco de dados.

Funcionalidades

  • Create Job Openings: Adicionar novas vagas de emprego com detalhes como cargo, empresa, localização, status remoto, link e salário.
  • List Job Openings: Recuperar uma lista de todas as vagas de emprego.
  • Find Job Openings: Obter detalhes de uma vaga específica pelo ID.
  • Update Job Openings: Modificar detalhes de uma vaga existente.
  • Delete Job Openings: Remover uma vaga pelo ID.
  • Swagger Documentation: Documentação interativa da API disponível em /swagger/index.html.

Estrutura do Projeto

job-board-api/
├── config/         # Arquivos de configuração (ex.: banco de dados, logger)
├── db/             # Arquivo do banco de dados SQLite
├── docs/           # Arquivos de documentação Swagger
├── handler/        # Handlers para os endpoints da API
├── router/         # Configuração de rotas da API
├── schema/         # Definições de esquema do banco de dados
├── main.go         # Ponto de entrada da aplicação
├── makefile        # Comandos para build e execução
├── go.mod          # Dependências do módulo Go
├── LICENSE         # Arquivo de licença

Instalação

  1. Clone o repositório:
    git clone <repository-url>
    cd job-board-api

Uso

Início Rápido

Para iniciar rapidamente o servidor da API com a documentação Swagger, utilize o comando:

make

Comandos Disponíveis no Makefile

O arquivo makefile contém os seguintes comandos para facilitar o uso e a manutenção do projeto:

  • default: Executa o comando run-with-docs, que inicializa a documentação Swagger e executa o servidor da API.

    make default
  • run: Executa o servidor da API sem inicializar a documentação Swagger.

    make run
  • run-with-docs: Inicializa a documentação Swagger, organiza as dependências do módulo Go e executa o servidor da API.

    make run-with-docs
  • build: Compila o código-fonte e gera um binário executável chamado job-board-api.

    make build
  • test: Executa os testes automatizados do projeto com saída detalhada.

    make test
  • docs: Gera a documentação Swagger para a API.

    make docs
  • clean: Remove o binário gerado e os arquivos de documentação.

    make clean

Endpoints da API

URL Base

/api/v1

Endpoints

  • POST /opening: Criar uma nova vaga de emprego.
  • GET /opening: Listar todas as vagas de emprego.
  • GET /opening/{id}: Buscar uma vaga de emprego pelo ID.
  • PUT /opening/{id}: Atualizar uma vaga de emprego pelo ID.
  • DELETE /opening/{id}: Deletar uma vaga de emprego pelo ID.

Banco de Dados

A API utiliza SQLite como banco de dados. O arquivo do banco está localizado em db/main.db. O esquema é automaticamente migrado utilizando o GORM.

Funcionalidades Futuras

Estamos comprometidos em expandir e melhorar continuamente a Job Board API. Aqui estão algumas funcionalidades que serão implementadas futuramente:

Testes Automatizados

  • Cobertura de Testes: Implementação de testes unitários e de integração para garantir a qualidade e a confiabilidade do código.
  • Framework de Testes: Utilização de frameworks como Testify para facilitar a escrita e execução de testes.

Novas Rotas

  • Candidatura do Candidato: Adicionar endpoints para permitir que candidatos se candidatem às vagas disponíveis. Isso incluirá:

    • POST /application: Criar uma nova candidatura para uma vaga específica.
    • GET /application: Listar todas as candidaturas realizadas.
    • GET /application/{id}: Obter detalhes de uma candidatura específica pelo ID.
    • DELETE /application/{id}: Remover uma candidatura pelo ID.
  • Aprovação do Candidato: Adicionar endpoints para gerenciar o status de aprovação dos candidatos. Isso incluirá:

    • PUT /application/{id}/approve: Aprovar um candidato para uma vaga específica.
    • PUT /application/{id}/reject: Rejeitar um candidato para uma vaga específica.

Essas melhorias visam tornar a API mais robusta e atender a um conjunto mais amplo de casos de uso, proporcionando uma experiência mais completa para os usuários.

Licença

Este projeto está licenciado sob a Licença MIT. Veja o arquivo LICENSE para mais detalhes.

About

A Job Board API é um serviço RESTful para gerenciar vagas de emprego. Fornece endpoints para criar, ler, atualizar, deletar e listar vagas disponíveis. É construída em Go com o framework Gin e GORM para o banco de dados.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published