Skip to content

kaycke1337/pricinganalysis-api

Repository files navigation

📈 Pricing Analysis API

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.

Stack Tecnológico

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.

🧠 Funcionalidades Principais

  1. Extração e Transformação: Endpoints que vasculham tabelas com dados históricos e usam pandas por trás dos panos pra extrair insights rápidos (médias móveis, estatísticas de preços em determinados cortes de tempo).
  2. Simulador de Margem (Core): A API tem uma rota POST que recebe um payload indicando novos custos ou aumento em % e avalia qual tem que ser a nova precificação para manter uma margem desejada.
  3. CRUD Rest para Produtos e histórico na base.

⚙️ Como testar na sua máquina

Pra rodar local, segue aquele padrão de sempre de projetos Python:

  1. Clone o repositório:

    git clone https://github.com/kaycke1337/pricinganalysis-api.git
    cd pricinganalysis-api
  2. 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
  3. Instala as dependências:

    pip install -r requirements.txt
  4. Deixei um script pronto pra popular o banco e a gente não testar no vazio:

    python seed.py
  5. 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

🚧 Próximos Passos (A famosa lista do que dá pra melhorar)

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! 💻✨

About

API em Python para análise de preços, com foco em organização, escalabilidade e processamento de dados.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages