Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Aprimorando a seleção de versículos bíblicos #2

Closed
eoSalinas opened this issue Mar 20, 2024 · 15 comments · Fixed by #4
Closed

Aprimorando a seleção de versículos bíblicos #2

eoSalinas opened this issue Mar 20, 2024 · 15 comments · Fixed by #4

Comments

@eoSalinas
Copy link
Owner

Olá a todos,

Resolvi abrir essa issue para abordar uma melhoria crucial no projeto, relacionada aos versículos - vulgo elemento core da aplicação - que são consumidos da API fornecida pelo @omarciovsena.

Atualmente, utilizamos a rota /api/verses/nvi/pt/random para selecionar aleatoriamente um versículo bíblico. No entanto, essa abordagem apresenta uma lacuna significativa: a falta de contexto nos versículos selecionados.

Frequentemente, um único versículo isolado não transmite uma mensagem clara ou inspiradora, pois pode fazer parte de um pensamento mais amplo que se estende por vários versículos ou ser parte de um diálogo maior. Por exemplo:

"Então Abisai, filho de Zeruia, disse ao rei: Por que esse cão morto amaldiçoa o rei meu senhor? Permite que eu lhe corte a cabeça."

Inclusive foi o versículo de hoje, dia 20/03/2023:

versículo-sem-muito-contexto

Como podemos perceber, versículos sem contexto adequado não proporcionam reflexão ou inspiração aos usuários, a não ser que você já conheça aquele trecho.

Essa falta de contexto decorre da natureza aleatória da rota utilizada. Não podemos prever o tipo de mensagem que será entregue ao usuário, nem tão pouco se terá relevância ou sentido.

Além disso, gostaria de esclarecer que isso não é uma crítica a API. Afinal, a seleção de versículos aleatórios é justamente isso, aleatória! Essa aleatoriedade é, na verdade, um sinal de que a API está funcionando conforme esperado.

A questão é como podemos lidar com isso?

Possível solução 🤓

Para abordar essa problemática, proponho a criação de um arquivo JSON contendo versículos pré-selecionados. Essa abordagem permitirá uma seleção mais criteriosa de versículos, garantindo que cada mensagem tenha um contexto significativo. Além disso, abrirá uma grande oportunidade para a comunidade contribuir, adicionando novos versículos ao arquivo.

Felizmente, a API também fornece uma rota para buscar versículos específicos, o que simplifica nossa implementação.

Vejo 2 pontos importantes a serem considerados para garantir o funcionamento correto desta solução:

  • Evitar repetições de versículos no arquivo, pois isso aumentaria a probabilidade de versículos serem selecionados várias vezes.
  • Padronizar o formato do arquivo e a identificação dos versículos. (Acho que um JSON Schema resolve)

Isso é o que eu consegui enxergar! Encorajo todos a compartilharem suas ideias e perspectivas sobre como poderíamos lidar com essa questão, ou até mesmo completar a minha proposta.

A diversidade de opiniões e experiências é fundamental para encontrarmos a melhor solução possível.

@rafaeljustinox
Copy link

Opa. Conhecendo o projeto agora. Legal a proposta.
Vou deixar aqui algumas sugestões, mas tudo depende do objetivo do projeto como produto e de onde essa API vai ser consumida.

Se a ideia é apresentar apenas um versículo aleatório da bíblia, sem considerar contexto atual, sentimento ou algo do tipo, faz sentido ter um map pré-definido de versículos recomendados. Como você mencionou, alguém vai precisar alimentar isso. Se for a proposta dessa feature, é necessário ter contribuidores suficientes para deixar essa base de recomendados bem preenchida e com qualidade.

Uma outra ideia poderia ser através de trending. Fornecendo uma rota para que os usuários possam "curtir/votar" em versículos, vc já poderia usar essa base pra ser os versículos recomendados. Mas novamente, depende do seu objetivo. A ideia do Random é realmente ser random?

Se a proposta for a recomendação de um versículo de forma mais inteligente, considerando algum tipo de contexto do client, acho que faz sentido ir pra uma abordagem em que sua base de versículos contém detalhes como emoção, sentimento, tema, etc. Isso poderia até ser passado como parâmetro pra rota. É uma boa oportunidade pra você trabalhar com LLM se for o caso.

