Skip to content

Uma aplicação que representa operações de investimento de ações do mercado financeiro e com algumas funcionalidades de uma conta digital.

Notifications You must be signed in to change notification settings

gricar/API-services-contract-XP

Repository files navigation

Bem-vindo a API de contratos de serviços financeiros da XP !

Descrição

É uma aplicação que representa operações de investimento de ações do mercado financeiro e com algumas funcionalidades de uma conta digital.

Principais funcionalidades ✨

As principais responsabilidade desta API estão relacionadas a integração com o banco de dados, seguindo os princípios do REST, com as requisições feitas baseados nos endpoints:

Caminho Responsabilidade
/investments/assets Listar todos ativos relacionados as corretoras e quantidade disponíveis para negociação
/investments/assets/:ticker Lista o ativo e as respectivas corretoras que tenham disponíveis para negociação
/investments/assets/client/:code Lista todos ativos da carteira do cliente nas respectivas corretoras
/investments/buy Enviar ordem de compra do ativo
/investments/sell Enviar ordem de venda do ativo
/banking/conta Listar de todos clientes os saldos e suas correspondentes corretoras
/banking/conta/:clientCode Lista o cliente e os respectivos saldos em suas corretoras
/banking/conta/deposito Realizar depósito na conta corrente
/banking/conta/saque Realizar saque da conta corrente
/login Realizar login na aplicação para gerar o token de autenticação
Tecnologias utilizadas 👨‍💻
Executando o projeto 🌐
  • É necessário ter o Docker e o Docker Compose instalado em sua máquina.

  • Clone o projeto: git clone git@github.com:gricar/API-services-contract-XP.git.

  • Entre na pasta do projeto: cd API-services-contract-XP.

  • Instale as dependências: npm install.

  • Execute o script para iniciar o Docker Compose: npm run compose:up.

  • Esses serviços inicializarão dois containeres: api-services-contract e services-contract-db.

  • Execute o script npm run prestart para acessar o terminal do container.

  • Execute o script npm run db:reset para restaurar o banco de dados.

  • Execute o script npm run dev para executar a aplicação.

  • Após um tempo, os contêineres estarão prontos e você poderá acessar o projeto em: http://localhost:3002

  • Para desligar os containers, utilize o script: npm run compose:down

Obs: A aplicação contém dados fictícios de usuários, ativos financeiros e saldos bancários.

Tomadas de decisão 💡
  1. Definir a linguagem de programação para desenvolvimento da aplicação (TypeScript).
  2. Optado por utilizar contêineres (Docker) para criar ambientes isolados dentro de um servidor.
  3. Utilizado o ESLint para padronização do código e redução de erros. É feito uma validação no código sempre que tem-se um novo pull request ou push na branch.
  4. Estruturar o DER (Diagrama de Entidade e Relacionamento) da aplicação baseado nas variáveis que cada tabela poderia ter.
  5. Desenvolver a aplicação utilizando POO (Programação Orientada a Objeto) e ORM (Mapeamento de Objeto-Relacional).
  6. Arquitura MSC (Models - Services - Controllers).
  7. Biblioteca para tratamento de erros (express-async-errors).
  8. Rotas para serviços de Investimentos e Bancos.
  9. Rotas que exigem autenticação com JWT (JSON Web Token).

About

Uma aplicação que representa operações de investimento de ações do mercado financeiro e com algumas funcionalidades de uma conta digital.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published