Loading repository data…
Loading repository data…
Douglas-marcal / repository
Repositório responsável por armazenar o código do desafio técnico XP Inc.
Este projeto contém apenas o Backend da aplicação. Onde simula um aplicativo de investimento em ações, com algumas funcionalidades de conta digital.
Durante o planejamento do projeto, escolhi utilizar NodeJS com TypeScript para dar segurança ao desenvolver o código por causa das tipagens. O banco de dados inicial foi utilizado o MySQL e posteriormente foi migrado para PostgreSQL para tentar realizar o deploy da aplicação, sem sucesso até o momento. Comecei usando Sequelize como ORM e decidi alterar para o Prisma ORM por conta de que sua documentação é detalhada e específica para TypeScript. Utilizei Jest para os testes unitários e Docker para containerizar a aplicação. A biblioteca bcrypt foi utilizada para criptografar a senha e a biblioteca JWT para fazer autenticação. O projeto está com a arquiterura MSC(Model-Service-Controller) para separar as responsabilidades de cada camada.
Os momentos mais desafiadores foram implementar o Docker na aplicação, realizar os testes unitários e fazer o deploy da aplicação. O deploy foi o único desafio não superado, houve várias tentativas, mas todas sem sucesso.
| Método | Endpoint |
|---|---|
POST | /conta/registrar |
POST | /conta/entrar |
POST | /conta/deposito |
POST | /conta/saque |
GET | /conta/ativos |
GET | /conta/saldo |
GET | /ativos |
GET | /ativos/:CodAtivo |
POST | /ativos/registrar |
POST | /investimentos/comprar |
POST | /investimentos/vender |
Pelo terminal, clone este repositório com o comando:
git clone git@github.com:Douglas-marcal/desafio-tecnico-xp.gitEntre no diretório desafio-tecnico-xp e logo em seguida no diretório backend:
cd desafio-tecnico-xp/backendInstale as dependências:
npm installPara subir a tabela e popular alguns ativos pré-definidos no banco de dados:
npx prisma migrate devPara subir um servidor Node:
npm run devPelo terminal, clone este repositório com o comando:
git clone git@github.com:Douglas-marcal/desafio-tecnico-xp.gitEntre no diretório desafio-tecnico-xp e logo em seguida no diretório backend:
cd desafio-tecnico-xp/backendSuba o container com o comando:
docker-compose up -dAcesse o terminal do container com o comando:
docker exec -it desafio_tecnico_xp bashDentro do container, instale as dependências:
npm installPara subir a tabela e popular alguns ativos pré-definidos no banco de dados:
npx prisma migrate devPara subir um servidor Node:
npm run devnpm testNeste exemplo a porta 3333 será utilizada

POST /conta/registrarPOST /conta/entrarPara fazer o login é necessário informar o email e senha cadastrados no Endpoint de registro.
header a chave Authorization com o valor do token recebido ao efetuar o loginPOST /conta/depositoPOST /conta/saqueGET /conta/saldoGET /conta/ativosGET /ativosGET /ativos/:CodAtivoPOST /ativos/registrarPOST /investimentos/comprarPOST /investimentos/vender