- Descrição do Projeto
- Funcionalidades
- Acesso ao Bot
- Visão Geral
- Integração com APIs Externas
- Configuração e Uso
- Referências e Documentações Consultadas
- Aprendizados com o Projeto
- Contribuições
VerseBot é uma aplicação Java desenvolvida para interagir com usuários através do Telegram, fornecendo funcionalidades relacionadas a versículos bíblicos. A aplicação consome dados de API externas, gerencia a persistência dos dados em um banco de dados e utiliza serviços de inteligência artificial para enriquecer a experiência do usuário.
- Cadastro de Usuários: Permite que usuários se cadastrem e mantenham um registro persistente no sistema.
- Geração de Versículos Aleatórios: Usuários podem solicitar versículos aleatórios que são buscados através da API da Bíblia Digital.
- Salvamento de Versículos: Usuários podem salvar versículos de interesse, que são armazenados no banco de dados.
- Geração de Devocionais: Utiliza a API do OpenAI para gerar devocionais baseados em versículos específicos.
- Síntese de Voz: Converte textos em áudio usando o serviço IBM Text to Speech.
O VerseBot está disponível no Telegram e pode ser acessado diretamente através do seguinte link: VerseBot no Telegram. Clique no link para iniciar uma conversa com o bot e explorar suas funcionalidades interativas, como geração de versículos, cadastro de usuários, e mais.
O projeto segue uma arquitetura em camadas, separando claramente a lógica de negócios, acesso a dados e interação com APIs externas.
- DAO (Data Access Object): Gerencia a comunicação com o banco de dados.
- BO (Business Object): Contém a lógica de negócios.
- API Clients: Conecta com APIs externas como a Bíblia Digital e OpenAI.
- Service: Orquestra as operações entre a API, BOs e DAOs.
- Model: Define as entidades do sistema.
Usada para buscar versículos aleatórios e informações sobre livros da Bíblia.
Utilizada para gerar textos devocionais baseados em prompts específicos.
Converte textos em áudio para proporcionar uma experiência auditiva dos textos bíblicos.
Essencial para a interação entre o usuário e o VerseBot. Esta API permite que o bot receba mensagens dos usuários e responda com textos, áudios ou comandos interativos.
- Recebimento de Mensagens: O bot recebe mensagens de texto dos usuários através do Telegram.
- Envio de Respostas: O bot envia respostas que podem incluir texto, versículos, devocionais e áudios.
- Menus Interativos: Utiliza botões e comandos interativos para facilitar a navegação do usuário.
- Gerenciamento de Estados: O bot mantém o estado da conversa para cada usuário, permitindo interações complexas e personalizadas.
A aplicação utiliza um arquivo config.properties
para gerenciar configurações sensíveis e variáveis do ambiente.
O arquivo config.properties
deve ser colocado no diretório resources
do projeto. Este diretório é normalmente localizado sob src/main/resources
em projetos Maven.
O arquivo deve conter as chaves e valores para configurações como:
db.username=SEU_USUARIO
db.password=SUA_SENHA
db.url=SEU_URL
telegram.api.key=CHAVE_API_TELEGRAM
openai.api.key=CHAVE_API_OPENAI
tts.api.key=CHAVE_API_IBM_TTS
tts.service.url=URL_SERVICO_TTS
Durante o desenvolvimento do projeto, várias APIs e bibliotecas foram utilizadas. Abaixo estão os links para a documentação de cada uma, que foram essenciais para o entendimento e aplicação correta das tecnologias.
- OpenAI Java Client - Uma biblioteca Java para acessar a GPT-3 da OpenAI. GitHub Repository
- A Bíblia Digital - Uma API para acessar informações bíblicas. GitHub Repository
- Java Telegram Bot API - Uma biblioteca Java para a criação de bots no Telegram. GitHub Repository
- IBM Watson Text to Speech - SDK de Java para o serviço Text to Speech da IBM Watson. GitHub Repository
Estas documentações foram fundamentais para o desenvolvimento das funcionalidades do projeto, permitindo a integração eficiente com os serviços externos utilizados.
Durante o desenvolvimento do VerseBot, tive a oportunidade de aprender e aplicar vários conceitos importantes:
- Uso de HashMaps: Aprendi como utilizar HashMaps para gerenciar estados de usuários de forma eficiente, o que foi crucial para manter o contexto das conversas no bot.
- Consumo de APIs: Melhorei minha habilidade de consumir APIs externas, integrando serviços como a Bíblia Digital, OpenAI e IBM Watson para enriquecer as funcionalidades do bot.
- Criação e Uso da Classe Config: Utilizei uma classe de configuração para gerenciar variáveis de ambiente e configurações sensíveis, facilitando a manutenção e a escalabilidade do projeto.
Esses aprendizados não apenas contribuíram para o sucesso deste projeto, mas também aprimoraram minhas habilidades como desenvolvedor.
Este projeto está aberto para contribuições! Se você tem ideias para melhorá-lo ou encontrou algum bug, fique à vontade para criar um fork e submeter suas alterações via pull request. Toda contribuição é bem-vinda e ajuda a fazer deste projeto um recurso ainda melhor para a comunidade.