Protótipo navegável da plataforma operacional que a equipe Fórmula CEFAST apresentou na prova de Business Presentation da Fórmula SAE Brasil 2026.
Business Presentation é uma das provas estáticas da competição: a banca avalia o caso de negócio construído em torno do protótipo, não o desempenho do carro em pista. O cliente ("Cefast Company", uma fabricante de baixo volume e alta performance) é fictício e definido pela prova.
No ar: https://core-ia-iota.vercel.app
Isto é um protótipo de apresentação. Os quatro módulos abaixo são a arquitetura que propusemos para a banca; nenhum deles está implementado:
| Módulo | O que a proposta descreve |
|---|---|
| Flow | Sequenciamento de produção como flexible job-shop, resolvido por programação por restrições |
| Connect | Saúde da frota a partir de dados embarcados: detecção de anomalia, classificação e regras |
| Insight | Voz do cliente em português, com NLP e clusterização |
| Demand | Previsão de demanda, roteando o método conforme o perfil da série |
O que roda de verdade é a interface e a simulação por trás dela. Não há backend, modelo
treinado, nem chamada de rede em runtime. Os números que aparecem no protótipo são um
cenário alvo simulado, e docs/q-a-tecnico.md existe justamente para que ninguém da equipe
os apresentasse como medição sobre dado real.
Essa distinção é deliberada e foi mantida na apresentação. Vale repetir aqui porque um protótipo que finge ser sistema é o tipo de coisa que se desfaz na primeira pergunta.
Aplicação client-side em React e TypeScript, 58 arquivos em src/, seis telas.
Simulação determinística. Todo dado vem de um PRNG mulberry32 com seed derivada do
nome da série (src/sim/prng.ts). A cada carregamento os números são exatamente os mesmos,
o que torna a demonstração ensaiável: quem apresenta sabe qual valor vai aparecer na tela
antes de clicar. As séries são geradas em src/sim/forecast.ts por tendência, componente
sazonal e ruído gaussiano.
Funciona offline. É um PWA com assets pré-cacheados (vite-plugin-pwa, registerType: autoUpdate), instalável no celular e no laptop. A decisão veio do risco concreto de não
haver rede confiável no local do evento.
Sem estado remoto. Nenhuma variável de ambiente, nenhum banco, nenhum endpoint. O build é estático e publica em qualquer host.
Requer Node 18 ou superior.
npm install
npm run dev # http://localhost:5173npm run build # tsc -b && vite build, saída em dist/
npm run previewnpm testA suíte trava a garantia de determinismo, e nada além dela: mesma seed produz a mesma sequência, mesmo rótulo produz a mesma série, e o trecho previsto tem banda que alarga com o horizonte. Nenhum teste amarra valor de tela, porque esses precisam poder mudar sem quebrar nada. É a promessa do protótipo que está sob teste, não a aparência dele.
src/
screens/ seis telas: visao-geral, flow, connect, insight, demand, demo
components/ gráficos e primitivas de UI
sim/ PRNG determinístico, geração de séries e histórico (+ testes)
data/ cenário canônico: os números que a apresentação usa
hooks/ estado de navegação e do modo guiado
docs/
q-a-tecnico.md o que pode e o que não pode ser afirmado sobre cada módulo
produto.md o briefing de produto e para quem a interface foi desenhada
CLAUDE.md é o contrato de trabalho deste projeto: o que pode e o que não pode ser
afirmado sobre cada módulo, por que Flow é Pesquisa Operacional e não aprendizado de
máquina, e por que meta de validação nunca vira resultado medido. Ele existe porque parte
do código foi escrita com agente, e agente sem restrição escrita reintroduz exatamente as
alegações que este README passa uma seção desarmando.
React · TypeScript · Vite · Tailwind CSS · Recharts · Zustand · Framer Motion · vite-plugin-pwa