Synaplan
Open-source AI platform for companies: self-hosted AI agents, GDPR-compliant chatbot widget, RAG knowledge base, WhatsApp and Outlook AI, MCP, multi-model routing. Docker, Kubernetes or hosted in Germ
Visualize e gerencie o mapa do processo, a equipe e a rotina diária da ITASUL OS
Translation pending
AI summary · revised during review
BusinessJavaScript · CSSGitHub @MxTxDEVOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗Mapa operacional interativo do fluxo de locação do Grupo ITASUL: etapas conectadas, cartões clicáveis, painel de detalhes, equipe, indicadores e central de melhorias.
App web estático: HTML + CSS + JavaScript (módulos ES). Sem build, sem dependências, sem backend, sem integrações externas (nada de WhatsApp, TotalLoc, bancos de dados ou envio de mensagens).
npm start # abre em http://localhost:8080 (ou: npm start 3000)
npm test # testes unitários (node --test)
npm run test:e2e # testes de interface (usa o Playwright já instalado no ambiente)
Também funciona hospedado em qualquer servidor estático (GitHub Pages, Vercel etc.). Não abra index.html direto pelo file:// (módulos ES exigem http).
:root e [data-theme="escuro"] em src/styles.css): mapa, setas, cartões, painéis, tabelas, formulários, diálogos, menus e mensagens se adaptam.localStorage (chave itasul-tema) e vence a preferência do sistema. Sem escolha salva, o painel segue o tema do sistema operacional (inclusive ao vivo). "Dados → Usar o tema do sistema" apaga a escolha.<head> aplica o tema antes da primeira pintura (sem "flash"). O botão tem aria-pressed e nome acessível que indica o tema ativo.Seletor "Forma do mapa" acima do mapa (a escolha fica salva neste navegador, chave itasul-forma). Todas usam os mesmos dados, filtros, caminhos, seleção, painel de detalhes, indicadores e tema — trocar de forma não altera nenhum dado (as posições gravadas só valem para a Serpentina; as demais são calculadas na hora).
Cada setor tem uma cor própria (variantes para claro e escuro, tokens .sec-* em src/styles.css): barra lateral e número do cartão, selos, raias, colunas do quadro, linha do tempo, matriz e setas. A legenda Setores acima do mapa é também um filtro (clique para filtrar/desfiltrar). A cor nunca é o único sinal: setor aparece escrito e os estados (A definir, bloqueada, aguardando) mantêm ícone e texto. Setores criados por você recebem uma cor extra estável.
Nas formas de mapa (serpentina, raias, árvore, circular) o fluxo ganha vida: uma malha neural discreta ao fundo, sinais que viajam pelas ligações na cor do setor de origem, neurônios (cartões) que disparam em onda seguindo as camadas do fluxo (etapas com tarefa bloqueada pulsam mais rápido, em vermelho; as aguardando, em âmbar), cascata a jusante ao selecionar uma etapa e sinapses acesas ao passar o mouse. O botão 🧠 Animação liga/desliga (a escolha fica salva, chave itasul-animacao). Quem usa "reduzir movimento" no sistema começa com a animação desligada e pode ligá-la. É só visual: não altera nenhum dado.
Uma etapa só é marcada como "aguardando" quando todas as condições valem: a ligação não é um retorno (11→5 "retorno à disponibilidade" é só informativo), nenhuma ponta é ramal opcional (Munck, destinação), a etapa anterior tem tarefas em aberto e a etapa atual ainda não foi concluída. Sem tarefas na anterior, nada é afirmado.
localStorage (chave itasul-painel-v1), só neste navegador. Exportar backup gera um JSON.innerHTML), evitando injeção de HTML.index.html
src/
main.js orquestra telas, filtros, indicadores, menu de dados
styles.css identidade ITASUL (vermelho, preto, branco, cinza, amarelo discreto)
data/seed.js etapas, ligações, caminhos, ideias da IA (hipóteses editáveis)
state/store.js estado, persistência, CRUD, histórico, import/export
state/layouts.js formas do mapa (raias, árvore, circular): posições calculadas, sem tocar nos dados
state/logic.js funções puras: atrasos, filtros, indicadores, transferências
ui/sectors.js cor/classe por setor
ui/ dom.js (helpers) · form.js (modal) · map.js · views.js (linha do tempo, quadro, lista) · panel.js · team.js · improvements.js · records.js
tests/unit/ estado, lógica, migração e geometria do layout (node:test)
tests/e2e/smoke.mjs teste de interface em navegador real (fluxo geral)
tests/e2e/gestao.mjs teste de interface: funcionários, tarefas, rotina, dependências, indicadores
tests/e2e/cerebro.mjs cores por setor, animação (movimento real dos sinais, cascata, desligar, reduzir movimento) e matriz setor × etapa
tests/e2e/formas.mjs formas do mapa: 7 visões, seleção, filtros, caminhos, teclado, zoom/arrasto, persistência, contraste AA nos 2 temas, responsivo
tests/e2e/refino.mjs refinamento: legibilidade do mapa (px renderizados), cabeçalho/indicadores, arrasto/zoom/seleção, teclado, tema em todas as superfícies
tests/e2e/helpers/contraste.mjs verificador de contraste WCAG AA usado pelos roteiros
tests/e2e/auditoria.mjs auditoria funcional + visual: 13 cartões, filtros, caminhos, tema, contraste WCAG AA nos 2 temas, responsividade (360–1920 px), teclado
ui/theme.js tema claro/escuro (resolução, persistência, acompanhamento do sistema)
tools/serve.mjs servidor estático para desenvolvimento
Modelo: etapas (processos) ≠ funcionários (pessoas) ≠ tarefas. Uma pessoa liga-se a várias etapas por stageIds/responsável/substituto sem duplicar cadastro; uma etapa pode ter várias pessoas e tarefas.
Funcional: tudo da primeira versão, mais painel amplo consolidado, reabrir tarefas, vínculo de pessoas pelo painel, registros operacionais, indicadores calculados e clicáveis, layout em serpentina sem cruzamento de setas, navegação entre etapas vizinhas.
Depende de cadastro seu: funcionários, responsáveis (todas as etapas começam "A definir"), responsabilidades, tarefas, registros, problemas recorrentes, sugestões. Fluxo, atividades e entradas/saídas das etapas são hipóteses do briefing — revise.
Pendente / fora do escopo: compartilhamento entre usuários/dispositivos (dados ficam no navegador; use exportar/importar), integração com TotalLoc/WhatsApp (não autorizada), arrastar etapas para reposicionar, histórico por tarefa/funcionário, zoom por pinça, login e permissões. Tarefas recorrentes (frequência "Diária" etc.) são um rótulo: concluir marca a tarefa inteira, não cada ocorrência.
0 só quando existem registros mas nenhum ativo.
Aberto · aguardando retorno = Orçamento Aguardando retorno · Locações em andamento = Locação Em andamento · Entregas previstas = Entrega Aberto/Programado · Pendências financeiras / Equipamentos indisponíveis = registros do tipo não concluídos/cancelados · Manutenções pendentes = tarefas abertas da etapa 11 + registros "Manutenção" ativos · Tarefas atrasadas, pendentes e bloqueadas = das tarefas · Sugestões em avaliação = das melhorias.