Hub de aprendizagem de Estruturas de Dados e Programação Competitiva. Um caderno acadêmico vivo: aulas com teoria rigorosa, visualizações interativas do funcionamento dos algoritmos e uma camada de gamificação no espírito de um "Duolingo de algoritmos" — trilha, XP, sequência de dias, vidas e quizzes.
Este projeto nasceu de um repositório de estudos em C (busca, ordenação, árvores). O código C original permanece nas pastas
busca/,ordenacao/earvore/como material de referência; o site o transforma numa plataforma.
- 7 trilhas — Fundamentos & Complexidade, Ordenação, Busca & Hashing, Árvores, Grafos, Programação Competitiva e Matemática Competitiva.
- Aulas em MDX com matemática renderizada (KaTeX), callouts de ideia/prova/cuidado e código em C, C++ e Python lado a lado.
- Visualizadores — laboratório de ordenação (8 algoritmos animados) e busca binária passo a passo, em Canvas/SVG puro.
- Arena — quizzes rápidos com feedback imediato, XP, streak e vidas.
- Gamificação persistente via
localStorage(sem login, sem servidor, sem rastreadores).
A trilha de Ordenação está construída a fundo (11 aulas). As demais têm a estrutura navegável e vão sendo preenchidas.
Astro 5 · TypeScript · Tailwind v4 · MDX · KaTeX · nanostores (estado) · Shiki (highlight). Visualizações são módulos TS puros hidratados como ilhas. Identidade visual caderno acadêmico / Swiss: papel-tinta, grid milimetrado, serif display, um acento vívido, tema claro/escuro.
npm install
npm run dev # http://localhost:4321
npm run build # gera dist/ estático
npm run preview # serve o buildNeste ambiente o wrapper
nvmdo shell está quebrado; use o binário direto:/usr/bin/node /usr/bin/npm run dev.
src/
content/lessons/<trilha>/*.mdx aulas
data/tracks.ts currículo (trilhas, unidades, aulas)
data/snippets.ts código C/C++/Python das aulas
data/quizzes.ts bancos de questões
lib/progress.ts | gamification.ts estado e regras de jogo
components/{layout,lesson,path,viz}/ UI e visualizadores
pages/ rotas (home, trilha, aula, arena, ...)
busca/ ordenacao/ arvore/ código C original (referência)
- Crie
src/content/lessons/<trilha>/<slug>.mdxcom o frontmatter (veja uma aula existente deordenacao/). - Registre-a em
src/data/tracks.ts(comstatus: 'ready'). - Opcional: adicione snippets em
src/data/snippets.tse um quiz emsrc/data/quizzes.ts(chave"<trilha>/<slug>").