Skip to content

Módulo 2 - Bootcamp de especialização em nodeJS (IGNITE) pela rocketseat. Uma aplicação criada em nodejs utilizando typescript, knex e testes e2e.

Notifications You must be signed in to change notification settings

RenanFachin/RS_IGNITE_api-rest-nodejs

Repository files navigation

Logo Explorer

API REST com NodeJS


API REST com NodeJS

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

Requisitos Funcionais

  • 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;

Regras de negócio

  • 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;

Instalação

# 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

Insomnia do projeto

Run in Insomnia}

Testes e2e

Os testes foram desenvolvidos utilizando vitest e supertest

Rotas

  • 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

Ferramentas utilizadas

  • NodeJS
  • Fastify
  • Sqlite
  • Typescript
  • Knex
  • tsup
  • zod
  • vitest
  • eslint
  • supertest
  • dotenv

About

Módulo 2 - Bootcamp de especialização em nodeJS (IGNITE) pela rocketseat. Uma aplicação criada em nodejs utilizando typescript, knex e testes e2e.

Topics

Resources

Stars

Watchers

Forks