—
Total de alunas
—
Ativas (7 dias)
—
XP médio
—
Nível Ouro
Alunas
| Aluna | Nível | XP | Módulos | Hábitos | Streak | Conquistas | Última atividade |
|---|---|---|---|---|---|---|---|
Carregando alunas... | |||||||
📚 Pedidos de Livros
| Título | Autor | Aluna | Data | Status | Ação |
|---|---|---|---|---|---|
Clique em "Pedidos de Livros" para carregar. | |||||
⚙️ Controles do Portal
Edite aqui e as alunas veem as mudanças em tempo real, sem precisar mexer no código.
💬 Lembrete do Dia
A frase inspiracional que aparece na home de todas as alunas.
✦ Salvo!
🎯 Desafios da Semana Atual
Esses 3 desafios aparecem para todas as alunas esta semana. Se deixar em branco, o app usa os desafios automáticos do código.
Desafio 1
Desafio 2
Desafio 3
✦ Publicado!
Os desafios publicados aqui ficam ativos até você apagar ou publicar novos. Na próxima segunda-feira o app continua a rotação automática se não houver desafios salvos aqui.
📣 Aviso para as Alunas
Aparece como um banner no topo da home. Deixe em branco para não mostrar nada.
✦ Salvo!
🛠️ Setup — SQL para rodar no Supabase
Rode esses SQLs uma vez no Supabase → SQL Editor para ativar todas as funcionalidades do painel.
1. Tabela de Pedidos de Livros
CREATE TABLE IF NOT EXISTS book_requests (
id bigserial PRIMARY KEY,
titulo text NOT NULL,
autor text,
email_aluna text,
status text DEFAULT 'pendente',
created_at timestamptz DEFAULT now()
);
-- Permite que alunas autenticadas insiram pedidos
ALTER TABLE book_requests ENABLE ROW LEVEL SECURITY;
CREATE POLICY "alunas_insert" ON book_requests FOR INSERT TO authenticated WITH CHECK (true);
CREATE POLICY "admin_all" ON book_requests FOR ALL USING (true);
CREATE TABLE IF NOT EXISTS book_requests (
id bigserial PRIMARY KEY,
titulo text NOT NULL,
autor text,
email_aluna text,
status text DEFAULT 'pendente',
created_at timestamptz DEFAULT now()
);
ALTER TABLE book_requests ENABLE ROW LEVEL SECURITY;
CREATE POLICY "alunas_insert" ON book_requests FOR INSERT TO authenticated WITH CHECK (true);
CREATE POLICY "admin_all" ON book_requests FOR ALL USING (true);
0. ⚠️ Policies para o painel ver as alunas (rode PRIMEIRO se aparecer "Forbidden")
-- Permite que admin autenticada leia student_progress e achievements
CREATE POLICY IF NOT EXISTS "admin_read_progress" ON student_progress
FOR SELECT USING (true);
CREATE POLICY IF NOT EXISTS "admin_read_achievements" ON student_achievements
FOR SELECT USING (true);
-- Se as tabelas não tiverem RLS ativo:
ALTER TABLE student_progress ENABLE ROW LEVEL SECURITY;
ALTER TABLE student_achievements ENABLE ROW LEVEL SECURITY;
CREATE POLICY IF NOT EXISTS "admin_read_progress" ON student_progress FOR SELECT USING (true);
CREATE POLICY IF NOT EXISTS "admin_read_achievements" ON student_achievements FOR SELECT USING (true);
ALTER TABLE student_progress ENABLE ROW LEVEL SECURITY;
ALTER TABLE student_achievements ENABLE ROW LEVEL SECURITY;
2. Tabela de Controles do Portal (desafios, lembrete, aviso)
CREATE TABLE IF NOT EXISTS portal_config (
id text PRIMARY KEY,
valor jsonb,
updated_at timestamptz DEFAULT now()
);
ALTER TABLE portal_config ENABLE ROW LEVEL SECURITY;
-- Leitura pública (alunas e admin)
CREATE POLICY "leitura_publica" ON portal_config FOR SELECT USING (true);
-- Escrita para usuários autenticados (admin logada no painel)
CREATE POLICY "escrita_autenticada" ON portal_config FOR INSERT TO authenticated WITH CHECK (true);
CREATE POLICY "update_autenticado" ON portal_config FOR UPDATE TO authenticated USING (true);
CREATE POLICY "delete_autenticado" ON portal_config FOR DELETE TO authenticated USING (true);
CREATE TABLE IF NOT EXISTS portal_config (
id text PRIMARY KEY,
valor jsonb,
updated_at timestamptz DEFAULT now()
);
ALTER TABLE portal_config ENABLE ROW LEVEL SECURITY;
CREATE POLICY "leitura_publica" ON portal_config FOR SELECT USING (true);
CREATE POLICY "escrita_admin" ON portal_config FOR ALL USING (true);