TutorLoom
The learning platform for companies, colleges and training institutes. Free and open source, with an Enterprise edition.
翻译准备中
尚未收集仓库信息。
尚未检测到更新。GitHub 发布版本后会显示在这里。
制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 README ↗SPA (Single Page Application) em Dark Mode projetada para preparação de alta performance em concursos públicos de Tecnologia da Informação (Analista de Sistemas, Engenharia de Software, Tribunais, Bacen, TCU).
#tag pesquisável./), botões de nível (I, M, A, E) e de situação (Todas, Não respondidas, Acertei, Errei, ⭐) e "Mais filtros" (matéria, banca, assunto, ano). Os botões só mexem nos campos de filtro que já existiam. Meta, dias e revisão saíram da barra lateral para não aparecerem duas vezes.--largura-barra no CSS).data/resumos-assunto.json (campos materia, assunto, ideia_central, exemplo, pegadinha; o assunto precisa ser igual ao das questões). Assunto sem texto segue direto para o exemplo. Hoje: Banco de Dados.docs/sql/u5-reportes-questao.sql.focopro/
├── index.html # Estrutura da página
├── manifest.json # Instalação PWA
├── service-worker.js # Cache só dos arquivos do site (nunca da API); abre do cache e avisa versão nova
├── vercel.json # Cabeçalhos de segurança (CSP, anti-iframe etc.)
│
├── css/
│ └── style.css # Estilos Dark Mode
│
├── js/
│ ├── app.js # Orquestrador: estado, eventos e carga inicial
│ ├── ui.js # Renderização das questões, placar e desempenho
│ ├── simulado.js # Cronômetro e correção do simulado
│ ├── storage.js # Histórico: localStorage + nuvem
│ ├── revisao.js # Regra da revisão espaçada e dos status
│ ├── supabase.js # Conexão e consultas ao Supabase (paginadas)
│ ├── auth.js # Login, cadastro e logout
│ ├── notifications.js # Toasts e modais de confirmação
│ ├── api.js # Normalização de questões (matéria, gabarito, IDs)
│ ├── laboratorio-sql.js # Laboratório SQL (carregado só ao abrir); motor em js/vendor/sqljs-1.14.2 (MIT)
│ ├── pwa.js # Menu do celular, Service Worker e botão "Instalar"
│ └── vendor/
│ └── supabase-js-2.117.3.min.js # Biblioteca do Supabase empacotada
│
├── supabase/functions/super-function/
│ └── index.ts # Edge Function da explicação com IA
│
└── icons/ # Ícones PWA
questoes só pode ser lida por usuário logado e só o admin insere/atualiza; historico_respostas só é lido, gravado e apagado pelo próprio dono.{ questaoId, respostaUsuario }; enunciado, alternativas e gabarito são lidos do banco no servidor.Content-Security-Policy-Report-Only) no vercel.json; passa a bloquear depois de um período sem violações.js/vendor/supabase-js-2.117.3.min.js é o @supabase/[email protected] empacotado num arquivo só com o esbuild. Para atualizar:
npm install @supabase/supabase-js@<versao> esbuild
echo "export { createClient } from '@supabase/supabase-js';" > entry.js
npx esbuild entry.js --bundle --format=esm --minify --platform=browser --target=es2020 --legal-comments=none --outfile=supabase-js-<versao>.min.js
Depois troque o nome do arquivo em js/supabase.js e em service-worker.js (e suba o CACHE_NAME).
O app abre do cache do aparelho. A cada publicação que muda qualquer arquivo do site, suba o número do CACHE_NAME em service-worker.js (ex.: focopro-v12 → focopro-v13). É isso que faz o celular baixar a versão nova e mostrar "Nova versão do FocoPro disponível". Sem subir o número, quem já tem o app continua na versão antiga.