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,
matricula TEXT NOT NULL,
nome TEXT NOT NULL
);
-- 4. Tabela de Junção Alunos ↔ Turmas (N:N)
CREATE TABLE IF NOT EXISTS public.alunos_turmas (
id UUID DEFAULT gen_random_uuid() PRIMARY KEY,
aluno_id UUID REFERENCES public.alunos(id) ON DELETE CASCADE,
turma_id UUID REFERENCES public.turmas(id) ON DELETE CASCADE,
UNIQUE(aluno_id, turma_id)
);
-- 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,
data_fim DATE,
dias_afastamento INT DEFAULT 0,
observacao TEXT,
data_registro TIMESTAMP WITH TIME ZONE DEFAULT now(),
tipo TEXT DEFAULT 'ATESTADO',
documento_url TEXT
);
-- 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
Novo Atestado / Alerta
Atestados Lançados nesta Escola
Aluno / Matrícula
Turma
Período / Alerta
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
Cadastro de Professores
Relação de Professores
Nome
Matrícula
E-mail
Turmas
Status
Pendências 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.