Os dados serão salvos no localStorage e utilizados nas consultas reais às tabelas do Supabase.
Estrutura DDL do Banco de Dados (Supabase SQL)
-- ============================================================
-- SCRIPT DE CRIAÇÃO DAS TABELAS - JUSTIFICAE (MULTI-ESCOLA)
-- Execute no SQL Editor do seu projeto Supabase
-- ============================================================
-- 1. Tabela de Escolas
CREATE TABLE IF NOT EXISTS public.escolas (
id UUID DEFAULT gen_random_uuid() PRIMARY KEY,
nome TEXT NOT NULL,
email_admin TEXT NOT NULL,
data_corte_atestados DATE
);
-- Migrações úteis para bancos existentes:
-- ALTER TABLE public.escolas ADD COLUMN IF NOT EXISTS data_corte_atestados DATE;
-- ALTER TABLE public.atestados ADD COLUMN IF NOT EXISTS data_registro TIMESTAMP WITH TIME ZONE DEFAULT now();
-- 2. Tabela de Turmas
CREATE TABLE IF NOT EXISTS public.turmas (
id UUID DEFAULT gen_random_uuid() PRIMARY KEY,
escola_id UUID REFERENCES public.escolas(id) ON DELETE CASCADE,
nome TEXT NOT NULL,
ano_letivo TEXT NOT NULL
);
-- 3. Tabela de Alunos
CREATE TABLE IF NOT EXISTS public.alunos (
id UUID DEFAULT gen_random_uuid() PRIMARY KEY,
escola_id UUID REFERENCES public.escolas(id) ON DELETE CASCADE,
turma_id UUID REFERENCES public.turmas(id) ON DELETE SET NULL,
matricula TEXT NOT NULL,
nome TEXT NOT NULL
);
-- 4. Tabela de Professores
CREATE TABLE IF NOT EXISTS public.professores (
id UUID DEFAULT gen_random_uuid() PRIMARY KEY,
escola_id UUID REFERENCES public.escolas(id) ON DELETE CASCADE,
email TEXT NOT NULL,
email_google TEXT,
nome TEXT NOT NULL,
ativo BOOLEAN DEFAULT true,
is_superadmin BOOLEAN DEFAULT false
);
-- Após criar as tabelas, execute também o script "supabase/rls_policies.sql"
-- (que remove a coluna senha de bancos legados, cria email_google,
-- as policies por escola e protege o multi-tenant).
-- Para conceder acesso de Superadmin a um e-mail existente no banco:
-- ALTER TABLE public.professores ADD COLUMN IF NOT EXISTS is_superadmin BOOLEAN DEFAULT false;
-- UPDATE public.professores SET is_superadmin = true WHERE email = 'traco.e.sc@gmail.com';
-- Em bancos antigos que ainda tenham a coluna senha (login por senha descontinuado):
-- ALTER TABLE public.professores DROP COLUMN IF EXISTS senha;
-- 5. Vinculação de Professores e Turmas
CREATE TABLE IF NOT EXISTS public.professores_turmas (
id UUID DEFAULT gen_random_uuid() PRIMARY KEY,
professor_id UUID REFERENCES public.professores(id) ON DELETE CASCADE,
turma_id UUID REFERENCES public.turmas(id) ON DELETE CASCADE
);
-- 6. Tabela de Atestados Médicos
CREATE TABLE IF NOT EXISTS public.atestados (
id UUID DEFAULT gen_random_uuid() PRIMARY KEY,
escola_id UUID REFERENCES public.escolas(id) ON DELETE CASCADE,
aluno_id UUID REFERENCES public.alunos(id) ON DELETE CASCADE,
data_inicio DATE NOT NULL,
data_fim DATE NOT NULL,
dias_afastamento INT NOT NULL,
observacao TEXT,
data_registro TIMESTAMP WITH TIME ZONE DEFAULT now()
);
-- 7. Tabela de Justificativas dos Professores
CREATE TABLE IF NOT EXISTS public.justificativas (
id UUID DEFAULT gen_random_uuid() PRIMARY KEY,
atestado_id UUID REFERENCES public.atestados(id) ON DELETE CASCADE,
professor_id UUID REFERENCES public.professores(id) ON DELETE CASCADE,
status TEXT NOT NULL,
data_hora_baixa TIMESTAMP WITH TIME ZONE DEFAULT now()
);
-- RLS: não desligue — rode o script "supabase/rls_policies.sql" no SQL Editor
-- para habilitar Row Level Security multi-tenant e criar as policies por escola.
-- Sem RLS, QUALQUER pessoa com a Anon Key pode ler/alterar/apagar os dados de
-- TODAS as escolas deste projeto. A partir daqui o RLS fica habilitado:
ALTER TABLE public.escolas ENABLE ROW LEVEL SECURITY;
ALTER TABLE public.turmas ENABLE ROW LEVEL SECURITY;
ALTER TABLE public.alunos ENABLE ROW LEVEL SECURITY;
ALTER TABLE public.professores ENABLE ROW LEVEL SECURITY;
ALTER TABLE public.professores_turmas ENABLE ROW LEVEL SECURITY;
ALTER TABLE public.atestados ENABLE ROW LEVEL SECURITY;
ALTER TABLE public.justificativas ENABLE ROW LEVEL SECURITY;
Cole este script no SQL Editor do Supabase se suas tabelas ainda não existirem.
Jusfica-e
Plataforma SaaS Multi-Escola de Gestão de Atestados
Login Google
Todos os acessos (Professores, Administradores e Superusuário) são feitos com a conta Google.
Status da Conexão
Verificando Supabase...
Multi-Escola • Gestão Centralizada • Justificativas em Tempo Real
Múltiplos Vínculos Encontrados
Selecione em qual escola/perfil deseja trabalhar nesta sessão:
Jusfica-e
Escola Ativa
Atestados dos Alunos & Justificativas
U
Usuário
Professor
Atestados dos Alunos & Justificativas
Mobile
Lançar Novo Atestado Médico (Unitário)
Atestados Lançados nesta Escola
Aluno / Matrícula
Turma
Período
Dias
Observação
Ciência Professores
Ação
Cadastrar Turma
Turmas Cadastradas
Nome da Turma
Ano Letivo
Ações
Gestão e Cadastro de Alunos
Cadastre alunos individualmente abaixo ou use a importação em lote da planilha (.xlsx/.csv) disponível nesta tela.
Cadastrar Aluno
Alunos Cadastrados
Matrícula
Nome
Turma
Ação
Cadastrar Professor e Atribuir Turmas
Preencha os dados do professor e selecione as turmas em que ele leciona.
Professores Cadastrados
0 Professor(es)
Nome
Matrícula
Status
Turmas Vinculadas
Ação
Acompanhamento de Pendências de Ciência dos Professores
Monitore em tempo real quais professores possuem atestados aguardando ciência nas turmas em que lecionam.
Configurações do Sistema
Ferramentas de inicialização, importação em massa e filtros globais. Utilizadas na configuração inicial do sistema.
Filtro de Data de Corte de Atestados da Escola
Exibir e considerar pendentes apenas atestados registrados a partir desta data no sistema.
Lançar Atestados em Lote (Planilha)
Importe atestados ativos ou histórico copiando/colando da planilha (matrícula, datas, dias e observação).
Importar Alunos de Planilha (.xlsx/.csv)
Envie uma planilha com uma aba por turma (601, 602, 701...). Marque manualmente as colunas de matrícula e nome, em qualquer ordem.
👑 GOD MODE / SUPERADMINGestão Global da Plataforma SaaS
Painel Master Jusfica-e
Cadastre novas escolas clientes no sistema, vincule diretores e acompanhe métricas globais.
Escolas Clientes
0
Total de Professores
0
Total de Alunos
0
Atestados Registrados
0
Cadastrar Nova Escola Cliente
Adicione uma nova instituição no SaaS
Escolas Clientes Cadastradas
Lista completa de instituições cadastradas no sistema
0 Escolas
Nome da Escola
E-mail do Admin
Status
Ações
Editar Professor
Atualize os dados do professor no cadastro
Editar Escola Cliente
Gerenciamento de dados e credenciais do Administrador
Editar Aluno / Mudar Turma
Altere a turma ou dados do estudante
Cadastrar Novo Aluno
Adicione o aluno para lançar o atestado
Vincular Turmas ao Professor
Prof. Nome
Marque as turmas em que este professor leciona nesta escola:
Importar Alunos de Planilha
Uma aba por turma. Mapeie as colunas de matrícula e nome.
Como funciona:
Envie um arquivo .xlsx ou .csv. Cada aba/planilha do arquivo é uma turma (ex: 601, 602, 701).
Depois de ler, defina para cada turma: qual coluna é a matrícula e qual é o nome. As demais colunas são ignoradas.
Ao confirmar, os alunos da turma serão sincronizados com a lista da planilha: novos alunos são cadastrados, existentes são movidos/atualizados, e os que saíram são desvinculados da turma. Cadastros e ATESTADOS existentes são PRESERVADOS.
Lançar Atestados em Lote (Planilha)
Importe atestados ativos ou histórico de lançamentos
Instruções do Formato Esperado por Linha:
Copie e cole da sua planilha no seguinte formato por linha:
MATRÍCULA DO ALUNO DATA_INICIO DATA_FIM DIAS OBSERVAÇÃO
* As datas suportam AAAA-MM-DD ou DD/MM/AAAA.
* O sistema relaciona o atestado ao aluno via matrícula cadastrada.