I-Lima / Estribado-Broker-API

Repositório com o desafio do mandacaru.dev // Repository for the mandacaru.dev challenge

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Estribado Broker

Don't speak portuguese? Click here to view this page in English

Transformando investidores estribados em mestres do mercado financeiro

Sumário

Descrição

A Mandacaru Broker API é uma aplicação Spring Boot que fornece operações CRUD (Create, Read, Update, Delete) para gerenciar informações sobre ações (stocks).

O que é um Home Broker ?

Um Home Broker é uma plataforma online que permite aos investidores comprar e vender ativos financeiros, como ações, opções, títulos públicos, entre outros, diretamente pela internet. Através dele, os investidores podem acessar informações de mercado em tempo real, analisar gráficos, executar ordens de compra e venda, monitorar suas carteiras de investimentos, entre outras funcionalidades, tudo de forma online.

Se deseja aprender mais sobre o Homebroker e como ele funciona, acesse o Hub de educação da B3 (bolsa de valores brasileira): Como operar com o Homebroker

Desenvolvedores

O projeto foi elaborado em colaboração pelos seguintes desenvolvedores:


Ingrid Lima

Wesley Maciel

João Paulo

Moisés Oliveira

Recursos

Login no sistema

Efetua o login no sistema.

Endpoint:

POST /auth/login

Respostas:

200: Login bem-sucedido
400: Credenciais inválidas
401: Usuário não registrado

Registro no sistema

Efetua o registro no sistema.

Endpoint:

POST /auth/register

Respostas:

200: Registro bem-sucedido
409: Usuário já registrado

Excluir registro no sistema

Exclui o registro no sistema.

Endpoint:

DELETE /auth/{id}

Respostas:

200: Exclusão bem-sucedida

Obter todos os Exchange Traded Funds

Retorna todos os Exchange Traded Funds disponíveis.

Endpoint:

GET /etf

Obter um Exchange Traded Fund específico

Retorna os detalhes de um Exchange Traded Fund específico com base no ID fornecido.

Endpoint:

GET /etf/{id}

Registrar um Exchange Traded Fund

Registra um novo Exchange Traded Fund com base nos dados fornecidos.

Endpoint:

POST /etf/register

Atualizar um Exchange Traded Fund

Atualiza os detalhes de um Exchange Traded Fund específico com base no ID fornecido.

Endpoint:

PUT /etf/{id}

Excluir um Exchange Traded Fund

Exclui um Exchange Traded Fund específico com base no ID fornecido.

Endpoint:

DELETE /etf/{id}

Listar todos os investimentos

Retorna uma lista de todos os tipos de investimentos disponíveis.

Endpoint:

GET /assets

Registrar um novo investimento

Cria um novo investimento com base nos dados fornecidos.

Endpoint:

POST /assets/register

Respostas:

200: Registro bem-sucedido

Excluir um investimento

Exclui um investimento específico com base no ID fornecido.

Endpoint:

DELETE /assets/{id}

Respostas:

200: Exclusão bem-sucedida

Listar todos os fundos imobiliários

Obtém todos os fundos imobiliários cadastrados.

Endpoint:

GET /ref

Obter um fundo imobiliário específico

Obtém os detalhes de um fundo imobiliário específico com base no ID.

Endpoint:

GET /ref/{id}

Registrar um novo fundo imobiliário

Registra um novo fundo imobiliário com base nos dados fornecidos.

Endpoint:

POST /ref/register

Atualizar um fundo imobiliário específico

Atualiza os detalhes de um fundo imobiliário específico com base no ID.

Endpoint:

PUT /ref/{id}

Excluir um fundo imobiliário específico

Exclui um fundo imobiliário específico com base no ID.

Endpoint:

DELETE /ref/{id}

Respostas:

200: Exclusão bem-sucedida

Listar todos os registros

Retorna um array de objetos com todos os registros disponíveis.

Endpoint:

GET /stocks

