Painel
Dashboard
Próximos eventos
Atividades recentes
Agenda
Eventos
| Evento | Tipo | Data | Local | Inscritos | Status |
|---|
Base
Participantes
| Nome | CPF | Contato | Cidade/UF | Status |
|---|
Relação participante + evento
Inscrições
| Número | Participante | Evento | Data | Tipo | Status |
|---|
Controle
Presença
| Participante | Inscrição | Check-in | Entrada | Check-out | Saída | Permanência | Status | Certificado |
|---|
Lei de incentivo à cultura
Frequência
Emissão e validação
Certificados
| Chave | Número | Participante | Evento | Carga | Consultas | Status |
|---|
Prestação de contas
Comprovação cultural
Formulário do site
Contatos
| Data | Contato | Mensagem | Status |
|---|
Auditoria
Logs
| Quando | Ação | Detalhe | Usuário |
|---|
Projeto
Configurações
Banco de dados
Só o administrador faz login. O site público lê eventos e certificados sem autenticação e grava apenas contatos e consultas.
Regras do Realtime Database
{
"rules": {
"odp": {
"events": { ".read": true, ".write": "auth != null" },
"certificates": { ".read": true, ".write": "auth != null" },
"settings": { ".read": true, ".write": "auth != null" },
"participants": { ".read": "auth != null", ".write": "auth != null" },
"registrations": { ".read": "auth != null", ".write": "auth != null" },
"attendance": { ".read": "auth != null", ".write": "auth != null" },
"evidence": { ".read": "auth != null", ".write": "auth != null" },
"auditLogs": { ".read": "auth != null", ".write": "auth != null" },
"contacts": { ".read": "auth != null",
"$id": { ".write": "!data.exists()" } },
"consultas": { ".read": "auth != null",
"$id": { ".write": "!data.exists()" } }
}
}
}
Dados pessoais de participantes, inscrições e presença ficam fechados: só quem está autenticado lê. Em contacts e consultas a regra !data.exists() permite criar um registro novo, mas nunca ler, alterar ou apagar os que já existem.