Skip to content

Latest commit

 

History

114 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Bíblia Plataforma

Uma plataforma bíblica completa, rápida e imersiva (Web + App), construída com Expo Router (React Native + Web) e NativeWind.

🔗 Demo ao vivo: biblia-plataforma.vercel.app

Este projeto unifica a experiência de leitura bíblica, resumos teológicos, acompanhamento de progresso diário e medalhas num único código-fonte escalável, substituindo projetos fragmentados anteriores. O plano arquitetural original que guiou essa unificação está em PLANO-PLATAFORMA.md.

Toda a documentação está organizada no DOCUMENTACAO.md. Para saber em que etapa o projeto está de verdade e o que vem a seguir — comparado com o que apps do mesmo nicho já entregam — consulte o ESTADO-DO-PROJETO.md. O checklist item a item fica em FUNCIONALIDADES.md, o histórico cronológico completo em CHANGELOG.md, e as decisões fechadas em TODO.md.

Tecnologias

  • Expo Router — React Native + Web num único código-fonte, roteamento por arquivo.
  • NativeWind v4 (Tailwind CSS v3) — estilização utilitária cross-platform.
  • TypeScript em todo o projeto.
  • expo-sqlite (nativo) / AsyncStorage (web) — persistência local, mesma interface de repositório nos dois.
  • Jest + @testing-library/react-native — testes unitários das regras de negócio.
  • Hospedagem: Vercel (deploy automático a partir de master).

Licença

MIT — livre pra usar, estudar e adaptar.

Rodando localmente

Certifique-se de ter o Node.js e as ferramentas do Expo instaladas.

npm install
npm run web      # Roda no navegador
npm run android  # Roda no emulador/dispositivo Android
npm run ios      # Roda no simulador iOS (exclusivo para macOS)

Atenção (Dependências): O tailwindcss está fixado na versão ^3.4 de propósito. A versão atual do NativeWind no projeto suporta apenas o Tailwind v3. Não atualize para Tailwind v4 para evitar quebras no build cross-platform.

Testes e verificação de tipos

npx tsc --noEmit   # Checagem de tipos
npx jest           # Testes unitários (core/biblia, core/util)

Estrutura de Diretórios Atual

app/                      Rotas (Expo Router — cada arquivo é uma tela baseada em arquivos)
  _layout.tsx              Layout raiz (Contextos globais como NavbarContext, temas, css)
  (tabs)/                  Navegação principal (Início, Bíblia, Descubra, Você)
    index.tsx                Home imersiva: Versículo do dia, Resumos, Streak e Medalhas
    biblia/                  Leitura bíblica
      escolher/                Fluxo estilo YouVersion (Lista de Livros + Acordeão de capítulos + grade de versículos)
      [livro]/[capitulo]       Tela de leitura avançada (Auto-scroll, foco, grifos, notas, salvos)
    pesquisa.tsx              Busca por temas + busca full-text na Bíblia inteira
    voce.tsx                  Perfil, atividade, gamificação e atalho de configurações
  planos/                  Planos de leitura diária (listagem + progresso por dia)
  resumos/                 Resumos teológicos por livro (listagem + página de cada livro)
  salvo.tsx                Grifos, notas, salvos e pesquisas favoritas, num só lugar
  medalhas.tsx             Tela própria de conquistas/medalhas
  estatisticas.tsx         Estatísticas pessoais de leitura
  configuracoes.tsx        Fonte, tema e outras preferências
  sobre.tsx                Página "Sobre o projeto"

core/                     Lógica de Negócios e Dados (Desacoplada da UI)
  types/                    Interfaces globais de domínio (Grifos, Salvos, Notas, Planos)
  repositories/              Camada de Repositórios (SQLite no nativo, AsyncStorage no web; interface trocável)
  content/                   Motor de resumos, livros e planos de leitura (JSON parseado)
  biblia/                    Leitura e busca full-text offline (JSON embutido no web, SQLite FTS5 no nativo), com fallback pra bible-api.com
  leitura/                   Hooks e lógicas de preferência (Fonte A+/A-, Serifada, Tema, lembretes)
  estatisticas/              Streak, conquistas, atividade agregada e compartilhamentos

