Este projeto implementa uma API REST completa para gerenciamento de despesas pessoais, utilizando Node.js, Fastify.
Login com validação de credenciais (usuário e senha). Geração de token JWT para autenticação em requests subsequentes.
Create:
- Cadastro de nova despesa com os campos:
- Descrição (máximo 191 caracteres).
- Data (não pode ser futura).
- Valor (não negativo).
- Usuário (ID do usuário logado).
- Validação dos dados informados.
- Todas as despesas do usuário logado.
- Validação do ID da despesa para consulta.
- Retorno das despesas consultadas.
- Node.js
- Fastify
- Biblioteca de autenticação (JWT, Passport)
- Jest
Clone o repositório.
git clone git@github.com:enicio/expense-cad.git
A maneira mais rápida de executar esse projeto é atraves do docker.
docker compose up
Instale as dependências
npm install
Realize o build do projeto
npm run build
Inicie o projeto
npm run start
Execução dos testes
npm run tests
Teste a API utilizando ferramentas como Postman ou Insomnia.
POST http://localhost:3333/users
Corpo da requisição
{
"name": "Mathilda",
"email": "mathilda@chata.com",
"password": "123456"
}
POST http://localhost:3333/users/authenticate
{
"email": "mathilda@chata.com",
"password": "123456"
}
- Essa etapa responde com um token de autenticação que dever ser usado nas rotas de criação de despesas e buscar despesas
- Necessário informar o token de autenticação
POST http://localhost:3333/expense
{
"amount": 12000,
"description": "comoprar uma kombi",
"date": "2021-10-10"
}
- Necessário informar o token de autenticação