Skip to content

💰 Uma API para gerenciamento de transações pessoais desenvolvida durante as aulas do módulo de NodeJS da Rocketseat

Notifications You must be signed in to change notification settings

Azanniel/api-rest-nodejs-fastify

Repository files navigation

💰 Uma aplicação de uma API Rest para gerenciamento de transações pessoais ajudando na gestão de gastos

Tecnologias   |    Projeto   |    Requisições   |    Anotações das aulas   |    Contatos

✨ Tecnologias

Esse projeto foi desenvolvido com as seguintes tecnologias:

  • NodeJS
  • Typescript
  • Fastify
  • Vitest
  • Supertest
  • Knex (SQLite e Postgresql)
  • TSUP
  • ESBuild

🧪 Projeto

Nesse módulo do Ignite NodeJS desenvolvemos uma API RestFull com Nodejs para gerenciamento de transações onde um usuário pode criar uma transação com um valor específico, seja ela de débito ou crédito. O usuário pode cadastrar uma transação de adição de valor ou retirada de valor.

Além disso, é possível utilizar dos endpoints para listar todas as transações, buscar uma transação específica e gerar um resumo das transações mostrando a soma dos valores.

🤿 Requisições

Abaixo todos os exemplos de requisições usadas no projeto.

Run in Insomnia}

📋 Anotações das aulas

Cookies

É uma forma de manter contexto entre requisições. Utilizamos principalmente por redes sociais. Também usado como forma de armazenar informações sem o usuário estar logado ou ter criado uma conta ainda.

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 as transações que já ocorreram;
  • O usuário deve poder visualizar uma transação única;

Regras de Negócio

  • A transação pode ser do tipo crédito que somará ao valor total, ou débito que subtrairá;
  • Deve ser possível identificarmos o usuário entre as requisições;
  • O usuário só pode visualizar transações o qual ele criou;

Sobre os testes

  • Unitários: Testam uma unidade isolada da aplicação
  • Integração: Testam a comunicação entre duas ou mais unidades da aplicação
  • E2E (Ponta a ponta): Simulam um usuário operando na nossa aplicação

Para os testes E2E:

No Frontend seria exatamente a ação do usuário de abrir uma página de login por exemplo e realizar todas as operações para se autenticar na aplicação.

No backend é testado as portas de comunicação com a aplicação, desde a requisição até o banco de dados. Seja por meio de protocolo HTTP ou WebSockets

Melhores opções de Deploy [14/04/2023]

☕ Contatos

Você vai me encontrar em qualquer uma das redes sociais abaixo:

Aplicação construída com muito ☕ por Leandro Azanniel