How anamelyilma/keepmycoding works
KeepCoding is a deliberate coding-practice web app: developers calibrate or create a challenge, ingest its tagged specification, solve it in a multi-file browser workspace, and receive private feedback from an AI or offline judge. The graph also preserves the challenge catalog, authoring, authentication, invitations, and post-pass learning features. The README documents the product workflow; sampled route and library excerpts show several server-side calls. Some UI and API subsystems are represented by their exact tree paths because their implementation was not sampled.
Main entry points: judge/route.ts Judge endpoint · server.ts Supabase data · WorkspaceLayout.tsx Coding studio · challenges/route.ts Challenge API
Components 28
Practice workflow
- Prompt calibration
src/app/prompt/PromptWizardPage.tsx - Challenge ingestion
src/lib/parser/challenge-parser.ts - Challenge validation
src/lib/parser/challenge-validator.ts - Coding studio
src/components/workspace/WorkspaceLayout.tsx - Task guide
src/components/workspace/TaskGuidePane.tsx - Multi-file editor
src/components/workspace/CodeEditor.tsx - Symbol outline
src/components/workspace/SymbolOutline.tsx - Workspace file state
src/hooks/useWorkspaceFiles.ts
Challenge community
- Challenge authoring
src/app/challenges/create/ChallengeCreatorPage.tsx - Challenge API
src/app/api/challenges/route.ts - Challenge catalog
src/lib/challenges/library.ts - Curated challenges
src/lib/challenges/data/rust.ts - Challenge invitations
src/app/api/invites/[token]/route.ts - Invite controls
src/components/challenges/InviteModal.tsx - Attempt tracking
src/app/api/challenges/[id]/attempts/route.ts - Solution reveal
src/app/api/challenges/[id]/solution/route.ts
Evaluation
- Judge endpoint
src/app/api/judge/route.ts - Judge prompts
src/lib/judge/judge-prompt.ts - Offline evaluator
src/lib/judge/local-evaluator.ts - Verdict parser
src/lib/judge/judge-parser.ts - Practice results
src/components/result/ResultModal.tsx
Platform services
- Authentication
src/app/auth/AuthForm.tsx - Auth callback
src/app/auth/callback/route.ts - Supabase data
src/lib/supabase/server.ts - Privileged data access
src/lib/supabase/admin.ts - Marketing experience
src/components/marketing
Other components
- Developer
- External AI
Connections 37
- Developer → Prompt calibration: selects challenge
README.md - Developer → Challenge authoring: authors challenge
README.md - Prompt calibration → External AI: prompts generation
README.md - Challenge authoring → External AI: interviews author
README.md - External AI → Challenge ingestion: returns tagged blocks
README.md - Challenge ingestion → Challenge validation: validates structure
src/lib/parser/challenge-validator.ts - Developer → Coding studio: solves challenge
README.md - Coding studio → Task guide: shows specification
README.md - Coding studio → Multi-file editor: hosts editing
README.md - Coding studio → Symbol outline: shows symbols
README.md - Multi-file editor → Workspace file state: updates files
src/hooks/useWorkspaceFiles.ts - Challenge authoring → Challenge API: saves challenge
- Challenge API → Challenge validation: validates submission
src/app/api/challenges/route.ts - Challenge API → Supabase data: stores challenge
src/app/api/challenges/route.ts - Challenge API → Challenge catalog: normalizes sources
src/app/api/challenges/route.ts - Developer → Challenge catalog: browses challenges
README.md - Curated challenges → Challenge catalog: supplies built-ins
- Developer → Invite controls: manages invitations
README.md - Invite controls → Challenge invitations: checks or accepts
- Challenge invitations → Supabase data: checks invite access
src/app/api/invites/[token]/route.ts - Developer → Attempt tracking: tracks attempts
README.md - Attempt tracking → Supabase data: reads attempt records
src/app/api/challenges/[id]/attempts/route.ts - Coding studio → Judge endpoint: submits work
README.md - Judge endpoint → Judge prompts: builds evaluation prompts
src/app/api/judge/route.ts - Judge endpoint → Offline evaluator: evaluates offline
src/app/api/judge/route.ts - Judge endpoint → Verdict parser: parses AI verdict
src/app/api/judge/route.ts - Judge endpoint → External AI: requests cloud judgment
README.md - Judge endpoint → Supabase data: loads challenge data
src/app/api/judge/route.ts - Judge endpoint → Privileged data access: loads protected solution
src/app/api/judge/route.ts - Judge endpoint → Practice results: returns verdict
README.md - Developer → Authentication: signs in
README.md - Authentication → Auth callback: completes verification
- Auth callback → Supabase data: verifies session
src/app/auth/callback/route.ts - Judge endpoint → Solution reveal: reveals after pass
- Solution reveal → Supabase data: checks completion
src/app/api/challenges/[id]/solution/route.ts - Solution reveal → Privileged data access: reads protected solution
src/app/api/challenges/[id]/solution/route.ts - Developer → Marketing experience: discovers practice