8000 GitHub - UdsonWillams/challenge-bravo: Backend code challenge
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

UdsonWillams/challenge-bravo

 
 

Repository files navigation

Challenge Bravo

projeto de um webservice em FastApi

Python Version Coverage FastApi Coverage

Criado em Python e junto ao framework FastApi e utilizando o banco de dados MongoDB

Pacotes

Segue a lista de pacotes utilizados no projeto.

Package Version
FastApi 0.109.2
Uvicorn 0.27.1
Pydantic 2.6.1
Httpx 0.26.0
Pymongo 4.6.1
Redis 5.0.3

Intuito do projeto:

O produto criado foi feito como desafio proposto pela empresa Hurb. A ideia é poder fazer conversões de moedas, como também poder criar novas, deletar, atualizar e fazer conversões com moedas já utilizadas.

Casos de Uso:

Utilizamos o dolar como moeda de lastro, logo novas moedas deveram especificar o seu valor em relação ao dolar em sua criação.

Para fazermos uma conversão:

{
	"from": "USD",  // Dessa moeda
    "to": "BRA",    // coverta pra essa moeda
    "amount":100    // Esse valor
}

Para criarmos uma moeda precisamos:

  • Passar os seguintes valores no body do endpoint: [POST]/api/v1/currency/{acronym-desejado}
{
	"acronym": "string",
	"name": "string",
	"dolar_price_reference": 5
    // valor com referencia ao dolar, como explicado acima.
}

Para atualizarmos uma moeda precisamos:

  • Passar os seguintes valores no body do endpoint: [PUT] /api/v1/currency/{acronym-desejado}
{
    "acronym": "new-value",
	"updated_at": "29/05/2024, 17:10:21",
	"name": "new-currency",
	"dolar_price_reference": 5
    // valor com referencia ao dolar, como explicado acima.
}

Para deletarmos uma moeda precisamos:

  • chamar o endpoint: [DELETE] /api/v1/currency/{acronym-desejado}

Instalação:

Etapas para uso em desenvolvimento:

  1. Com seu ambiente python, instale a lista de pacotes.
pip install -r requeriments-dev.txt
  1. Após ter instalado as bibliotecas necessarias utilize do comando:
docker compose up
  1. Com isso o projeto já estará funcionando.

  2. (Optional) Caso não queira subir com docker compose é possivel utilizar o comando:

uvicorn app.main:app

Isso fará com que o banco de dados utilizado não seja instanciado mas possibilitando o funcionamento do projeto.

About

Backend code challenge

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 96.7%
  • Dockerfile 2.0%
  • Other 1.3%
0