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).
- Host: GitHub
- URL: https://github.com/gbdsantos/nodejs-contactcraft
- Owner: gbdsantos
- License: other
- Created: 2025-03-21T01:19:16.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2025-03-27T00:40:16.000Z (7 months ago)
- Last Synced: 2025-03-27T01:32:20.933Z (7 months ago)
- Topics: 2025, express, mysql, nodejs, prisma
- Language: TypeScript
- Homepage:
- Size: 82 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
☎️ ContactCraft
## 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)