Esse é um projeto que criei para praticar e aplicar conceitos de Ciência de Dados e Desenvolvimento Web Backend que venho estudando na faculdade. A ideia principal aqui é construir uma API Restful capaz de consumir dados históricos de preços, fazer transformações matemáticas e rodar simulações de cenários de precificação.
Escolhi um stack moderno para explorar performance e praticidade na manipulação de dados:
- Python 3: A linguagem do coração pra estruturar o backend e a lógica de dados
- FastAPI: Bizarramente rápido! Achei muito melhor estruturar a API com ele do que com Flask, principalmente por conta da documentação automática e a validação tipada.
- Pandas: A estrela principal! Usei para lidar com as transformações, cálculos de médias móveis e a lógica matemática de previsão e simulação dos cenários de preços.
- SQLAlchemy (SQLite): O famoso ORM. No momento está com SQLite só pra facilitar a prototipação e não precisar subir um Docker no meio da madrugada pra testar.
- Pydantic: Cuidando da validação dos dados das requisições e respostas.
- Extração e Transformação: Endpoints que vasculham tabelas com dados históricos e usam
pandaspor trás dos panos pra extrair insights rápidos (médias móveis, estatísticas de preços em determinados cortes de tempo). - Simulador de Margem (Core): A API tem uma rota
POSTque recebe um payload indicando novos custos ou aumento em % e avalia qual tem que ser a nova precificação para manter uma margem desejada. - CRUD Rest para Produtos e histórico na base.
Pra rodar local, segue aquele padrão de sempre de projetos Python:
-
Clone o repositório:
git clone https://github.com/kaycke1337/pricinganalysis-api.git cd pricinganalysis-api -
Cria sua virtual env (boas práticas não matam ninguém):
python -m venv venv source venv/bin/activate # No Windows é: venv\Scripts\activate
-
Instala as dependências:
pip install -r requirements.txt
-
Deixei um script pronto pra popular o banco e a gente não testar no vazio:
python seed.py
-
Sobe o servidor brabo:
uvicorn main:app --reload
Aí a mágica acontece. O FastAPI gera a UI do Swagger pra gente brincar! É só abrir e testar todas as rotas de simulação por lá:
👉 http://127.0.0.1:8000/docs
Sempre tem onde aperfeiçoar, Coisas na minha wishlist pra quando der tempo entre uma prova e outra:
- Trocar o SQLite por um banco de verdade (PostgreSQL).
- Implementar testes mais pesados com
pytest - Meter tudo isso em um container do Docker para não ter o problema clássico de "na minha máquina funciona".
- Desenvolver um frontend simples para consumir e plotar uns gráficos.
Fiquem totalmente à vontade pra olhar o código e dar pitacos/sugestões na arquitetura. Toda crítica construtiva é super bem-vinda na rotina do estudante! 💻✨