A premium, responsive engineering portfolio for Kavya Katal. Public repositories, authored pull requests, and user-supplied profile URLs now ground the initial content.
Codex and contributors must read AGENTS.md first.
The design references are stored in references/. They define direction, not literal pixel-perfect requirements. The final implementation must preserve the same visual language while improving spacing, responsiveness, accessibility and factual accuracy.
- Next.js App Router
- React + TypeScript (strict)
- CSS variables and custom responsive CSS
- Typed content with server-side GitHub, Codeforces, LeetCode, and Kaggle adapters
npm install
npm run devThe primary pages use rich editorial heroes and scrollable project collections. Mobile layouts stack for readability. All routes currently have noindex metadata while personal role details, contact email, and resume are being collected.
Copy .env.example to .env.local and set the server-only values there. Never commit .env.local or paste tokens into a public issue.
GITHUB_TOKEN enables reliable GitHub project, PR, and profile reads. Without it, the site uses dated verified public snapshots when GitHub blocks anonymous requests. Codeforces, LeetCode, and Kaggle metrics update from their public endpoints when available, with dated verified values as fallback. Other linked coding platforms do not show invented metrics.
/admin is a private project editor. Create a GitHub OAuth App for the local callback http://localhost:3000/api/auth/github/callback, and another for the deployed domain's callback. Set its client ID and secret, plus a random AUTH_SECRET of at least 32 characters. Only Kavya's verified GitHub account ID is permitted. Set GITHUB_CONTENT_TOKEN to a fine-grained token scoped to this portfolio repository with Contents: read/write and Metadata: read. The OAuth token verifies the signed-in user; the repository-scoped token remains on the server and saves curation to src/content/curation.json through GitHub's Contents API.
In the editor, choose from your GitHub repositories or paste a public repository URL, assign up to four domains, reorder, remove, and restore cards. New public repositories on KatalKavya96 created after the curation cutoff appear automatically. Manually added organization repositories can be curated in the same editor. Public visitors cannot access these controls.
Use current stable package versions when the project is initialized and commit the lockfile.
docs/PRODUCT_BRIEF.md— audience, goals and portfolio narrativedocs/DESIGN_SYSTEM.md— visual foundation and page identitiesdocs/INFORMATION_ARCHITECTURE.md— routes and content hierarchydocs/PAGE_SPEC_*.md— page-level requirementsdocs/COMPONENT_SYSTEM.md— reusable component contractsdocs/MOTION_INTERACTION.md— animation and interaction rulesdocs/CONTENT_AND_DATA.md— content schemas and factual-data rulesdocs/ENGINEERING_ARCHITECTURE.md— codebase structuredocs/ACCESSIBILITY_PERFORMANCE.md— quality budgetsdocs/SEO_ANALYTICS.md— metadata and measurementdocs/IMPLEMENTATION_PLAN.md— phased build sequencedocs/QA_CHECKLIST.md— definition-of-done checksdocs/CODEX_WORKFLOW.md— how Codex should work in this repositorydocs/CONTENT_INVENTORY.md— content candidates and missing assetsdocs/DECISIONS.md— architecture/product decision logCHANGELOG.md— meaningful implementation history
references/01-home-reference.pngreferences/02-projects-reference.pngreferences/03-open-source-reference.pngreferences/04-coding-profiles-reference.png
Numbers visible inside design mockups are visual placeholders unless separately verified. Do not ship them as facts.