Skip to content

feat: Phase 2 — Dashboard, translation, PWA e análise de erros - #3

Merged
iagommendes merged 6 commits into
mainfrom
cursor/phase2-experience-8eb5
Jun 29, 2026
Merged

iagommendes merged 6 commits into
mainfrom
cursor/phase2-experience-8eb5

Conversation

@iagommendes

Copy link
Copy Markdown
Owner

Resumo

Implementação da Fase 2 — Experiência e Retenção do CoderKeys.

Nota: Este PR inclui também a Fase 1 caso ainda não tenha sido mergeada.

Entregas da Fase 2

2.1 Dashboard de Progresso (/dashboard)

  • Resumo: PPM médio, precisão média, streak de dias
  • Gráfico de evolução (7 / 30 dias) com Recharts
  • Histórico de lições com filtros por trilha, módulo e skill

2.2 Análise de Erros

  • packages/engine/src/metrics/error-analysis.ts — hotspots, streak, agrupamento diário, sugestões
  • Heatmap visual de teclas problemáticas no dashboard
  • Sugestão automática de lições baseada em erros

2.3 Modo Translation

  • UI split: sourceText (referência) + área de digitação
  • Precisão por palavra (calculateWordAccuracy)
  • 10 novas lições no módulo translation (5 en-US + 5 pt-BR)

2.4 Renderização de Código

  • CodeMirror (view-only) com highlight de syntax antes da lição

2.5 UX Avançada

  • Tema claro / escuro / sistema
  • Sons opcionais de keystroke
  • Atalhos: Esc = pausar/retomar, Ctrl+Enter = reiniciar
  • Timer ao vivo (atualização a cada 200ms)
  • Animação no cursor

2.6 Dados e Backup

  • Export / import de progresso (JSON)
  • Reset global ou por trilha

2.7 PWA / Offline

  • vite-plugin-pwa com Service Worker e manifest instalável

Testes

  • 20 testes no engine (incluindo 5 novos de error-analysis)
  • 30 lições validadas via pnpm validate-content
  • Build de produção passando

Como testar

pnpm install
pnpm dev
# Navegue para /dashboard após completar algumas lições
# Teste lições em technical-writers → translation
# Em Settings: export/import, tema, sons
Open in Web Open in Cursor 

cursoragent and others added 3 commits June 29, 2026 18:36
Documento detalhado de planejamento pré-implementação cobrindo:
- Arquitetura local-first com IndexedDB/Dexie
- Stack Vite + React + TypeScript + Tailwind
- Estrutura de diretórios engine vs conteúdo
- Schemas JSON para lições contribuíveis
- Roadmap em 3 fases (MVP, experiência, comunidade)

Co-authored-by: Iago Mendes <iagommendes@gmail.com>
- Monorepo with pnpm workspaces (apps/web, packages/engine, packages/schemas)
- Typing engine with WPM, accuracy, session state machine and 15 unit tests
- Zod schemas for lessons, manifest and session results
- React SPA with catalog, lesson flow, settings and i18n (en-US, pt-BR)
- Dexie/IndexedDB persistence for progress and settings
- 20 seed lessons across programmers and technical-writers tracks
- Content validation script, i18n parity check and GitHub Actions CI

Co-authored-by: Iago Mendes <iagommendes@gmail.com>
- Add error-analysis engine (hotspots, streak, WPM charts, lesson suggestions)
- Dashboard page with recharts, heatmap, filters and progress history
- Translation mode UI with word accuracy and 10 bilingual lessons
- CodeMirror syntax preview for code lessons
- Theme light/dark/system, key sounds, keyboard shortcuts (Esc, Ctrl+Enter)
- Export/import/reset progress in settings
- PWA via vite-plugin-pwa for offline use

Co-authored-by: Iago Mendes <iagommendes@gmail.com>
@iagommendes
iagommendes marked this pull request as ready for review June 29, 2026 18:51
cursoragent and others added 3 commits June 29, 2026 18:54
Also fix prefer-const lint in error-analysis streak calculation.

Co-authored-by: Iago Mendes <iagommendes@gmail.com>
Fresh CI clones have no dist/ for @coderkeys/engine and @coderkeys/schemas,
causing tsc in apps/web to fail. Build packages first and add tsconfig paths
as fallback for local development without a prior build.

Co-authored-by: Iago Mendes <iagommendes@gmail.com>
Keep Phase 2 versions for all conflicted files since they are a superset
of Phase 1 (dashboard, translation, PWA, error analysis, etc.).

Co-authored-by: Iago Mendes <iagommendes@gmail.com>
@iagommendes
iagommendes merged commit 8d9f9a0 into main Jun 29, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants