An open API service indexing awesome lists of open source software.

https://github.com/gbdsantos/nodejs-contactcraft

📑☎️ API para gerenciamento de contatos(telefônicos).
https://github.com/gbdsantos/nodejs-contactcraft

2025 express mysql nodejs prisma

Last synced: 3 months ago
JSON representation

📑☎️ API para gerenciamento de contatos(telefônicos).

Awesome Lists containing this project

README

          



☎️ 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:

```bash
# 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](https://marketplace.visualstudio.com/items?itemName=humao.rest-client "REST Client para Visual Studio Code") 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)

- [x] Criar contato (nome e telefone);
- [x] Listar todos os contatos;
- [x] Atualizar contato;
- [x] Excluir contato.

## Requisitos de Negócio (RN)

- [x] Nome: Mínimo de duas palavras, cada uma com pelo menos 3 letras.

## Requisitos Não Funcionais (RNF)

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


## Milha extra

- [x] Documentação da API com Swagger
- [x] 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](https://github.com/gbdsantos/nodejs-contactcraft/blob/main/LICENSE) para mais informações.

---

Feito com ❤️ por **Guilherme Bezerra** 👋 [Entrar em contato!](https://www.linkedin.com/in/gbdsantos)