Listar um registro

Retorna os detalhes de um registro específico com base no ID.

Endpoint:

GET /stocks/{id}

Criar um novo registro

Cria um novo registro com base nos dados fornecidos.

Endpoint:

POST /stocks

Corpo da Solicitação (Request Body):

{
  "symbol": "BBAS3",
  "companyName": "Banco do Brasil SA",
  "price": 56.97
}

Atualizar um registro

Atualiza os detalhes de um registro específico com base no ID.

Endpoint:

PUT /stocks/{id}

Corpo da Solicitação (Request Body):

{
  "symbol": "BBAS3",
  "companyName": "Banco do Brasil SA",
  "price": 56.97
}

Excluir um registro

Exclui um registro específico com base no ID.

Endpoint:

DELETE /stocks/{id}

Listar todos os ativos

Obtém todos os ativos.

Endpoint:

GET /treasury

Obter um ativo específico

Obtém detalhes de um ativo específico com base no ID.

Endpoint:

GET /treasury/{id}

Registrar um ativo

Registra um novo ativo com base no dados fornecidos

Endpoint:

POST /treasury/register

Atualizar um ativo

Atualiza os detalhes de um ativo específico com base no ID.

Endpoint:

PUT /treasury

Excluir um ativo

Exclui um ativo específico com base no ID.

Endpoint:

DELETE /treasury/{id}

Login do usuário no sistema

Realiza o login de um usuário com base nas informações fornecidas.

Endpoint:

POST /user/login

Respostas:

200: Login bem-sucedido
400: Usuário não registrado
401: Credenciais inválidas

Cadastro de usuário no sistema

Registra um novo usuário com base nas informações fornecidas.

Endpoint:

POST /user/register

Respostas:

200: Cadastro bem-sucedida
409: Username já está em uso

Atualizar usuário no sistema

Atualiza as informações de um usuário específico com base no ID fornecido.

Endpoint:

PUT /user/{id}

Respostas:

200: Atualização bem-sucedida
404: Usuário não encontrado

Exclusão de usuário no sistema

Exclui um usuário específico com base no ID fornecido.

Endpoint:

DELETE /user/{id}

Respostas:

200: Exclusão bem-sucedida
404: Usuário não encontrado

Collection do Postman

A coleção a seguir compreende todas as rotas configuradas, juntamente com seus testes de API correspondentes já implementados.

Link para download

Swagger

O Swagger é uma ferramenta de código aberto que permite documentar APIs de forma clara e interativa. Esta interface facilita a compreensão e integração com a Mandacaru Broker API.

http://localhost:8080/swagger-ui/index.html#/

Testes

Este repositório foi submetido a uma análise estática utilizando as ferramentas Checkstyle, SonarQube e SonarLint. Além disso, possui casos de teste implementados em testes unitários, organizados por classes, bem como um teste de integração que verifica as operações CRUD da API.

Passo-a-passo de como configurar o ambiente

  1. Clone o repositório: git clone https://github.com/I-Lima/Mandacaru-Broker-API.git

  2. Importe o projeto em sua IDE preferida.

  3. Para executar o banco de dados no Docker, utilize o comando a seguir:

    docker-compose up -d
  4. Execute o aplicativo Spring Boot.

  5. Acesse a API em http://localhost:8080.

Requisitos

  • Java 11 ou superior
  • Maven
  • Banco de dados
  • Docker

Tecnologias Utilizadas

  • Spring Boot
  • Spring Data JPA
  • Maven
  • JUnit
  • Mockito
  • JaCoCo
  • Checkstyle
  • SonarQube
  • SonarLint
  • PostgresSQL
  • Docker
  • Docker Compose

Contribuições

Contribuições são bem-vindas!

Licença

Este projeto está licenciado sob a Licença MIT.

About

Repositório com o desafio do mandacaru.dev // Repository for the mandacaru.dev challenge


Languages

Language:Java 100.0%