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
    • Bulk import (planned)
  • Round / Contest Control:
    • Schedule management
    • Freeze scoreboard (planned)
  • Judge / Evaluation (planned):
    • Rejudge flow
    • Queue monitoring
  • Observability (optional):
    • Submission analytics
    • Audit log
  • Performance:
    • Query caching & background refresh
    • Optimistic updates for UI responsiveness

Login Page

login

Portal

Dashboard

dashboard

Edit Question Page

edit-question

Question Creation Page

create-question

Question Page

question

testcases

Users 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=https://api.cookoffx.codechefvit.com
NEXT_PUBLIC_EVENT_CODE=COOKOFFX
ADMIN_AUTH_ISSUER=https://auth.cookoffx.codechefvit.com
ADMIN_AUTH_CLIENT_ID=XXXX
ADMIN_AUTH_SECRET=XXXX
NEXT_PUBLIC_ENABLE_REALTIME=false

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)

(Alphabetical order by display name)

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%