Skip to content

JonathanPR0/lectio

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 

Repository files navigation

📖 Lectio

Lectio Logo

Um quiz gamificado sobre textos bíblicos diários

React TypeScript AWS Vite Tailwind CSS

🎯 Sobre o Projeto

O Lectio é uma aplicação web gamificada que transforma o estudo bíblico diário em uma experiência interativa e envolvente. Através de quizzes baseados nos textos diários das Testemunhas de Jeová, os usuários podem testar seus conhecimentos, acumular pontos e manter uma "ofensiva" de dias consecutivos de estudo.

✨ Principais Funcionalidades

  • 📚 Quiz Diário: Questões geradas automaticamente baseadas no texto bíblico do dia
  • 🎮 Sistema de Gamificação: Pontos, escudos e sequência de dias (ofensiva)
  • 🤖 IA Integrada: Geração automática de perguntas usando OpenAI
  • 📊 Estatísticas Detalhadas: Acompanhamento do progresso e conquistas
  • 🛡️ Sistema de Escudos: Proteção da sequência de dias em caso de falha
  • 🔄 Scraping Automático: Coleta automática de textos diários
  • 📱 Design Responsivo: Interface moderna e adaptável a todos os dispositivos

🏗️ Arquitetura

Frontend (app.lectio/)

  • React 19 com TypeScript
  • Vite para build e desenvolvimento
  • Tailwind CSS para estilização
  • Framer Motion para animações
  • React Query para gerenciamento de estado do servidor
  • Zustand para estado local
  • React Router para navegação

Backend (api.lection/)

  • Serverless Framework com AWS Lambda
  • Node.js 22 com TypeScript
  • Arquitetura Hexagonal (Clean Architecture)
  • Dependency Injection personalizado
  • AWS DynamoDB para persistência
  • AWS SQS para processamento assíncrono
  • AWS Cognito para autenticação
  • OpenAI API para geração de perguntas

Infraestrutura

  • AWS Lambda para funções serverless
  • DynamoDB como banco de dados principal
  • SQS para filas de processamento
  • Cognito para autenticação e autorização
  • API Gateway para endpoints HTTP
  • S3 para armazenamento de arquivos

🚀 Tecnologias Utilizadas

Frontend

  • React 19.1.0
  • TypeScript 5.8.3
  • Vite 7.0.4
  • Tailwind CSS 4.1.13
  • Framer Motion 12.23.11
  • React Query 5.89.0
  • Zustand 5.0.8
  • React Router 6.22.1
  • Radix UI
  • Lucide React

Backend

  • Node.js 22.x
  • TypeScript 5.9.2
  • Serverless Framework
  • AWS SDK v3
  • OpenAI API 5.12.2
  • Cheerio (web scraping)
  • Zod (validação)
  • Reflect Metadata

Infraestrutura

  • AWS Lambda
  • DynamoDB
  • SQS
  • Cognito
  • API Gateway
  • S3
  • CloudFormation

📦 Instalação e Configuração

Pré-requisitos

  • Node.js 18+
  • npm ou yarn
  • Conta AWS configurada
  • Serverless Framework CLI
  • Chave da API OpenAI

1. Clone o repositório

git clone https://github.com/seu-usuario/lection.git
cd lection

2. Configure o Backend

cd api.lection
npm install

# Configure as variáveis de ambiente
cp .env.example .env
# Edite o arquivo .env com suas credenciais

3. Configure o Frontend

cd ../app.lectio
npm install

# Configure as variáveis de ambiente
cp .env.example .env
# Edite o arquivo .env com a URL da API

4. Deploy da Infraestrutura

cd ../api.lection
npx serverless deploy --stage dev

5. Execute o Frontend

cd ../app.lectio
npm run dev

🎮 Como Funciona

Sistema de Pontuação

  • Questões Fáceis: 10 pontos
  • Questões Médias: 20 pontos
  • Questões Difíceis: 30 pontos

Sistema de Escudos

  • Custo: 100 pontos por escudo
  • Máximo: 2 escudos por usuário
  • Proteção: Mantém a sequência de dias quando você perde um dia

Ofensiva (Streak)

  • Conta dias consecutivos de quiz completado
  • Perdida quando não completa o quiz em um dia
  • Escudos protegem contra perda da ofensiva

🔧 Scripts Disponíveis

Frontend

npm run dev          # Inicia o servidor de desenvolvimento
npm run build        # Gera build de produção
npm run preview      # Preview do build de produção
npm run lint         # Executa o linter
npm run ci:typecheck # Verificação de tipos TypeScript

Backend

npm run typecheck    # Verificação de tipos TypeScript
npm run lint         # Executa o linter
npx serverless deploy # Deploy para AWS

📁 Estrutura do Projeto

lection/
├── app.lectio/                 # Frontend React
│   ├── src/
│   │   ├── components/         # Componentes reutilizáveis
│   │   ├── pages/             # Páginas da aplicação
│   │   ├── hooks/             # Custom hooks
│   │   ├── services/          # Serviços de API
│   │   └── contexts/          # Contextos React
│   └── public/                # Arquivos estáticos
├── api.lection/               # Backend Serverless
│   ├── src/
│   │   ├── application/       # Casos de uso e controllers
│   │   ├── entities/          # Entidades de domínio
│   │   ├── infra/            # Infraestrutura e gateways
│   │   └── main/             # Funções Lambda
│   └── sls/                  # Configurações Serverless
└── README.md

🤝 Contribuição

  1. Fork o projeto
  2. Crie uma branch para sua feature (git checkout -b feature/AmazingFeature)
  3. Commit suas mudanças (git commit -m 'Add some AmazingFeature')
  4. Push para a branch (git push origin feature/AmazingFeature)
  5. Abra um Pull Request

📄 Licença

Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.

👨‍💻 Autor

Jonathan Amarante


Feito para incentivar o estudo bíblico diário

⭐ Se este projeto te ajudou, considere dar uma estrela!

EOF

About

Lectio é uma aplicação de quiz diários gerados automaticamente por inteligência artificial

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published