Flashcards Generator é uma plataforma inteligente que utiliza Inteligência Artificial (OpenAI) para transformar textos, resumos e anotações em flashcards de estudo otimizados. Ideal para estudantes, concurseiros e qualquer pessoa que deseje acelerar seu aprendizado através da repetição espaçada.
O projeto foi construído com foco em performance, modernidade e experiência do usuário.
- Framework Web: Next.js 16 (App Router)
- UI & Estilização: React 19, Tailwind CSS v4, Framer Motion
- Backend & Database: Supabase (Auth, DB), Upstash Redis (Rate Limiting)
- IA Generativa: OpenAI API
- Pagamentos: Stripe
- Monitoramento: PostHog, Sentry
- Node.js 20+
- Python 3.10+ (para scripts de verificação)
- Conta no Supabase, Upstash, OpenAI e Stripe.
Siga os passos abaixo para rodar o projeto localmente.
git clone https://github.com/otavio0machado/flashcards_generator.git
cd flashcards_generatorUtilize o npm para instalar as dependências do projeto:
npm installCrie um arquivo .env.local na raiz do projeto e configure as seguintes variáveis. Nunca comite suas chaves secretas!
# Supabase
NEXT_PUBLIC_SUPABASE_URL=seu_supabase_url
NEXT_PUBLIC_SUPABASE_ANON_KEY=sua_anon_key
SUPABASE_SERVICE_ROLE_KEY=sua_service_role_key
# Upstash Redis
UPSTASH_REDIS_REST_URL=seu_upstash_url
UPSTASH_REDIS_REST_TOKEN=seu_upstash_token
# OpenAI
OPENAI_API_KEY=sua_openai_key
OPENAI_TEXT_MODEL=gpt-4.1-mini
# Stripe (Opcional para dev, necessário para pagamentos)
STRIPE_SECRET_KEY=sua_stripe_secret
NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY=sua_stripe_public_key
# Monitoramento (Opcional)
NEXT_PUBLIC_POSTHOG_KEY=sua_posthog_key
NEXT_PUBLIC_POSTHOG_HOST=https://app.posthog.com
SENTRY_DSN=seu_sentry_dsn
# Segurança e Outros
DEMO_IP_SALT=gere_um_hash_aleatorioPara rodar o servidor de desenvolvimento:
npm run devAcesse http://localhost:3000.
Para build de produção:
npm run build
npm startO sistema permite gerar flashcards a partir de texto colado ou arquivos (dependendo do plano).
Ideais para testar a ferramenta.
- Caracteres Máx: 2.000 caracteres.
- Cartões: Limite de 5 cartões por geração.
- Rate Limit: 1 geração a cada 24h por IP/Fingerprint.
- Recursos: Apenas texto.
Ao criar uma conta gratuita, os limites de uso diário são renovados.
| Recurso | Grátis | Pro (R$ 9,90/mês) | Ultimate (R$ 19,90/mês) |
|---|---|---|---|
| Gerações Diárias | 3 | 10 | 20 |
| Geração por Arquivo | ❌ | ✅ | ✅ |
| OCR (Imagem p/ Texto) | ❌ | ❌ | ✅ |
| Geração de Imagens | ❌ | ❌ | ✅ |
| Histórico Salvo | ❌ | ✅ | ✅ |
Nota: Os planos podem sofrer alterações conforme definido em
constants/pricing.ts.
Contribuições são bem-vindas! Siga estas diretrizes para manter a qualidade do código.
- Faça um Fork do projeto.
- Crie uma branch para sua feature (
git checkout -b feature/nova-feature). - Commit suas mudanças seguindo o padrão Conventional Commits. Ex:
feat: adiciona suporte a PDF. - Rode os testes e verificação (
npm run linte scripts python) antes de enviar. - Abra um Pull Request.
- S.O.L.I.D. e Clean Code: Mantenha funções pequenas e com responsabilidade única.
- Tipagem: Use TypeScript estrito. Evite
any. - Estilo: O projeto usa ESLint e Prettier configurados.
- CSS: Use Tailwind CSS utilitários. Evite CSS global customizado.
Utilizamos um conjunto robusto de scripts Python (Antigravity Kit) para garantir a integridade do código.
Os scripts estão localizados em .agent/scripts/. Documentação detalhada em documents/TESTING.md (se houver) ou verifique o cabeçalho dos arquivos.
Executa verificações essenciais (segurança, lint, tipos). Use antes de cada commit.
python .agent/scripts/checklist.py .Executa todos os testes, incluindo auditoria de SEO, acessibilidade, performance (Lighthouse) e E2E. Use antes de deploy ou PR.
# Requer servidor rodando (ex: localhost:3000)
python .agent/scripts/verify_all.py . --url http://localhost:3000- Linting:
npm run lint - Testes Unitários/Integração: Configurados via script
.agent/skills/testing-patterns/scripts/test_runner.py.
P: Onde os dados ficam salvos? R: Os dados de usuários e histórico são salvos no Supabase (PostgreSQL). No modo Demo, nada é salvo permanentemente além de logs de uso anônimos para Rate Limit.
P: Posso exportar para o Anki?
R: Sim! A funcionalidade de exportação gera arquivos .apkg compatíveis com o Anki Desktop e Mobile.
Scontrou um bug? Abra uma Issue no GitHub descrevendo o problema, passos para reproduzir e ambiente utilizado.
Documentação gerada automaticamente pelo agente documentation-writer.