Skip to content

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.

Notifications You must be signed in to change notification settings

patinaomi/verseBot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

57 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Documento de Projeto: VerseBot

Índice

Descrição do Projeto

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.

Funcionalidades

  • 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.

Acesso ao Bot

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.

Visão Geral

O projeto segue uma arquitetura em camadas, separando claramente a lógica de negócios, acesso a dados e interação com APIs externas.

Camadas

  1. DAO (Data Access Object): Gerencia a comunicação com o banco de dados.
  2. BO (Business Object): Contém a lógica de negócios.
  3. API Clients: Conecta com APIs externas como a Bíblia Digital e OpenAI.
  4. Service: Orquestra as operações entre a API, BOs e DAOs.
  5. Model: Define as entidades do sistema.

Integração com APIs Externas

API da Bíblia Digital

Usada para buscar versículos aleatórios e informações sobre livros da Bíblia.

OpenAI

Utilizada para gerar textos devocionais baseados em prompts específicos.

IBM Watson Text to Speech

Converte textos em áudio para proporcionar uma experiência auditiva dos textos bíblicos.

API do Telegram

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.

Funcionalidades Implementadas

  • 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.

Configuração e Uso

A aplicação utiliza um arquivo config.properties para gerenciar configurações sensíveis e variáveis do ambiente.

Uso de Arquivo config.properties

Localização

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.

Conteúdo do Arquivo

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

Referências e Documentações Consultadas

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.

Aprendizados com o Projeto

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.

Contribuições

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.

About

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.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages