Cookoff is CodeChef VITβs flagship competitive programming event that challenges developers across the country. This repository contains the Admin Portal for Cookoff X β the single interface for managing users, problems, testcases, rounds, judging operations, and event monitoring.
(Replace with production URL)
https://cookoffx-admin.codechefvit.com
- Authentication & Access Control:
- Secure admin-only login
- Role-based feature gating (Super Admin, Problem Setter, Judge, Observer)
- User Management:
- Paginated + searchable table
- Ban / unban
- Bulk round promotion
- Question Management:
- CRUD with rich editor/markdown preview
- Difficulty, tags, constraints metadata
- Testcase Management:
- List, create, update, delete
- Distinguish sample vs hidden
- Round / Contest Control:
- Control timer from admin (start rounds, add time)
- Notifications:
- Send notifications to users on the main portal
- Observability:
- Submission analytics page

Clone:
git clone -b main https://github.com/<your-username>/cookoff-admin-X.git
cd cookoff-admin-X
Install:
pnpm install
# or
npm install
Environment (create .env.local
):
NEXT_PUBLIC_API_BASE_URL=
NEXT_PUBLIC_FIREBASE_API_KEY=
NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=
NEXT_PUBLIC_FIREBASE_PROJECT_ID=
NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=
NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=
NEXT_PUBLIC_FIREBASE_APP_ID=
NEXT_PUBLIC_FIREBASE_MEASUREMENT_ID=
Run:
pnpm dev
Build:
pnpm build && pnpm start
Suggested structure:
/app
/components
/services
/hooks
/lib
/types
/showcase_ss
- Backend Previous cycle example: https://github.com/CodeChefVIT/cookoff-10.0-be
- Participant Portal Previous example: https://github.com/CodeChefVIT/cookoff-portal-10.0
- Branch naming:
feat/<scope>-<short-desc>
(e.g.feat/users-bulk-promote
) - Conventional commits:
feat: add bulk user promotion
- Run checks:
pnpm lint pnpm typecheck pnpm format
- Open PR with screenshots for UI changes.
pnpm dev
pnpm lint
pnpm typecheck
pnpm format
pnpm build
- Schema validation via Zod
- Protected routes with server session guard
- Role-based gating for destructive actions
- Avoid logging sensitive data
- API abstraction in
/services
- Live scoreboard monitor
- Real-time judge queue depth
- Dark mode toggle
- Bulk user CSV import/export
- Rejudge workflow UI
- Anomaly detection (suspicious behavior)
- Email / webhook notifications
Abhinav Ganeshan |
Abhinav Pant |
Advik Gupta |
Made with β€οΈ by CodeChef-VIT