ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
翻譯準備中
Envie PDF ou foto da matéria e receba quiz com explicação, flashcards com revisão espaçada, plano de estudos, simulados e correção de redação. Para escola, faculdade, vestibular e concurso. Teste 7 di
翻譯準備中
教育TypeScript · CSSGitHub @carlos1128-ship-it上線中營運者未確認
試用過了嗎? 點一下就好,不需要登入。
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證A Easy Education é uma plataforma SaaS com inteligência artificial que ajuda estudantes a organizar, personalizar e otimizar seus estudos. O sistema permite conversar com uma IA educacional, enviar materiais, gerar resumos, quizzes, flashcards, simulados, planos de estudo personalizados e corrigir redações com base em modelos como ENEM e SAT.
翻譯準備中
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
MVP SaaS educacional com Next.js, Supabase, Prisma e Gemini. Slogan: Estude melhor, nao apenas mais. • Next.js App Router + TypeScript strict • Tailwind CSS + shadcn/ui • Supabase Auth, PostgreSQL e Storage • Prisma ORM • Google Gemini via @google/genai • pdf-parse, React Hook Form, Zod, Recharts, Lucide, Sonner檢視完整 README ↗
MVP SaaS educacional com Next.js, Supabase, Prisma e Gemini. Slogan: Estude melhor, nao apenas mais.
@google/genaipdf-parse, React Hook Form, Zod, Recharts, Lucide, Sonnersrc/lib/plans.ts. Sem assinatura ou teste em vigor, o app manda para /assinar e as rotas de IA recusam (402). Formas de pagamento: src/lib/payment-methods.ts (cartao pelo Stripe; Pix Automatico preparado, sem gateway). O servidor aplica todos os limites (consumeFeature em src/lib/usage.ts, com lock por aluno); a interface so mostra avisos e cadeados. Janelas diarias e semanais seguem o horario de Brasilia.ai_call_logs. Tela interna: /dashboard/interno/custos (e-mails em ADMIN_EMAILS). Ver docs/consumo-ia.md.exams, bank_subjects, bank_topics, bank_questions e relacionadas. Importacao e classificacao por scripts em scripts/bank/ (ver docs/fontes-questoes.md). Reports e revisao de professor em /dashboard/interno/questoes.docs/evidencias.md e /evidencias.docs/plano-proxima-fase.md. Antes de publicar, aplique a migration 000011_proxima_fase (npx prisma migrate deploy).scripts/eval/ e resultados em docs/confiabilidade-ia.md./termos e /privacidade (texto em src/content/legal.ts, precisa de revisao juridica).npm test (Vitest, regras puras) e, contra o banco configurado, npx tsx --env-file=.env.local scripts/usage-smoke.ts e scripts/bank-smoke.ts (usam alunos de mentira e apagam o que criam).npm install
cp .env.example .env.local # no PowerShell: Copy-Item .env.example .env.local
npm run db:generate
npm run dev
As migrations criam/atualizam o bucket privado arquivos, RLS e Realtime.
NEXT_PUBLIC_SUPABASE_URL=https://seu-projeto.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=sua_chave_anon
# Alternativa aceita pelo codigo:
# NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY=sb_publishable_sua_chave
SUPABASE_SERVICE_ROLE_KEY=sua_service_role_key
GEMINI_API_KEY=sua_chave_gemini
GEMINI_MODEL=gemini-2.5-flash
DATABASE_URL=postgresql://postgres:[email protected]:5432/postgres
DIRECT_URL=postgresql://postgres:[email protected]:5432/postgres
NEXT_PUBLIC_APP_URL=http://localhost:3000
O app detecta placeholders de Supabase em desenvolvimento. Se NEXT_PUBLIC_SUPABASE_URL ou a key publica ainda estiverem com valores de exemplo, os formularios de login/cadastro exibem uma mensagem clara em vez de falhar silenciosamente.
GEMINI_API_KEY deve ficar somente no servidor (.env.local localmente e variaveis de ambiente da Vercel em producao). Nao use prefixo NEXT_PUBLIC_ nessa chave.
SUPABASE_SERVICE_ROLE_KEY tambem deve ficar somente no servidor. O cadastro do MVP usa essa chave, quando configurada, para criar usuarios via Admin API e evitar bloqueios do fluxo publico de signUp. Nunca use NEXT_PUBLIC_SUPABASE_SERVICE_ROLE_KEY.
NEXT_PUBLIC_SUPABASE_URL.NEXT_PUBLIC_SUPABASE_ANON_KEY ou NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY.DATABASE_URL e DIRECT_URL com a connection string Postgres do Supabase.NEXT_PUBLIC_APP_URL=http://localhost:3000 em desenvolvimento.Authentication > URL Configuration.Site URL: http://localhost:3000 em desenvolvimento.http://localhost:3000/** em Redirect URLs./auth/callback como redirect padrao. Se customizar o template de e-mail com token_hash, a rota /auth/confirm tambem esta implementada.npm run dev apos alterar .env.local.Fluxo esperado:
/onboarding.Conta criada. Verifique seu e-mail para confirmar o cadastro.Profile e redireciona para /onboarding ou /dashboard.Fluxo: landing (/cadastro?plano=basico|completo) -> cadastro (e-mail ou Google) -> /assinar -> Stripe Checkout -> /assinar/sucesso -> onboarding -> dashboard. Sem assinatura ativa, o dashboard, o onboarding e todas as rotas de IA ficam bloqueados.
easy_basic_monthly (R$ 19,90) e easy_full_monthly (R$ 34,90); o valor no Stripe precisa bater com src/lib/plans.ts (o checkout recusa cobrar se os dois forem diferentes).POST /api/stripe/webhook (eventos de checkout, assinatura e fatura). Cada evento e processado uma vez (stripe_events)./dashboard/assinatura./dashboard/assinatura reembolsa tudo e encerra na hora.src/lib/plans.ts (ver docs/consumo-ia.md).subscriptions (RLS: o aluno so le a propria; so o servidor grava).Variaveis: STRIPE_SECRET_KEY, STRIPE_WEBHOOK_SECRET, opcionais BILLING_EXEMPT_EMAILS e BILLING_REQUIRED=false. Sem STRIPE_SECRET_KEY a cobranca fica desligada e o app funciona como antes.
Teste local do webhook: stripe listen --forward-to localhost:3000/api/stripe/webhook (use o whsec_ mostrado pela CLI). O retorno do checkout tambem confirma o pagamento sem depender do webhook.
/onboarding, refazível em Configurações): motivo do estudo (escola, ENEM/vestibular, concurso, faculdade, intercâmbio/idioma, certificação, conhecimento livre), detalhes de cada caso (série, prova, banca, curso, idioma e nível QECR), rotina (dias, horário), matérias ou habilidades, dificuldades e jeito preferido de explicação. Fica em profiles.personalization e alimenta quiz, simulado, flashcards, plano, chat e redação (src/lib/learner-profile.ts, src/lib/exam-style.ts)./dashboard/arquivos): o aluno cola o link (vídeo público, trecho de até 60 min); a IA assiste em segundo plano e gera anotações com marcas de tempo. Quiz, flashcards e simulado do vídeo apontam o minuto de origem, que vira link. Mesmo vídeo/trecho é reaproveitado sem nova leitura (src/lib/youtube.ts, POST /api/videos).src/lib/enem-essay.ts).docs/consumo-ia.md.npm run db:generate
npx prisma validate
npx prisma migrate deploy
O schema Prisma esta em prisma/schema.prisma. O seed nao cria dados artificiais; o app usa dados reais por usuario.
npm run dev
npm run lint
npm run build
npm run build.postinstall rode prisma generate.As rotas protegidas validam sessao Supabase em src/proxy.ts (Next.js 16) e as API routes revalidam o usuario no servidor.