Eu particularmente, em um app de Bíblia, prefiro que o "versículo do dia" não seja algo aleatório. Por exemplo, se aproximando da páscoa, sugerir um versículo relacionado. Em um cenário caótico de guerra, oferecer um versículo que tenha a ver com o tema. No Natal, versículos também relacionados. Algum acontecimento mundial, oferecer um versículo a ver com o tema.

Um outro ponto, é requisito da feature disponibilizar apenas um único versículo? Se não for, acho que faz mais sentido a seleção de um ou mais versículos subsequentes por vez para dar um contexto maior da mensagem.

Como eu falei, tudo vai depender de qual é a sua visão para o projeto.
Espero ter contribuído com algumas ideias. Desejo sucesso!

@johanvilela
Copy link
Contributor

Primeiramente, parabéns pela iniciativa!

Gostei bastante da sua proposta e me coloco à disposição para contribuir com o projeto.

@eoSalinas, seguindo a sua ideia, eu proponho à princípio uma solução simples, mas que futuramente pode ser melhorada.

Pensei em criar um arquivo JSON com uma lista contendo 256 versículos selecionados manualmente mesmo. Dá pra procurar no google algo do tipo: "Versículos bíblicos favoritos", e então ir lendo e adicionando manualmente na lista os que forem "bons".

Tendo a lista pronta, eu posso usar um versículo por dia durante o ano. Por exemplo: Hoje é dia 21 de março de 2024, que representa o dia 81 desse ano. Sendo assim eu posso exibir o item na posição 81 da lista.

Como eu disse essa é uma ideia bem simples, que resolve o problema atual, e pode ser melhorada futuramente.

Se achar que essa ideia válida eu posso implementar pra gente ver como fica.

@clovisdanielss
Copy link
Contributor

Olha, acredito que adicionar versos um a um, manualmente, talvez não seja interessante.
Tava dando uma pesquisada e encontrei essa api https://scripture.api.bible/
Para projetos sem uso comercial, ela garante o seguinte:
image

Não sei o que é melhor. Também pensei em fazer uma raspagem usando várias fontes de dados para preencher uma base de versículos, mas aí não sei se pode né ? Legalmente falando. Teria que ser pesquisado isso.

Enfim, acredito que é importante ser pontual na resolução de problemas, porém é necessário avaliar o tempo de entrega. Acredito que um processo mais manual poderia tomar muito tempo para ter uma base legal.

Não acho que agora seria um momento para trabalhar com LLM, depois quem sabe. Mas também é só uma opinião, posso estar errado rsrsrs.

eoSalinas added a commit that referenced this issue Mar 23, 2024
Added a new route in our application at `api/random-verse` to select random verses from a pre-selected group.

This addition addresses the issue described in #2, where verses could be returned without context or meaning. Now, the selected verses will be more meaningful and relevant.

See issue #2
@eoSalinas
Copy link
Owner Author

Opa. Conhecendo o projeto agora. Legal a proposta. Vou deixar aqui algumas sugestões, mas tudo depende do objetivo do projeto como produto e de onde essa API vai ser consumida.

Se a ideia é apresentar apenas um versículo aleatório da bíblia, sem considerar contexto atual, sentimento ou algo do tipo, faz sentido ter um map pré-definido de versículos recomendados. Como você mencionou, alguém vai precisar alimentar isso. Se for a proposta dessa feature, é necessário ter contribuidores suficientes para deixar essa base de recomendados bem preenchida e com qualidade.

Uma outra ideia poderia ser através de trending. Fornecendo uma rota para que os usuários possam "curtir/votar" em versículos, vc já poderia usar essa base pra ser os versículos recomendados. Mas novamente, depende do seu objetivo. A ideia do Random é realmente ser random?

Se a proposta for a recomendação de um versículo de forma mais inteligente, considerando algum tipo de contexto do client, acho que faz sentido ir pra uma abordagem em que sua base de versículos contém detalhes como emoção, sentimento, tema, etc. Isso poderia até ser passado como parâmetro pra rota. É uma boa oportunidade pra você trabalhar com LLM se for o caso.

Eu particularmente, em um app de Bíblia, prefiro que o "versículo do dia" não seja algo aleatório. Por exemplo, se aproximando da páscoa, sugerir um versículo relacionado. Em um cenário caótico de guerra, oferecer um versículo que tenha a ver com o tema. No Natal, versículos também relacionados. Algum acontecimento mundial, oferecer um versículo a ver com o tema.

Um outro ponto, é requisito da feature disponibilizar apenas um único versículo? Se não for, acho que faz mais sentido a seleção de um ou mais versículos subsequentes por vez para dar um contexto maior da mensagem.

Como eu falei, tudo vai depender de qual é a sua visão para o projeto. Espero ter contribuído com algumas ideias. Desejo sucesso!

Opa @rafaeljustinox, beleza?

Eu acho sensacional a ideia de utilizar LLM, no entanto concordo com o @clovisdanielss parcialmente, acredito que agora não seja o momento ideal para aplicarmos isso, vou te explicar o porque:

Inicialmente a proposta é literalmente apresentar apenas um versículo aleatório da bíblia, mas que traga alguma mensagem, seja de motivação, reflexão por aí vai...

O map pré-definido de versículos recomendados representa a possibilidade de outras pessoas poderem fazer contribuições simples, mas que tem um impacto concreto no projeto e como ele interagem com o usuário.

Acredito que o Verse possa ser uma porta de entrada para quem buscar fazer sua primeira contribuição em algum projeto da comunidade(no caso pode ser só adicionando um versículo a lista), então mesmo que seja um trabalho mais "manual" acredito que vale a pena, entende? Isso faz sentido? 😂

A respeito do trending, é uma ideia que sem dúvidas vale muito a pena explorar futuramente, até como uma forma de engajar os usuários ou os contribuidores do projeto. Só não sei como poderiamos aplicar isso. Pode parecer que não, mas eu tive uma ideia similar, aliás fiz uma anotação dessa sua ideia, para que possamos explorar!

Todos os pontos levantados por você são de se pensar.

Muito obrigado pelas sugestões, de coração! Espero te ver mais vezes por aqui.

@eoSalinas
Copy link
Owner Author

Primeiramente, parabéns pela iniciativa!

Gostei bastante da sua proposta e me coloco à disposição para contribuir com o projeto.

@eoSalinas, seguindo a sua ideia, eu proponho à princípio uma solução simples, mas que futuramente pode ser melhorada.

Pensei em criar um arquivo JSON com uma lista contendo 256 versículos selecionados manualmente mesmo. Dá pra procurar no google algo do tipo: "Versículos bíblicos favoritos", e então ir lendo e adicionando manualmente na lista os que forem "bons".

Tendo a lista pronta, eu posso usar um versículo por dia durante o ano. Por exemplo: Hoje é dia 21 de março de 2024, que representa o dia 81 desse ano. Sendo assim eu posso exibir o item na posição 81 da lista.

Como eu disse essa é uma ideia bem simples, que resolve o problema atual, e pode ser melhorada futuramente.

Se achar que essa ideia válida eu posso implementar pra gente ver como fica.

@johanvilela acho super válido essa ideia por abrir oportunidade de outras pessoas contribuirem adicionando novos versículos ao projeto, inclusive fiz uma implementação similiar a sua, mas ao invés de utilizar um versículo por dia, eu deixei ele random.

Nota de rodapé: O versículo random como foi implementado pode gerar repetição em algum momento, mas é de acordo com a quantidade de versículos, exemplo: se tiver 1.000 versículos a probabilidade é de 1 em 1.000. Ou seja quanto maior a lista, menor a probabilidade de repetição. Mas não sei até onde vale a pena 😅

Trarei outro comentário aqui nessa discussão explicando em mais detalhes o que fiz, e vou te marcar. Talvez possa fazer muito sentido juntar nossas ideias! 🧠 🤯

@eoSalinas
Copy link
Owner Author

Olha, acredito que adicionar versos um a um, manualmente, talvez não seja interessante. Tava dando uma pesquisada e encontrei essa api https://scripture.api.bible/ Para projetos sem uso comercial, ela garante o seguinte: image

Não sei o que é melhor. Também pensei em fazer uma raspagem usando várias fontes de dados para preencher uma base de versículos, mas aí não sei se pode né ? Legalmente falando. Teria que ser pesquisado isso.

Enfim, acredito que é importante ser pontual na resolução de problemas, porém é necessário avaliar o tempo de entrega. Acredito que um processo mais manual poderia tomar muito tempo para ter uma base legal.

Não acho que agora seria um momento para trabalhar com LLM, depois quem sabe. Mas também é só uma opinião, posso estar errado rsrsrs.

@clovisdanielss também acredito que não é o momento para trabalharmos com o LLM, mas poder ser uma possibilidade a ser explorada no futuro.

É interessante ressaltar que estamos utilizando a API do @omarciovsena, então não há a necessidade de adicionar os versículos, apenas filtrar os que são relevantes! Por isso havia comentado sobre o arquivo JSON, a ideia é apenas referênciar os versículos.

De fato isso se torna mais manual, e um processo mais manual poderia tomar muito tempo para ter uma base legal como você mesmo mencionou, entretanto acredito valer a pena pois podemos contar com contribuidores adicionando versículos que eles julgam valiosos, é uma excelente oportunidade para que as pessoas façam suas primeiras contribuições!

Querendo ou não a aplicação está rodando mesmo sem contexto em alguns versículos, acredito que temos tempo para trabalharmos nisso!

O que você acha?

Muito obrigado pelas sugestões! 💯

@eoSalinas
Copy link
Owner Author

@rafaeljustinox , @johanvilela , @clovisdanielss peço desculpas pela demora no retorno. Nesse meio tempo eu absorvi suas sugestões e fiz a seguinte possível implementação:

Adicionei um arquivo JSON para referênciar os versículos, acompanhado de um schema para garantir a consistência dos dados e evitar duplicatas. Inclusive tem intelliesense para os livros da bíblia:

intellisense-books

Achei isso muito massa! 😂

Agora ao realizar um commit, é validado se os dados seguem o padrão do schema; se não, o commit é bloqueado.

Essa abordagem procura facilitar futuras contribuições da comunidade.

Optei por seguir dessa maneira, justamente para ter esse trabalho manual e consequentemente contribuições!

Pensei nesse projeto como uma maneira das pessoas realizarem suas primeiras contribuições, pois adicionar um versículo ao projeto é uma tarefa simples e manual, porém de grande valor nesse contexto!

Apresentarei mais detalhes a respeito desse tipo de contribuição, em uma próxima issue que estou trabalhando ansiosamente.

Por favor veja a PR #4 para ter mais detalhes da implementação, pode ser que deixei passar algo, e acima de tudo fique à vontade para sugerir melhorias!

@clovisdanielss
Copy link
Contributor

Hmm, não sei como não pensei em pegar apenas as referências.

Assim da pra fazer uma raspagem de alguma API que forneça os versos aleatórios para meditação (sem ser totalmente aleatório como na presente API)

Transformar o resultado da raspagem em um JSON no formato que você estabeleceu. Aí o projeto já ficaria com uma base bem legal.

Faz sentido ?

@eoSalinas
Copy link
Owner Author

Hmm, não sei como não pensei em pegar apenas as referências.

Assim da pra fazer uma raspagem de alguma API que forneça os versos aleatórios para meditação (sem ser totalmente aleatório como na presente API)

Transformar o resultado da raspagem em um JSON no formato que você estabeleceu. Aí o projeto já ficaria com uma base bem legal.

Faz sentido ?

Fez sentido @clovisdanielss, mas eu tenho uma outra sugestão:

Essa API que estamos utilizando atualmente também tem uma rota para buscar um versículo específico diretamente: verses/nvi/:abbrev/:chapter/:number, dessa maneira apenas selecionamos alguma referência de versículo pré-selecionado dentro do arquivo JSON de forma aleatória e chamamos a API para aquele versículo sorteado. A API por sua vez nos retorna o texto do versículo solicitado.

Acredito que fica até mais fácil assim, pois nem precisamos fazer a raspagem dos dados, apenas consumir a API.

Possa ser que fique meio confuso a minha explicação, então olha esse trecho de código aqui.

@clovisdanielss
Copy link
Contributor

clovisdanielss commented Mar 24, 2024

Hmm, não sei como não pensei em pegar apenas as referências.

Assim da pra fazer uma raspagem de alguma API que forneça os versos aleatórios para meditação (sem ser totalmente aleatório como na presente API)

Transformar o resultado da raspagem em um JSON no formato que você estabeleceu. Aí o projeto já ficaria com uma base bem legal.

Faz sentido ?

Fez sentido @clovisdanielss, mas eu tenho uma outra sugestão:

Essa API que estamos utilizando atualmente também tem uma rota para buscar um versículo específico diretamente: verses/nvi/:abbrev/:chapter/:number, dessa maneira apenas selecionamos alguma referência de versículo pré-selecionado dentro do arquivo JSON de forma aleatória e chamamos a API para aquele versículo sorteado. A API por sua vez nos retorna o texto do versículo solicitado.

Acredito que fica até mais fácil assim, pois nem precisamos fazer a raspagem dos dados, apenas consumir a API.

Possa ser que fique meio confuso a minha explicação, então olha esse trecho de código aqui.

Sim, mas acredito que eu que não fui claro. Você precisa saber a referência do versículo que quer puxar, não é?

Pois pelo que você disse, a API que você consome não apresenta versículo aleatório contextualizado, mas sim totalmente aleatório. Sendo assim a opção que você deu é fazer a consulta diretamente do verso, onde você teria um JSON com as referências e a consulta seria feita pela mesma API, porém com versos pré selecionado.

Então, ao invés de criar um JSON manualmente, seria melhor fazer uma raspagem e gerar o JSON com as referências de versículo. Então você usaria para consumir a API que você está falando.

Não estou falando para usar outra API, apenas para puxar as referências de versos, seja por raspagem web ou usando uma terceira API que já traga versículos contextualizados.

Não estou dando outra ideia, estou apenas indicando como você pode trabalhar dentro da sua ideia sem precisar depender de feedback humano.

@talison-cardoso
Copy link

Li as mensagens acima e beijos muitas ideias.
Acerca de uma que li sobre o versículo ser meio "sem sentido", que tal da a opção da pessoa ler o capítulo inteiro na qual o versículo faz parte. "Veja o contexto".

@eoSalinas
Copy link
Owner Author

Li as mensagens acima e beijos muitas ideias. Acerca de uma que li sobre o versículo ser meio "sem sentido", que tal da a opção da pessoa ler o capítulo inteiro na qual o versículo faz parte. "Veja o contexto".

@talison-cardoso, essa ideia foi bem interessante!

Acredito que o "Veja o contexto" perde um pouco a proposta de um versículo ao dia, mas ao mesmo tempo é uma feature que pode trazer mais valor a aplicação!

No entanto já vi algumas outras aplicações com esse mesmo conceito, será que vale a pena? Ou podemos pensar em algo que torne essa experiência diferente das demais?

@eoSalinas
Copy link
Owner Author

Hmm, não sei como não pensei em pegar apenas as referências.
Assim da pra fazer uma raspagem de alguma API que forneça os versos aleatórios para meditação (sem ser totalmente aleatório como na presente API)
Transformar o resultado da raspagem em um JSON no formato que você estabeleceu. Aí o projeto já ficaria com uma base bem legal.
Faz sentido ?

Fez sentido @clovisdanielss, mas eu tenho uma outra sugestão:
Essa API que estamos utilizando atualmente também tem uma rota para buscar um versículo específico diretamente: verses/nvi/:abbrev/:chapter/:number, dessa maneira apenas selecionamos alguma referência de versículo pré-selecionado dentro do arquivo JSON de forma aleatória e chamamos a API para aquele versículo sorteado. A API por sua vez nos retorna o texto do versículo solicitado.
Acredito que fica até mais fácil assim, pois nem precisamos fazer a raspagem dos dados, apenas consumir a API.
Possa ser que fique meio confuso a minha explicação, então olha esse trecho de código aqui.

Sim, mas acredito que eu que não fui claro. Você precisa saber a referência do versículo que quer puxar, não é?

Pois pelo que você disse, a API que você consome não apresenta versículo aleatório contextualizado, mas sim totalmente aleatório. Sendo assim a opção que você deu é fazer a consulta diretamente do verso, onde você teria um JSON com as referências e a consulta seria feita pela mesma API, porém com versos pré selecionado.

Então, ao invés de criar um JSON manualmente, seria melhor fazer uma raspagem e gerar o JSON com as referências de versículo. Então você usaria para consumir a API que você está falando.

Não estou falando para usar outra API, apenas para puxar as referências de versos, seja por raspagem web ou usando uma terceira API que já traga versículos contextualizados.

Não estou dando outra ideia, estou apenas indicando como você pode trabalhar dentro da sua ideia sem precisar depender de feedback humano.

Ahhh entendi @clovisdanielss! Showww excelente, sua ideia é muito boa! Isso economiza muito tempo e faz total sentido!

Mas agora serei totalmente contra intuitivo! 😂

O que eu havia pensado é trazer o máximo de pessoas que conseguissemos para contribuir adicionando versículos ao projeto!

Dessa maneira muitas pessoas que nunca fizeram alguma contribuição por achar que precisa ser algo complexo ou outro motivo, tenha uma porta de entrada extremamente fácil.
Agora, será que vale a pena fazer esse trade-off? O que acha?

Posso estar sendo maluco, mas do meu ponto de vista acredito que seria muito legal abrir essa oportuinidade de impulsionar as pessoas a fazerem suas primeiras contribuições de maneira extremamente simples porém de grande valor para o projeto! 🤩

@clovisdanielss
Copy link
Contributor

Hmm, não sei como não pensei em pegar apenas as referências.
Assim da pra fazer uma raspagem de alguma API que forneça os versos aleatórios para meditação (sem ser totalmente aleatório como na presente API)
Transformar o resultado da raspagem em um JSON no formato que você estabeleceu. Aí o projeto já ficaria com uma base bem legal.
Faz sentido ?

Fez sentido @clovisdanielss, mas eu tenho uma outra sugestão:
Essa API que estamos utilizando atualmente também tem uma rota para buscar um versículo específico diretamente: verses/nvi/:abbrev/:chapter/:number, dessa maneira apenas selecionamos alguma referência de versículo pré-selecionado dentro do arquivo JSON de forma aleatória e chamamos a API para aquele versículo sorteado. A API por sua vez nos retorna o texto do versículo solicitado.
Acredito que fica até mais fácil assim, pois nem precisamos fazer a raspagem dos dados, apenas consumir a API.
Possa ser que fique meio confuso a minha explicação, então olha esse trecho de código aqui.

Sim, mas acredito que eu que não fui claro. Você precisa saber a referência do versículo que quer puxar, não é?
Pois pelo que você disse, a API que você consome não apresenta versículo aleatório contextualizado, mas sim totalmente aleatório. Sendo assim a opção que você deu é fazer a consulta diretamente do verso, onde você teria um JSON com as referências e a consulta seria feita pela mesma API, porém com versos pré selecionado.
Então, ao invés de criar um JSON manualmente, seria melhor fazer uma raspagem e gerar o JSON com as referências de versículo. Então você usaria para consumir a API que você está falando.
Não estou falando para usar outra API, apenas para puxar as referências de versos, seja por raspagem web ou usando uma terceira API que já traga versículos contextualizados.
Não estou dando outra ideia, estou apenas indicando como você pode trabalhar dentro da sua ideia sem precisar depender de feedback humano.

Ahhh entendi @clovisdanielss! Showww excelente, sua ideia é muito boa! Isso economiza muito tempo e faz total sentido!

Mas agora serei totalmente contra intuitivo! 😂

O que eu havia pensado é trazer o máximo de pessoas que conseguissemos para contribuir adicionando versículos ao projeto!

Dessa maneira muitas pessoas que nunca fizeram alguma contribuição por achar que precisa ser algo complexo ou outro motivo, tenha uma porta de entrada extremamente fácil. Agora, será que vale a pena fazer esse trade-off? O que acha?

Posso estar sendo maluco, mas do meu ponto de vista acredito que seria muito legal abrir essa oportuinidade de impulsionar as pessoas a fazerem suas primeiras contribuições de maneira extremamente simples porém de grande valor para o projeto! 🤩

Ish mano, aí só pela fé mesmo. Entendi seu propósito.
Particularmente, eu acho difícil trazer contribuidores para um projeto e não sei se essa abordagem seria interessante, visto que a consequência me parece que tomaria mais tempo do que deveria. E tipo, na minha visão quem gosta de contribuir gosta mais de meter a mão na massa, então popular um JSON não parece muito atrativo.

Por fim, penso que o ideal seria deixar redondo essa feature core, e depois pensar para onde você gostaria de levar o projeto. (Inclusive, vi que tá sem licença ainda né ? Acredito ser bom colocar uma, não manjo de projeto open source assim, mas sei que é importante)

Mas entendo seu ponto de vista de querer engajar o povo dessa forma, e se você achar que é o melhor caminho tá beleza.

@eoSalinas
Copy link
Owner Author

eoSalinas commented Mar 26, 2024

Hmm, não sei como não pensei em pegar apenas as referências.
Assim da pra fazer uma raspagem de alguma API que forneça os versos aleatórios para meditação (sem ser totalmente aleatório como na presente API)
Transformar o resultado da raspagem em um JSON no formato que você estabeleceu. Aí o projeto já ficaria com uma base bem legal.
Faz sentido ?

Fez sentido @clovisdanielss, mas eu tenho uma outra sugestão:
Essa API que estamos utilizando atualmente também tem uma rota para buscar um versículo específico diretamente: verses/nvi/:abbrev/:chapter/:number, dessa maneira apenas selecionamos alguma referência de versículo pré-selecionado dentro do arquivo JSON de forma aleatória e chamamos a API para aquele versículo sorteado. A API por sua vez nos retorna o texto do versículo solicitado.
Acredito que fica até mais fácil assim, pois nem precisamos fazer a raspagem dos dados, apenas consumir a API.
Possa ser que fique meio confuso a minha explicação, então olha esse trecho de código aqui.

Sim, mas acredito que eu que não fui claro. Você precisa saber a referência do versículo que quer puxar, não é?
Pois pelo que você disse, a API que você consome não apresenta versículo aleatório contextualizado, mas sim totalmente aleatório. Sendo assim a opção que você deu é fazer a consulta diretamente do verso, onde você teria um JSON com as referências e a consulta seria feita pela mesma API, porém com versos pré selecionado.
Então, ao invés de criar um JSON manualmente, seria melhor fazer uma raspagem e gerar o JSON com as referências de versículo. Então você usaria para consumir a API que você está falando.
Não estou falando para usar outra API, apenas para puxar as referências de versos, seja por raspagem web ou usando uma terceira API que já traga versículos contextualizados.
Não estou dando outra ideia, estou apenas indicando como você pode trabalhar dentro da sua ideia sem precisar depender de feedback humano.

Ahhh entendi @clovisdanielss! Showww excelente, sua ideia é muito boa! Isso economiza muito tempo e faz total sentido!
Mas agora serei totalmente contra intuitivo! 😂
O que eu havia pensado é trazer o máximo de pessoas que conseguissemos para contribuir adicionando versículos ao projeto!
Dessa maneira muitas pessoas que nunca fizeram alguma contribuição por achar que precisa ser algo complexo ou outro motivo, tenha uma porta de entrada extremamente fácil. Agora, será que vale a pena fazer esse trade-off? O que acha?
Posso estar sendo maluco, mas do meu ponto de vista acredito que seria muito legal abrir essa oportuinidade de impulsionar as pessoas a fazerem suas primeiras contribuições de maneira extremamente simples porém de grande valor para o projeto! 🤩

Ish mano, aí só pela fé mesmo. Entendi seu propósito. Particularmente, eu acho difícil trazer contribuidores para um projeto e não sei se essa abordagem seria interessante, visto que a consequência me parece que tomaria mais tempo do que deveria. E tipo, na minha visão quem gosta de contribuir gosta mais de meter a mão na massa, então popular um JSON não parece muito atrativo.

Por fim, penso que o ideal seria deixar redondo essa feature core, e depois pensar para onde você gostaria de levar o projeto. (Inclusive, vi que tá sem licença ainda né ? Acredito ser bom colocar uma, não manjo de projeto open source assim, mas sei que é importante)

Mas entendo seu ponto de vista de querer engajar o povo dessa forma, e se você achar que é o melhor caminho tá beleza.

É um grande desafio, mas acredito que pode valer a pena! Porém como disse anteriormente, você tem lógica em tudo o que sugeriu! Obrigado pelas sugestões @clovisdanielss, espero te ver mais vezes por aqui!

Ahh e a respeito da licença, estou dando uma olhada, pretento adicionar em breve. Valeu pelo toque!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
5 participants