components/               Componentes de UI Reutilizáveis (Cards, Botões, Modais)

resumos-biblicos/         Arquivos Markdown fonte com o texto teológico original

scripts/
  gerar-conteudo.js        Gera o JSON consolidado lendo a pasta resumos-biblicos/

Atualizando o conteúdo estático

O conteúdo original dos resumos teológicos mora em resumos-biblicos/**/*.md. Se você alterar algum arquivo lá, execute o construtor:

npm run gerar-conteudo

Isso compilará os arquivos para core/content/dados/livros.json. O app carrega instantaneamente esse arquivo. Nunca edite esse .json manualmente.

Decisões Arquiteturais e de UX

Registro completo (com o raciocínio por trás de cada escolha) em PLANO-PLATAFORMA.md. Resumo:

  • Padrão de Repositório: Nenhuma tela se comunica direto com o banco de dados. Tudo passa por core/repositories (SQLite no nativo, AsyncStorage no web — mesma interface nos dois, trocada automaticamente por plataforma via index.web.ts). Isso garante que uma eventual migração pra Cloud Sync seja invisível para o frontend.
  • Identidade Inicial (OwnerID): Toda interação no app (progresso, grifos, notas, salvos, planos) já é vinculada a um UUID de dispositivo. Isso evita dor de cabeça em migrações futuras para usuários logados.
  • Experiência Imersiva: O app oculta ativamente distrações durante a rolagem do texto bíblico, trocando cabeçalhos grandes por rodapés minimalistas. Suporta auto-scroll inteligente e suave (pulando direto para um versículo escolhido) avaliando a árvore do DOM via onLayout do React Native.
  • Bíblia offline e busca full-text: o texto bíblico completo (Almeida ACF, ~31 mil versículos, domínio público) é embutido no app. No nativo (iOS/Android), é indexado numa tabela virtual FTS5 do SQLite na primeira execução. No web, a busca roda em memória sobre o mesmo JSON embutido (core/biblia/buscaGlobalWeb.ts). Nos dois casos, sem depender de rede nem de API externa.

Funcionalidades Atuais

Checklist completo e detalhado (funcionalidade + UX/UI, item por item) em FUNCIONALIDADES.md. Resumo:

  • Acessibilidade de leitura: controle de tamanho da fonte, fonte serifada opcional e tema dark/light fluído, compartilhados entre leitura de resumo e de capítulo.
  • Modo Foco e Wayfinding: barras de navegação que somem no scroll durante a leitura, barra fixa de navegação entre capítulos.
  • Grifos em várias cores, notas e versículos salvos: sistema completo com persistência local, reunidos numa única tela (/salvo).
  • Busca: por nome/conteúdo dos resumos e por palavra em toda a Bíblia (full-text local), tolerante a acentos.
  • Planos de leitura diária: trilhas com progresso por dia e lembrete discreto na Início quando um plano fica parado.
  • Progresso, streak e conquistas: sequência de dias lendo, medalhas por marcos do cânon, estatísticas pessoais de leitura.
  • Compartilhamento de versículos: cartão de imagem gerado na hora (Canvas no web, captura de View no nativo), com texto, referência e identidade visual do app.
  • Privacidade em primeiro lugar: sem conta obrigatória — perfil, progresso e grifos ficam isolados por um ID anônimo de dispositivo. Exportar (JSON) ou apagar todos os seus dados a qualquer momento, direto em Configurações.

Autor

Feito por @LoadCG (Cauan Gabriel).

About

Plataforma unica (web + app) de leitura e estudo biblico, com resumos historicos dos 66 livros da Biblia.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages