Skip to content

gbdsantos/nodejs-contactcraft

Repository files navigation

☎️ ContactCraft

imagem do logotipo Biome imagem do logotipo Expressjs imagem do logotipo Jest imagem do logo Node.js com a versão imagem do logotipo MySQL imagem do logotipo Prisma ORM imagem do logotipo Swagger imagem do logotipo TypeScript

Sobre

Desafio/Teste técnico para a empresa Port Louis que consiste em uma api para gerenciar contatos telefônicos.

Começando

  1. Crie um arquivo .env no diretório raiz do projeto (copie e cole o conteúdo do arquivo .env.example).

  2. Instale as dependências e execute os comandos abaixo:

# Instalar dependências
npm install

# Criar um novo ambiente Docker
docker compose up -d

# Gerar o cliente do Prisma
npx prisma generate

# Criar e aplicar migrations
npx prisma migrate dev

# Executar o projeto
npm run start:dev

# Executar testes [OPCIONAL]
npm test

Para testar os endpoints da API você pode:

  • Acessar pelo endereço http://localhost:3000/docs pelo Swagger com todas as rotas documentadas;
  • Diretamente pelo Visual Studio Code com a extensão REST Client instalada abrindo o arquivo chamado requests.http que está no diretório raiz do projeto;
  • Utilizar um REST Client de sua preferência (ex: Insomnia, Postman).

Requisitos Funcionais (RF)

  • Criar contato (nome e telefone);
  • Listar todos os contatos;
  • Atualizar contato;
  • Excluir contato.

Requisitos de Negócio (RN)

  • Nome: Mínimo de duas palavras, cada uma com pelo menos 3 letras.

Requisitos Não Funcionais (RNF)

  • Criar uma aplicação em Node.js utilizando o framework Express;
  • Os dados da aplicação devem ser persistidos em um banco de dados MySQL;
  • Criar um arquivo .env para armazenar variáveis de ambiente (como credenciais do banco de dados).

Milha extra

  • Documentação da API com Swagger
  • Testes unitários com Jest

⚖️ Licença

Este projeto está sob a licença Creative Commons Attribution-NonCommercial (CC BY-NC 4.0). Veja em LICENSE para mais informações.


Feito com ❤️ por Guilherme Bezerra 👋 Entrar em contato!

About

📑☎️ API for managing (telephone) contacts.

Topics

Resources

License

Stars

Watchers

Forks