Clintonrocha98 / challenge-api-tool

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Challenge-api-tool

Objetivo

Construir uma API e banco de dados. A aplicação é um simples repositório para gerenciar ferramentas com seus respectivos nomes, links, descrições e tags.

Desafio.

Tecnologias

  • Express
  • PostgresSQL
  • Docker
  • vitest
  • Swagger

Modelagem de dados

  • Foi criado a camada de repositório para lidar com as queries(consultas) no banco de dados.

Arquitetura de software

  • Foram aplicado conceitos de SOLID. Como Single Responsibility Principle, Dependency Inversion Principle, Open-Closed Principle

Porta

3000

Documentação da API

A documentação da API está disponível em Swagger e pode ser acessada no endpoint /api-docs.

REST API

  • POST /tools: Cadastra uma nova ferramenta.
  • GET /tools: Retorna todas as ferramentas cadastradas.
  • GET /tools/:tag: Filtra ferramentas utilizando uma busca por tag.
  • DELETE /tools/:id: Remove uma ferramenta por ID.

Como rodar o projeto

  1. Clone
git clone git@github.com:Clintonrocha98/challenge-api-tool.git
  1. Instale as dependências
npm run install
## ou
yarn
  1. Renomear .env.example para .env
  2. Configure um banco PostgresSQL
  3. Comando:
npm run dev
## ou
yarn dev

Docker

  1. Clone:
git clone git@github.com:Clintonrocha98/challenge-api-tool.git
  1. Configure um banco PostgresSQL
  2. Renomear .env.example para .env
  3. Comando:
docker compose up -d

Testes

Testes unitarios:

npm run test
## ou
yarn test

About


Languages

Language:TypeScript 99.1%Language:Dockerfile 0.9%