Skip to content

Moreira-Edu/TDD-auth-study

Repository files navigation

FinManager

Uma imagem relacionada ao projeto

Uma imagem relacionada ao projeto

Inicialização

Para executar o projeto, utilize as ferramentas descritas na sessão Ferramentas.

Ferramentas

  • VsCode - IDE para desenvolvimento.
  • Git - Ferramenta de versionamento de código
  • Nodejs - Ambiente de execução do Javascript

Links importantes

FinManager

Introdução

Projeto de gerenciamento de contas e transações financeiras com o objetivo de estudar TDD e Auth.

Este projeto possui o objetivo principal de estudar e compreender o desenvolvimento de uma aplicação web com conceitos sobre TDD e Auth.

Análise técnica

Descrição do ambiente técnico

O sistema é composto por um banco de dados, uma interface web e um sistema embarcado. Funcionalidades principais:

  • Gerenciamento de saldo de contas.
  • Cadastramento e listagem de contas do usuário.
  • gerenciamento de transferências entre conta.

As ferramentas utilizadas para o desenvolvimento incluem JavaScript que é uma linguagem de programação utilizada para desenvolvimento web principalmente, seja backend ou frontend. O query builder utilizado para a integração com o banco de dados foi o Knex . Postgresql atuando como sistema gerenciador de banco de dados relacional.

Regras de Negócio

Solicitação O cliente só fará o cadastramento e solicitação se estiver cadastrado e logado.

Alteração e deleção O cliente só fará a alteração e deleção das contas e transações relacionadas ao seu cadastro.

leitura do saldo O cliente só fará a leitura do saldo se estiver cadastrado e logado.

Casos de Uso

Login no sistema

Ao entrar no sistema pela primeira vez o usuário deve cadastrar suas informações. O usuário deverá informar seu e-mail e senha.

Mensagens internas

Rotas utilizadas pela aplicação web para executar metodos de POST e GET no banco de dados. Onde o retorno de cada uma das funções estara contido em uma sessão para renderização de páginas web.

Endpoints da aplicação.

accounts Funcionalidade
GET /accounts Informa todas as contas do usuário cadastradas no banco.
GET /accounts/:id Informa uma conta do usuário cadastrada no banco
POST /accounts Insere uma nova conta do usuário.
PUT /accounts/:id Atualiza uma conta do usuário cadastrada.
DELETE/accounts/:id deleta uma conta do usuário cadastrada
Transactions Funcionalidade
GET /transactions Informa todas as transações do usuário cadastradas no banco.
GET /transactions/:id Informa uma transação do usuário cadastrada no banco
POST /transactions Insere uma nova transação do usuário.
PUT /transactions/:id Atualiza uma transação do usuário cadastrada.
DELETE/transactions/:id deleta uma transação do usuário cadastrada
Transfers Funcionalidade
GET /transfers Informa todas as transferências do usuário cadastradas no banco.
GET /transfers/:id Informa uma transferência do usuário cadastrada no banco
POST /transfers Insere uma nova transferência do usuário.
PUT /transfers/:id Atualiza uma transferência do usuário cadastrada.
DELETE/transfers/:id deleta uma transferência do usuário cadastrada
Users Funcionalidade
GET /users Informa todos os usuários cadastrados no banco.
GET /users/:id Informa um usuário cadastrada no banco
POST /users Insere um usuário.
Auth Funcionalidade
POST /signin Cadastra um usuário no banco.
POST /signup Loga um usuário no Sistema.

Modelos de entidade

  • Users

{
  id: int,
  name: string,
  email: string,
  password: string,
}
  • Accounts

{
  id: int,
  name: string,
  user_id: int
}
  • Transactions

{
  id: int,
  description: string,
  type: enu[I || O],
  date: DATE,
  amount: decimal,
  status: boolean,
  acc_id int
}
  • Transfers

{
  id: int,
  description: string,
  date: Date,
  amount: decimal,
  acc_origin_id: int,
  acc_destiny_id: int,
  user_id: int
}

Script

start: start app server
test: run automatized tests
secure-mode: run automatized tests in watch mode
lint: warn and fix identation and code write rules

Conceitos básicos

  • TDD - TDD é um conceito que vem com a prática de desenvolvimento orientado a testes.
  • Auth - Conjunto de métodos e práticas que visam aumentar a segurança da API, protegendo o usuário e as regras de negócio.

About

Manager API for training TDD & auth concepts

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published