Skip to content

lucasmpimentel/astrum_backend_psel_xp

Repository files navigation

Novo Projeto

Astrum_backend

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.

Como fazer para rodar a aplicaçã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 ou npm 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/:clientIdTraz o saldo do cliente
  • /api/empresa Traz todas as empresas listadas na API externa
  • /api/cotacao/cd_acao/:codTraz 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/comprarFaz compra de ativos
  • /investimentos/venderFaz 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/transferenciaDisponibiliza a possibilidade de transferencia entre contas

Banco de dados

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

Database Diagram

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published