Projeto desenvolvido durante o módulo 2 do bootcamp de especialização em nodejs realizado junto a rocketseat.
Este módulo consiste em desenvolver uma aplicação de transações (criar, listar todas, listar específicas e um resumo de todas). Para desenvolver esta aplicação, foi utilizado o microframework Fastify, knex como query builder e typescript.
Além disto, foram desenvolvidos testes end to end para testar as rotas da aplicação.
Tópicos abordados: ESModule
, Typescript
, ESLint
, Banco de dados - Knex, migrations, querys
,Variáveis de ambiente
,Validação de dados - ZOD
, Fastify - Plugins, cookies e prehandlers
, Testes automatizados - Tipos de testes, vitest, supertest
, Build do projeto - TSUP
e Deploy da aplicação
- O usuário deve poder criar uma nova transação;
- O usuário deve poder obter um resumo da sua conta;
- O usuário deve poder listar todas transações que já ocorreram;
- O usuário deve poder visualizar uma trasnsação única;
- A transação pode ser do tipo crédito que somará ao valor total, ou débito subtrairá;
- Deve ser possível idenficar o usuário entre as requisições;
- O usuário só pode visualizar transações o qual ele criou;
# Faça o clone do repotório
git clone git@github.com:RenanFachin/RS_IGNITE_api-rest-nodejs.git
# Instalar as dependências do projeto
npm install
# Executando o projeto no ambiente de desenvolvimento
npm run dev
# Rodar as migrations do projeto para criar o banco de dados
npm run knex -- migrate:latest
Os testes foram desenvolvidos utilizando vitest
e supertest
- Criar nova transação
POST /transactions
- Listar todos usuários
GET /transactions
- Listar transação específica usuários
GET /transactions/:${transaction_id}
- Mostrar um resumo geral das transações do usuário
GET /transactions/summary
NodeJS
Fastify
Sqlite
Typescript
Knex
tsup
zod
vitest
eslint
supertest
dotenv