Este projeto é parte de um desafio de desenvolvimento de uma API para gestão de ativos financeiros. A API permite cadastrar e gerenciar ativos financeiros, bem como realizar pedidos de compra e venda desses ativos.
- Cadastro de ativos financeiros, incluindo informações como nome, descrição e preço.
- Listagem de todos os ativos cadastrados.
- Realização de pedidos de compra e venda de ativos, associando-os a um preço específico e status.
- Listagem de todos os pedidos de compra e venda realizados.
O projeto foi desenvolvido utilizando as seguintes tecnologias:
- Node.js: Plataforma de desenvolvimento JavaScript.
- Nest.js: Framework para desenvolvimento de APIs em Node.js.
- MongoDB: Banco de dados NoSQL para persistência dos dados.
- Prisma: ORM (Object-Relational Mapping) para interação com o banco de dados.
- Docker: Plataforma para criação e gerenciamento de containers.
Certifique-se de ter as seguintes ferramentas instaladas em seu ambiente de desenvolvimento:
- Node.js (versão 18.16.1)
- Docker
Siga estas etapas para configurar e executar o projeto em sua máquina local:
- Clone este repositório:
git clone https://github.com/guilhermealves-dev/nestjs-api-fullcycle-challenge-2.git
- Navegue até o diretório do projeto:
cd nestjs-api-fullcycle-challenge-2
- Execute o comando:
docker compose up
para iniciar o MongoDB mais a aplicação da API - O servidor estará acessível em:
http://localhost:3000
- Para fazer as chamadas para a API, instale a extensão
REST Client
no Visual Studio Code e abra o arquivoapi.http
, em seguida clique no botões Send Request - Alternativamente, também foi disponibilizado uma Collection do Postman no diretório:
../postman-collection/*
A API possui os seguintes endpoints para interação:
- URL:
/api/assets
- Método: GET
- Descrição: Retorna todos os ativos financeiros cadastrados.
- Resposta de Sucesso:
- Código: 200 (OK)
- Exemplo de Resposta:
[ { "id": "asset1", "symbol": "ASSET1" }, { "id": "asset2", "symbol": "ASSET2" } ]
- URL:
/api/assets
- Método: POST
- Descrição: Cadastra um novo ativo financeiro.
- Corpo da Requisição:
- Estrutura:
{ "id": "asset2", "symbol": "ASSET2" }
- Estrutura:
- Resposta de Sucesso:
- Código: 201 (Created)
- Exemplo de Resposta:
{ "id": "asset2", "symbol": "ASSET2" }
- URL:
/api/orders
- Método: GET
- Descrição: Retorna todos os pedidos de compra e venda realizados.
- Resposta de Sucesso:
- Código: 200 (OK)
- Exemplo de Resposta:
[ { "id": "6497b94aa2bac8111728bae3", "asset_id": "asset1", "price": 100, "status": "PENDING" }, { "id": "6497ba56a2bac8111728bae4", "asset_id": "asset2", "price": 500, "status": "PENDING" } ]
- URL:
/api/orders
- Método: POST
- Descrição: Cadastra um novo pedido de compra ou venda de ativo.
- Corpo da Requisição:
- Estrutura:
{ "asset_id": "asset2", "price": 100 }
- Estrutura:
- Resposta de Sucesso:
- Código: 201 (Created)
- Exemplo de Resposta:
{ "id": "6497ba56a2bac8111728bae4", "asset_id": "asset2", "price": 500, "status": "PENDING" }
Gostaria de expressar gratidão à Full Cycle pelos ensinamentos valiosos fornecidos durante essa semana da Imersão Full Stack. Agradeço por proporcionar a oportunidade de aprender e aplicar esses novos conhecimentos.