Acervo dos problemas do Campeonato de Física (CF) — uma lista pesquisável dos
enunciados de cada edição. Mesmo visual do Small World.
Destinado a ser hospedado em campdfis.ipho.com.br.
npm run dev # Next.js dev server
npm run build # Static export to out/
npm run build:problems # Regenerate src/data/problems.json from the manifestNext.js App Router with static export (output: 'export'), Tailwind v4, deployed
as a static site on Vercel — mirrors the Small World stack.
scripts/manifest.ts— the source of truth. Maps each original CF statement PDF to canonical{year, number, group}metadata, keeping the inconsistent original names in one auditable place.scripts/build-problems.ts— validates the manifest and writessrc/data/problems.json(committed, imported statically by the frontend). The statement PDFs underpublic/cf/<year>/are committed alongside.
src/app/page.tsx— Server Component, importsproblems.json, passes toApp.src/components/App.tsx— root client component with the tab shell.src/components/table/ProblemTable.tsx— sortable, filterable problem table.src/config/cf.ts— single source of truth for group labels and colors.src/types/problem.ts— TypeScript types.
- User-facing text in Portuguese (pt-BR); code/comments in English.
- Path alias
@/*→./src/*.