Skip to content

Latest commit

 

History

15 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

apps

Ferramentas estáticas (client-side) de Janilo Saraiva, servidas via Cloudflare Pages em https://apps.pereirasaraiva.com.

Cada pasta é um app independente que roda 100% no navegador, sem servidor:

App Caminho O que é
RiskJud /riskjud Precificação de risco LGPD (indenização + multa ANPD), calibrada contra dados reais de tribunal brasileiro.

A raiz (index.html) é a página-hub que lista os apps.

Estrutura

/                 página-hub
/riskjud/         RiskJud (index.html + model.mjs + data.json)

Deploy

Estático, sem build. O Cloudflare Pages serve o repositório direto. Para publicar manualmente:

npx wrangler pages deploy . --project-name=riskjud

Testes

O modelo do RiskJud (riskjud/model.mjs) é matemática pura e determinística, calibrada contra jurisprudência e exportada a conselho via PDF — então tem rede de teste. Sem build e sem dependências, pelo runner nativo do Node (18+):

node --test riskjud/model.test.mjs

Cobre: determinismo, teto do Art. 52 (R$ 50M), faturamento = 0 ⇒ multa = 0, monotonicidade (mais maturidade ↓ risco de vazamento; mais usuários ↑ litígio), efeito do investimento na exposição, e a âncora de calibração (taxa_procedencia sai do data.json, não do código).

Como criar um app (o molde)

Cada app novo nasce seguindo estas convenções — são elas que mantêm a fatia limpa (não copie um app existente sem conferi-las):

  1. Pasta própria (/meu-app/) com index.html + model.mjs + data.json + model.test.mjs (+ CALIBRACAO.md se houver dado calibrado).
  2. model.mjs é puro: exporta UMA função (params, data) => resultado, sem DOM, rede, Date ou Math.random. Toda grandeza que a tela exibe sai pronta do modelo — a view só formata (brl, fmtPct), nunca calcula número de negócio.
  3. data.json é a calibração: valores medidos, constantes legais e referências de mercado moram no JSON (com _meta: versão, coleta, período), nunca no .mjs. A origem/método de cada número fica num CALIBRACAO.md ao lado; a prosa do HTML injeta os números do JSON (atributos data-dj), não os digita.
  4. model.test.mjs com node --test (zero deps): determinismo, monotonicidades, tetos e um caso-âncora contra o data.json. O CI roda node --test na raiz — teste novo entra de graça.
  5. Cores via var(--brand-*) de ../site-chrome.css — nenhum hex no app; gráficos (Plotly etc.) leem os tokens com getComputedStyle(document.documentElement).

Referência viva das 5 convenções: /riskjud.

About

Apps de demonstração de método (IA aplicada a negócio); hub em apps.pereirasaraiva.com — inclui o RiskJud (risco LGPD)

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages