Skip to content

CodeChefVIT/cookoff-admin-X

Β 
Β 

Repository files navigation

Codechef-VIT

Cookoff X Admin


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.

🌐 Deploy

(Replace with production URL)
https://cookoffx-admin.codechefvit.com

βš™οΈ Tech Stack:

πŸ”§ Features

  • 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

Login Page

login

Portal

Dashboard

dashboard

Edit Question Page

edit-question

Question Creation Page

create-question

Question Page

question

testcases

Users Page

users

User submissions Page

image

Timer Page

users

Leaderboard Page

users

🏁 Get Started

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

πŸ“ Checkout:

🀝 Contribution Workflow

  1. Branch naming: feat/<scope>-<short-desc> (e.g. feat/users-bulk-promote)
  2. Conventional commits: feat: add bulk user promotion
  3. Run checks:
    pnpm lint
    pnpm typecheck
    pnpm format
  4. Open PR with screenshots for UI changes.

πŸ§ͺ Scripts

pnpm dev
pnpm lint
pnpm typecheck
pnpm format
pnpm build

βœ… Quality & Security

  • Schema validation via Zod
  • Protected routes with server session guard
  • Role-based gating for destructive actions
  • Avoid logging sensitive data
  • API abstraction in /services

🧱 Roadmap

  • 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

πŸš€ Contributors (Alphabetical)

Abhinav Ganeshan

Abhinav Ganeshan

GitHub

Abhinav Pant

Abhinav Pant

GitHub

Advik Gupta

Advik Gupta

GitHub

License

License

Made with ❀️ by CodeChef-VIT

About

too ambitious for its own good

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 97.6%
  • JavaScript 1.3%
  • CSS 1.1%