Seja muito bem-vindo à Academy Code Christ!
| 🌍 Este site está disponível em vários idiomas. Fique à vontade para usar o tradutor no topo da página e aprender no seu idioma. |
Aprenda a
criar um Buscador de Versículos Bíblicos usando Python com Flask, capaz
de encontrar passagens por palavra-chave, tema ou personagem.
Este
projeto é uma aplicação real, que simula um sistema inteligente de busca dentro
da Bíblia, utilizando lógica de programação para entregar resultados relevantes
ao usuário.
🚀 O que vamos construir?
Um sistema
web com:
● 🔍 Busca de versículos por palavra-chave (ex: “amor”, “fé”, “esperança”)
● 📚 Retorno dos versículos mais relevantes
● 🧠 Explicação simples baseada no tema
● 👤 Identificação de personagens bíblicos
● 🌐 Interface web com HTML + CSS + JavaScript
● ⚡ Backend com Python (Flask)
●
🧰 Tecnologias utilizadas
Tecnologia Função
Python Lógica do sistema
Flask Servidor web
HTML Estrutura da página
CSS Estilização
JavaScript Comunicação com o backend
📁 Estrutura do projeto
projeto/
├── app.py
├──
biblia_limpa/
├──
personagens.txt
├──
temas.txt
├──
templates/
│ └── index.html
└──
static/
└── style.css
🧹 Como funciona o buscador?
O sistema
utiliza algumas técnicas simples, mas poderosas:
● normalização de texto (remove acentos e padroniza letras)
● separação de palavras-chave
● cálculo de relevância (score)
● ordenação dos melhores resultados
Isso
permite encontrar versículos mesmo com buscas simples.
🧠 Lógica principal (Python + Flask)
from flask
import Flask, render_template, request, jsonify
import os
import
unidecode
app =
Flask(__name__)
def
normalizar(texto):
return unidecode.unidecode(texto.lower())
def
carregar_biblia(pasta="biblia_limpa"):
versiculos = []
for arquivo in os.listdir(pasta):
if arquivo.endswith(".txt"):
with open(os.path.join(pasta,
arquivo), encoding="utf-8") as f:
for linha in f:
if linha.strip():
versiculos.append(linha.strip())
return versiculos
biblia =
carregar_biblia()
def
calcular_score(palavras, verso):
return sum(1 for p in palavras if p in
verso)
def
buscar_biblia(pergunta):
p = normalizar(pergunta)
palavras = p.split()
resultados = []
for v in biblia:
v_norm = normalizar(v)
score = calcular_score(palavras,
v_norm)
if score > 0:
resultados.append((score, v))
resultados.sort(reverse=True, key=lambda x:
x[0])
return [r[1] for r in resultados[:5]]
@app.route("/")
def
home():
return
render_template("index.html")
@app.route("/perguntar",
methods=["POST"])
def
perguntar():
pergunta =
request.json.get("pergunta", "")
versiculos = buscar_biblia(pergunta)
if not versiculos:
resposta = "Não encontrei
resultados."
else:
resposta =
"\n\n".join(versiculos)
return jsonify({"resposta":
resposta})
if
__name__ == "__main__":
app.run(debug=True)
🌐 Interface (HTML) + JavaScript
<!DOCTYPE html>
<html lang="pt-br">
<head>
<meta charset="UTF-8">
<title>IA Bíblica</title>
<link rel="stylesheet" href="static/style.css">
</head>
<body>
<div class="chat-container">
<h1>📖 Buscador Bíblico</h1>
<div id="chat"></div>
<div class="input-area">
<input id="pergunta" placeholder="Pergunte algo da Bíblia...">
<button onclick="enviar()">Enviar</button>
</div>
</div>
<script>
function adicionarMensagem(classe, texto) {
let chat = document.getElementById("chat");
let div = document.createElement("div");
div.className = classe;
div.textContent = texto;
chat.appendChild(div);
chat.scrollTop = chat.scrollHeight;
}
async function enviar() {
let input = document.getElementById("pergunta");
let texto = input.value.trim();
if (!texto) return;
adicionarMensagem("user", "👤 " + texto);
input.value = "";
adicionarMensagem("bot", "⏳ Buscando resposta...");
let res = await fetch("/perguntar", {
method: "POST",
headers: {"Content-Type": "application/json"},
body: JSON.stringify({pergunta: texto})
});
let data = await res.json();
let chat = document.getElementById("chat");
chat.lastChild.remove();
adicionarMensagem("bot", "📖 " + data.resposta);
}
</script>
</body>
</html>
🎨 Estilo (CSS)
body {
background: linear-gradient(135deg, #0f172a, #020617);
color: white;
font-family: Arial, sans-serif;
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
margin: 0;
}
/* container principal */
.chat-container {
width: 90%;
max-width: 700px;
background: #1e293b;
padding: 20px;
border-radius: 16px;
box-shadow: 0 20px 60px rgba(0,0,0,0.4);
}
/* chat */
#chat {
height: 400px;
overflow-y: auto;
background: #0b1220;
padding: 12px;
margin-bottom: 12px;
border-radius: 10px;
scroll-behavior: smooth;
}
/* mensagens */
.user {
color: #38bdf8;
margin: 8px 0;
text-align: right;
background: rgba(56,189,248,0.1);
padding: 8px;
border-radius: 8px;
}
.bot {
color: #22c55e;
margin: 8px 0;
background: rgba(34,197,94,0.08);
padding: 8px;
border-radius: 8px;
}
/* input */
input {
width: 70%;
padding: 12px;
border: none;
border-radius: 8px;
outline: none;
}
/* botão */
button {
padding: 12px 16px;
background: #38bdf8;
border: none;
border-radius: 8px;
cursor: pointer;
font-weight: bold;
transition: 0.2s;
}
button:hover {
background: #0ea5e9;
transform: scale(1.05);
}
✝️ Projeto com propósito
Esse
projeto mostra como a programação pode ser usada para criar algo útil e
significativo.
Com poucas
linhas de código, você construiu uma ferramenta capaz de ajudar pessoas a
encontrar mensagens bíblicas de forma rápida e prática.
📖 Conclusão
O Buscador
de Versículos Bíblicos é um ótimo exemplo de aplicação prática com Python e
Flask.
Ele une
lógica, estrutura web e um propósito claro e ensinar e compartilhar
conhecimento através da tecnologia.
.png)
.png)
Postar um comentário