Aplicacao web para monitoramento inteligente de precos com stack principal em Next.js, TypeScript, Tailwind CSS, Prisma, SQLite e Recharts.
Escopo inicial:
- Uma categoria (ex.: suplementos).
- Conector Mercado Livre (API oficial).
- Conector de dados estruturados (JSON-LD/structured data) para 2-3 lojas.
- Histórico básico (menor preço hoje, média da semana, tendência subiu/baixou).
- Tela simples com ranking por preço total estimado (produto + frete).
Fora de escopo:
- Cobertura ampla de lojas
- Scraping headless generalizado
- Otimizações avançadas de custo/performance
src/
connectors/
mercado-livre/
structured-data/
headless-scraper/
core/
normalization/
ranking/
history/
alerts/
jobs/
interfaces/
api/
web/
infra/
db/
tests/
smoke/
- Cadastro de produtos monitorados.
- Integração com Mercado Livre.
- Parser de structured data.
- Persistência e snapshots de preço.
- Tela de comparação com histórico simples.
- Alerta “baixou de X”.
- Deploy inicial.
test -f README.md
test -d src/connectors/mercado-livre
test -d src/connectors/structured-data
test -d src/core/normalization && test -d src/core/history
test -d src/interfaces/api && test -d src/interfaces/web
test -d src/infra/db && test -d tests/smokeDefinir o contrato de busca (query, categoria) e o contrato de resposta normalizada (produto, loja, preco, frete, preco_total, link, coletado_em) antes da implementação dos conectores.
O repositório inclui um MVP local com:
- Next.js App Router
- Prisma + SQLite
- seed deterministico com observacoes brutas, pipeline de normalizacao e 45 dias de historico gerado automaticamente
- dashboard em
/ - comparacao em
/comparacao - detalhe de produto em
/produtos/<id> - logica de negocio portada do MVP validado anteriormente
- base de automacao para ingestao continua, eventos externos e sinais preditivos cautelosos
npm install
npm run db:generate
npm run db:reset
npm run devAbra http://localhost:3000.
npm test
npm run buildFluxo previsto da plataforma:
collect: novas observacoes entram emRawPriceObservationnormalize: o sistema tenta parear a observacao com umProductcanonicopersist: observacoes normalizadas viramPriceRecordanalyze: o sistema recalcula sinais cautelosos emPredictionSignal- eventos externos em
ExternalEventpodem ser materializados comoMarketFactor
A implementacao anterior em Python foi preservada em legacy/python/ apenas como referencia de migracao de dominio.