Escola Bíblica Dominical
Sistema completo de Escola Bíblica Dominical
"Instrui o menino no caminho em que deve andar, e até quando envelhecer não se desviará dele."
Provérbios 22:6
O módulo EBD Digital é um sistema completo para gestão da Escola Bíblica Dominical, oferecendo funcionalidades modernas para professores, alunos e administradores. O sistema permite o controle total do processo educacional desde a matrícula até a emissão de certificados.
Cadastro, matrículas, frequência e histórico completo
Controle de turmas, aulas e avaliações
Emissão automática de certificados
Sistema completo de matrícula com dados pessoais, informações acadêmicas e histórico.
Criação e gestão de turmas com controle de capacidade e horários.
Sistema de lições com conteúdo digital, materiais de apoio e exercícios.
Sistema de controle de presença com relatórios e estatísticas.
Sistema de avaliação com quiz bíblico interativo e gamificação.
Emissão automática de certificados com validação digital.
CREATE TABLE ebd_alunos (
id BIGINT PRIMARY KEY,
membro_id BIGINT,
turma_id BIGINT,
data_matricula DATE,
status ENUM('ativo', 'inativo', 'concluido'),
observacoes TEXT,
created_at TIMESTAMP,
updated_at TIMESTAMP
);
CREATE TABLE ebd_turmas (
id BIGINT PRIMARY KEY,
nome VARCHAR(255),
descricao TEXT,
capacidade INT,
professor_id BIGINT,
horario VARCHAR(100),
status ENUM('ativa', 'inativa', 'concluida'),
created_at TIMESTAMP,
updated_at TIMESTAMP
);
CREATE TABLE ebd_aulas (
id BIGINT PRIMARY KEY,
turma_id BIGINT,
titulo VARCHAR(255),
conteudo TEXT,
data_aula DATE,
status ENUM('agendada', 'realizada', 'cancelada'),
created_at TIMESTAMP,
updated_at TIMESTAMP
);
CREATE TABLE ebd_frequencias (
id BIGINT PRIMARY KEY,
aluno_id BIGINT,
aula_id BIGINT,
presente BOOLEAN DEFAULT FALSE,
observacoes TEXT,
created_at TIMESTAMP,
updated_at TIMESTAMP
);
CREATE TABLE ebd_certificados (
id BIGINT PRIMARY KEY,
aluno_id BIGINT,
turma_id BIGINT,
codigo_verificacao VARCHAR(255),
data_emissao DATE,
arquivo_pdf VARCHAR(255),
created_at TIMESTAMP,
updated_at TIMESTAMP
);
// Rotas Admin
Route::prefix('admin/ebd')->name('admin.ebd.')->middleware(['auth', 'admin'])->group(function () {
Route::resource('alunos', EbdAlunoController::class);
Route::resource('turmas', EbdTurmaController::class);
Route::resource('aulas', EbdAulaController::class);
Route::resource('professores', EbdProfessorController::class);
Route::resource('certificados', EbdCertificadoController::class);
});
// Rotas Member
Route::prefix('member/ebd')->name('member.ebd.')->middleware(['auth'])->group(function () {
Route::get('dashboard', [EbdDashboardController::class, 'index'])->name('dashboard');
Route::resource('licoes', EbdLicaoController::class);
Route::resource('quiz', EbdQuizController::class);
Route::get('certificados', [EbdCertificadoController::class, 'index'])->name('certificados');
});
// EbdTurmaController.php
public function store(Request $request)
{
$request->validate([
'nome' => 'required|string|max:255',
'descricao' => 'nullable|string',
'capacidade' => 'required|integer|min:1',
'professor_id' => 'required|exists:users,id',
'horario' => 'required|string'
]);
$turma = EbdTurma::create([
'nome' => $request->nome,
'descricao' => $request->descricao,
'capacidade' => $request->capacidade,
'professor_id' => $request->professor_id,
'horario' => $request->horario,
'status' => 'ativa'
]);
return redirect()->route('admin.ebd.turmas.index')
->with('success', 'Turma criada com sucesso!');
}
// EbdFrequenciaController.php
public function registrarFrequencia(Request $request)
{
$request->validate([
'aluno_id' => 'required|exists:ebd_alunos,id',
'aula_id' => 'required|exists:ebd_aulas,id',
'presente' => 'required|boolean'
]);
EbdFrequencia::updateOrCreate(
[
'aluno_id' => $request->aluno_id,
'aula_id' => $request->aula_id
],
[
'presente' => $request->presente,
'observacoes' => $request->observacoes
]
);
return response()->json(['success' => true]);
}
// EbdCertificadoController.php
public function gerarCertificado(EbdAluno $aluno)
{
$certificado = EbdCertificado::create([
'aluno_id' => $aluno->id,
'turma_id' => $aluno->turma_id,
'codigo_verificacao' => Str::random(32),
'data_emissao' => now(),
'arquivo_pdf' => $this->gerarPDF($aluno)
]);
return response()->download($certificado->arquivo_pdf);
}
Estatísticas detalhadas de presença por aluno, turma e período.
Alunos que concluíram cursos e certificados emitidos.
Análise de desempenho nos quiz e avaliações.
Informações sobre turmas, professores e capacidade.
Integração completa com o sistema de gestão de membros para cadastro e controle de alunos.
Notificações automáticas para professores, alunos e administradores.
Controle granular de acesso baseado em roles e permissões.
Integração com o sistema de relatórios para análises avançadas.