Para executar o projeto, utilize as ferramentas descritas na sessão Ferramentas.
- VsCode - IDE para desenvolvimento.
- Git - Ferramenta de versionamento de código
- Nodejs - Ambiente de execução do Javascript
- Rest API with Javascript - API com Javascript.
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.
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.
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.
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.
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. |
{
id: int,
name: string,
email: string,
password: string,
}
{
id: int,
name: string,
user_id: int
}
{
id: int,
description: string,
type: enu[I || O],
date: DATE,
amount: decimal,
status: boolean,
acc_id int
}
{
id: int,
description: string,
date: Date,
amount: decimal,
acc_origin_id: int,
acc_destiny_id: int,
user_id: int
}
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