Esse backend é a base de toda a aplicação, o Astrum é uma aplicação de carteira digital com investimentos em ações, um desafio técnico maravilhoso que me foi proposto pela XP Inc.
Ainda com pequenas funções a serem implementadas:
- cadastro CORRETO de usuários
- depósito via Boleto e Pix.
Para construir essa aplicação foram utilizadas as seguinte tecnologias:
- NodeJS
- Express
- TypeScript
- Sequelize
- PostgresDB
- Docker
Para padronização de código foi utilizado ESLint somado ao Prettier, entre outras bibliotecas que também somaram ao longo da aplcação.
- Após clonar o repositório é necessário rodar o
npm install
- Utilizar o comando
docker compose up -d
para executar o container que contem o banco de dados - Após subir o container é necessário iniciar o banco de dados com o comando
npx sequelize db:create
- Continuar com as migrations com o comando
npx sequelize db:migrate
- E popular o banco de dados com o comando
npx sequelize db:seed:all
- Como plus para o gerenciamento do banco de dados o docker compose possui o pgAdmin que pode ser acessado através da porta 8080
- Para iniciar o servidor basta executar
npm start
ounpm run debug
- Os acessos do banco de dados estão dentro do arquivo
docker-compose.yml
As requisições podem ser feitas nas seguinte rotas:
- Requisições GET
/cliente/:id
Traz o perfil do cliente/ativos/cliente/:clientId
Traz os ativos que o cliente possui/ativos
Traz os ativos disponíveis/ativos/:id
Traz ativos baseando no id/conta/:clientId
Traz o saldo do cliente/api/empresa
Traz todas as empresas listadas na API externa/api/cotacao/cd_acao/:cod
Traz as contações de um determinado ativo a partir de seu código
- Requisições POST
/login
Responsável pelo login no sistema/cadastro
Responsável pelo cadastro na plataforma (Em Construção)./investimentos/comprar
Faz compra de ativos/investimentos/vender
Faz venda de ativos/conta/deposito
Responsável por gerar meios de depósito na conta (Em Construção)/conta/saque
Disponibiliza Saques para o usuário/conta/transferencia
Disponibiliza a possibilidade de transferencia entre contas
- Também é possível conferir toda a documentação dos endpoints no postman
- https://documenter.getpostman.com/view/20776481/UzXKXeWU
Segue abaixo uma ilustração de como foi montado o banco de dados e todos os relacionamentos. As tabelas abaixo são:
- Users: Dados de Clientes.
- Wallets: Dados das Carteiras(contas).
- UserShares: Dados dos ativos dos clientes.
- Sharetrades: Movimentações de ativos.
- Transactions: Transações financeiras que não envolvem ativos