Sistema de Bíblia Digital Completo
Sistema completo de Bíblia digital com recursos avançados
"A tua palavra é lâmpada para os meus pés e luz para o meu caminho"
Salmos 119:105
O módulo de Bíblia Digital oferece acesso completo às Escrituras Sagradas com recursos avançados de busca, estudo e compartilhamento. Permite crescimento espiritual através da tecnologia moderna.
Busca por texto, versículo e referência
Sistema de favoritos e anotações
Compartilhar versículos e estudos
Sistema de busca completo com múltiplas opções de pesquisa.
Marcar e organizar versículos favoritos com anotações.
Compartilhar versículos e estudos em redes sociais.
Controle de leitura e progresso nos estudos bíblicos.
Sistema de versículo do dia com reflexões e estudos.
Interface responsiva para acesso em dispositivos móveis.
CREATE TABLE biblia_livros (
id BIGINT PRIMARY KEY,
nome VARCHAR(100) NOT NULL,
abreviacao VARCHAR(10),
testamento ENUM('antigo', 'novo'),
ordem INT,
capitulos INT,
ativo BOOLEAN DEFAULT TRUE,
created_at TIMESTAMP,
updated_at TIMESTAMP
);
CREATE TABLE biblia_capitulos (
id BIGINT PRIMARY KEY,
livro_id BIGINT,
numero INT,
titulo VARCHAR(255),
versiculos INT,
created_at TIMESTAMP,
updated_at TIMESTAMP
);
CREATE TABLE biblia_versiculos (
id BIGINT PRIMARY KEY,
capitulo_id BIGINT,
numero INT,
texto TEXT NOT NULL,
referencia VARCHAR(50),
created_at TIMESTAMP,
updated_at TIMESTAMP
);
CREATE TABLE biblia_favoritos (
id BIGINT PRIMARY KEY,
user_id BIGINT,
versiculo_id BIGINT,
anotacao TEXT,
categoria VARCHAR(100),
data_favorito DATETIME,
created_at TIMESTAMP,
updated_at TIMESTAMP
);
CREATE TABLE biblia_historico (
id BIGINT PRIMARY KEY,
user_id BIGINT,
versiculo_id BIGINT,
tipo ENUM('visualizacao', 'favorito', 'compartilhamento'),
data_acesso DATETIME,
ip_address VARCHAR(45),
user_agent TEXT,
created_at TIMESTAMP,
updated_at TIMESTAMP
);
// Rotas Admin
Route::prefix('admin/bible')->name('admin.bible.')->middleware(['auth', 'admin'])->group(function () {
Route::get('/', [BibleController::class, 'index'])->name('index');
Route::get('reports', [BibleRelatorioController::class, 'index'])->name('reports');
});
// Rotas Member
Route::prefix('member/bible')->name('member.bible.')->middleware(['auth'])->group(function () {
Route::get('/', [BibleMemberController::class, 'index'])->name('index');
Route::get('search', [BibleMemberController::class, 'search'])->name('search');
Route::get('chapter/{livro}/{capitulo}', [BibleMemberController::class, 'chapter'])->name('chapter');
Route::get('verse/{versiculo}', [BibleMemberController::class, 'verse'])->name('verse');
Route::get('favorites', [BibleFavoritoController::class, 'index'])->name('favorites');
Route::post('favorite/{versiculo}', [BibleFavoritoController::class, 'toggle'])->name('favorite');
Route::get('history', [BibleHistoricoController::class, 'index'])->name('history');
Route::get('verse-of-day', [BibleMemberController::class, 'verseOfDay'])->name('verse-of-day');
});
// BibleMemberController.php
public function search(Request $request)
{
$request->validate([
'query' => 'required|string|min:3',
'livro' => 'nullable|string',
'testamento' => 'nullable|in:antigo,novo'
]);
$query = BibliaVersiculo::with(['capitulo.livro']);
if ($request->filled('query')) {
$search = $request->query;
$query->where('texto', 'like', "%{$search}%");
}
if ($request->filled('livro')) {
$query->whereHas('capitulo.livro', function($q) use ($request) {
$q->where('nome', 'like', "%{$request->livro}%");
});
}
if ($request->filled('testamento')) {
$query->whereHas('capitulo.livro', function($q) use ($request) {
$q->where('testamento', $request->testamento);
});
}
$versiculos = $query->orderBy('capitulo.livro.ordem')
->orderBy('capitulo.numero')
->orderBy('numero')
->paginate(20);
return view('member.bible.search', compact('versiculos'));
}
// BibleFavoritoController.php
public function toggle(BibliaVersiculo $versiculo)
{
$favorito = BibliaFavorito::where('versiculo_id', $versiculo->id)
->where('user_id', auth()->id())
->first();
if ($favorito) {
$favorito->delete();
$message = 'Removido dos favoritos';
} else {
BibliaFavorito::create([
'versiculo_id' => $versiculo->id,
'user_id' => auth()->id(),
'data_favorito' => now()
]);
$message = 'Adicionado aos favoritos';
}
// Registrar no histórico
BibliaHistorico::create([
'user_id' => auth()->id(),
'versiculo_id' => $versiculo->id,
'tipo' => 'favorito',
'data_acesso' => now()
]);
return response()->json([
'success' => true,
'message' => $message,
'is_favorite' => !$favorito
]);
}
// BibleMemberController.php
public function verseOfDay()
{
$hoje = now()->format('Y-m-d');
// Buscar versículo do dia baseado na data
$versiculo = BibliaVersiculo::inRandomOrder()
->with(['capitulo.livro'])
->first();
// Se não existir, criar um novo
if (!$versiculo) {
$versiculo = BibliaVersiculo::with(['capitulo.livro'])
->inRandomOrder()
->first();
}
// Registrar visualização
BibliaHistorico::create([
'user_id' => auth()->id(),
'versiculo_id' => $versiculo->id,
'tipo' => 'visualizacao',
'data_acesso' => now()
]);
return view('member.bible.verse-of-day', compact('versiculo'));
}
Análise de visualizações e engajamento dos versículos.
Análise de versículos favoritados pelos usuários.
Análise de termos de busca e consultas.
Análise do crescimento espiritual dos usuários.
Integração com o sistema de devocionais para referências bíblicas.
Integração com a Escola Bíblica Dominical para estudos.
Notificações para versículo do dia e lembretes.
Relatórios sobre crescimento espiritual e leitura bíblica.