Visão Geral da Arquitetura

A aplicação segue o padrão de Arquitetura em Camadas (Layered Architecture), separando responsabilidades entre interface, regras de negócio, persistência de dados e testes, facilitando manutenção, escalabilidade e testabilidade.

Para a lista de serviços e repositórios por entidade, ver Modelo de componentes. Para as tabelas e relacionamentos do banco, ver Projeto do modelo de dados.

Tecnologias

Área Tecnologia
Frontend Streamlit
Backend Python
Integração API FIPE HTTP, biblioteca requests (API Parallelum FIPE v2)
Banco de Dados SQL
Testes automatizados Pytest
Metodologia Scrum (Jira)
Modelagem Fluxograma no Miro

Estrutura do Projeto (base)

projeto-cotacao/
├── .env
├── .env.example
├── README.md
├── requirements.txt
├── pytest.ini
├── app.py                          # Ponto de entrada Streamlit (streamlit run app.py)
│
├── config/                         # Core / infra
│
├── auth/                           # Autenticação e autorização
│
├── domain/                         # (Opcional) Modelos/entidades em memória
│
├── repos/                          # Camada de persistência (um arquivo por entidade ou agrupamento)
│
├── services/                       # Camada de serviço (regras de negócio, orquestração)
│   └── fipe_service.py             # Integração API FIPE (referências, marcas, modelos, preço)
│
├── pages/                          # Interface Streamlit (uma página por "tela" ou papel)
│
├── ui/                             # Componentes de UI reutilizáveis
│
├── migrations/                     # (Opcional) Scripts SQL de migração
│
├── scripts/                        # Scripts úteis (seed, batch manual, etc.)
│
└── tests/                          # Testes automatizados (pytest)

Descrição das pastas

Pasta Função
app.py Ponto de entrada da aplicação; executar com streamlit run app.py.
config/ Configurações e infraestrutura (variáveis de ambiente, conexão com banco, etc.).
auth/ Autenticação e autorização (login, perfis, permissões).
domain/ (Opcional) Modelos/entidades em memória.
repos/ Camada de persistência; um arquivo por entidade ou agrupamento (DAO/Repository).
services/ Camada de serviço; regras de negócio e orquestração. Inclui fipe_service.py (cliente da API FIPE).
pages/ Páginas Streamlit; uma página por tela ou papel.
ui/ Componentes de interface reutilizáveis.
migrations/ (Opcional) Scripts SQL de migração do banco.
scripts/ Scripts auxiliares (seed, batch manual, etc.).
tests/ Testes automatizados (pytest).

Observação técnica – API FIPE

  • Uso da API Parallelum FIPE v2 (parâmetro de referência mês/ano).
  • A API pública tem limite de uso; marcas/modelos costumam estar disponíveis apenas para referências recentes.
  • Para histórico maior ou maior volume de consultas, pode ser necessário token ou serviço pago (ex.: fipe.online).

This site uses Just the Docs, a documentation theme for Jekyll.