{"id":22930446,"url":"https://github.com/patinaomi/versebot","last_synced_at":"2026-05-18T04:32:44.519Z","repository":{"id":236789374,"uuid":"793155066","full_name":"patinaomi/verseBot","owner":"patinaomi","description":"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.","archived":false,"fork":false,"pushed_at":"2024-05-08T22:47:40.000Z","size":6694,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-01T17:20:54.325Z","etag":null,"topics":["api","java","openai","telegram-bot","telegram-bot-api","tts-api","watson-assistant"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/patinaomi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-04-28T15:29:02.000Z","updated_at":"2024-06-10T00:18:00.000Z","dependencies_parsed_at":"2024-06-10T02:43:28.650Z","dependency_job_id":null,"html_url":"https://github.com/patinaomi/verseBot","commit_stats":null,"previous_names":["patinaomi/api-biblia","patinaomi/versebot"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/patinaomi/verseBot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/patinaomi%2FverseBot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/patinaomi%2FverseBot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/patinaomi%2FverseBot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/patinaomi%2FverseBot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/patinaomi","download_url":"https://codeload.github.com/patinaomi/verseBot/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/patinaomi%2FverseBot/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266618972,"owners_count":23957273,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-23T02:00:09.312Z","response_time":66,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","java","openai","telegram-bot","telegram-bot-api","tts-api","watson-assistant"],"created_at":"2024-12-14T10:28:08.744Z","updated_at":"2025-10-06T06:29:53.602Z","avatar_url":"https://github.com/patinaomi.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Documento de Projeto: VerseBot\n\u003cp align=\"center\"\u003e\u003cimg src=\"http://img.shields.io/static/v1?label=STATUS\u0026message=CONCLUIDO\u0026color=GREEN\u0026style=for-the-badge\"/\u003e\u003c/p\u003e\n\n## Índice\n\n- [Descrição do Projeto](#descrição-do-projeto)\n- [Funcionalidades](#funcionalidades)\n- [Acesso ao Bot](#acesso-ao-bot)\n- [Visão Geral](#visão-geral)\n  - [Camadas](#camadas)\n- [Integração com APIs Externas](#integração-com-apis-externas)\n  - [API da Bíblia Digital](#api-da-bíblia-digital)\n  - [OpenAI](#openai)\n  - [IBM Watson Text to Speech](#ibm-watson-text-to-speech)\n  - [API do Telegram](#api-do-telegram)\n- [Configuração e Uso](#configuração-e-uso)\n  - [Uso de Arquivo config.properties](#uso-de-arquivo-configproperties)\n- [Referências e Documentações Consultadas](#referências-e-documentações-consultadas)\n- [Aprendizados com o Projeto](#aprendizados-com-o-projeto)\n- [Contribuições](#contribuições)\n\n\n\n## Descrição do Projeto\n\nVerseBot é 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.\n\n## Funcionalidades\n\n- **Cadastro de Usuários**: Permite que usuários se cadastrem e mantenham um registro persistente no sistema.\n- **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.\n- **Salvamento de Versículos**: Usuários podem salvar versículos de interesse, que são armazenados no banco de dados.\n- **Geração de Devocionais**: Utiliza a API do OpenAI para gerar devocionais baseados em versículos específicos.\n- **Síntese de Voz**: Converte textos em áudio usando o serviço IBM Text to Speech.\n\n## Acesso ao Bot\n\nO VerseBot está disponível no Telegram e pode ser acessado diretamente através do seguinte link: [VerseBot no Telegram](https://t.me/versiculo_do_dia_bot).\nClique 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.\n\n\n## Visão Geral\n\n\nO projeto segue uma arquitetura em camadas, separando claramente a lógica de negócios, acesso a dados e interação com APIs externas.\n\n### Camadas\n\n1. **DAO (Data Access Object)**: Gerencia a comunicação com o banco de dados.\n2. **BO (Business Object)**: Contém a lógica de negócios.\n3. **API Clients**: Conecta com APIs externas como a Bíblia Digital e OpenAI.\n4. **Service**: Orquestra as operações entre a API, BOs e DAOs.\n5. **Model**: Define as entidades do sistema.\n\n## Integração com APIs Externas\n\n### API da Bíblia Digital\n\nUsada para buscar versículos aleatórios e informações sobre livros da Bíblia.\n\n### OpenAI\n\nUtilizada para gerar textos devocionais baseados em prompts específicos.\n\n### IBM Watson Text to Speech\n\nConverte textos em áudio para proporcionar uma experiência auditiva dos textos bíblicos.\n### API do Telegram \nEssencial 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. \n#### Funcionalidades Implementadas \n-  **Recebimento de Mensagens**: O bot recebe mensagens de texto dos usuários através do Telegram. \n- **Envio de Respostas**: O bot envia respostas que podem incluir texto, versículos, devocionais e áudios. \n-  **Menus Interativos**: Utiliza botões e comandos interativos para facilitar a navegação do usuário. \n-  **Gerenciamento de Estados**: O bot mantém o estado da conversa para cada usuário, permitindo interações complexas e personalizadas.\n\n## Configuração e Uso\n\nA aplicação utiliza um arquivo `config.properties` para gerenciar configurações sensíveis e variáveis do ambiente.\n## Uso de Arquivo `config.properties`\n\n### Localização\n\nO arquivo `config.properties` deve ser colocado no diretório `resources` do projeto. Este diretório é normalmente localizado sob `src/main/resources` em projetos Maven.\n\n### Conteúdo do Arquivo\n\nO arquivo deve conter as chaves e valores para configurações como:\n\n```properties\ndb.username=SEU_USUARIO\ndb.password=SUA_SENHA\ndb.url=SEU_URL\ntelegram.api.key=CHAVE_API_TELEGRAM\nopenai.api.key=CHAVE_API_OPENAI\ntts.api.key=CHAVE_API_IBM_TTS\ntts.service.url=URL_SERVICO_TTS\n```\n\n\n## Referências e Documentações Consultadas\n\nDurante 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.\n\n- **OpenAI Java Client** - Uma biblioteca Java para acessar a GPT-3 da OpenAI. [GitHub Repository](https://github.com/TheoKanning/openai-java)\n- **A Bíblia Digital** - Uma API para acessar informações bíblicas. [GitHub Repository](https://github.com/omarciovsena/abibliadigital)\n- **Java Telegram Bot API** - Uma biblioteca Java para a criação de bots no Telegram. [GitHub Repository](https://github.com/pengrad/java-telegram-bot-api)\n- **IBM Watson Text to Speech** - SDK de Java para o serviço Text to Speech da IBM Watson. [GitHub Repository](https://github.com/watson-developer-cloud/java-sdk/tree/master/text-to-speech)\n\nEstas documentações foram fundamentais para o desenvolvimento das funcionalidades do projeto, permitindo a integração eficiente com os serviços externos utilizados.\n\n## Aprendizados com o Projeto\n\nDurante o desenvolvimento do VerseBot, tive a oportunidade de aprender e aplicar vários conceitos importantes:\n\n- **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.\n- **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.\n- **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.\n\nEsses aprendizados não apenas contribuíram para o sucesso deste projeto, mas também aprimoraram minhas habilidades como desenvolvedor.\n\n## Contribuições\n\nEste 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.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpatinaomi%2Fversebot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpatinaomi%2Fversebot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpatinaomi%2Fversebot/lists"}