Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

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%

AltStyle γ«γ‚ˆγ£γ¦ε€‰ζ›γ•γ‚ŒγŸγƒšγƒΌγ‚Έ (->γ‚ͺγƒͺγ‚ΈγƒŠγƒ«) /