CookOff is CodeChef VIT's flagship competitive coding event that tests the coding skills of developers.
This backend powers both the admin and participant portals for CookOff 10.0, handling users, questions, test cases, submissions, leaderboards, and timers.
Designed for scalability and reliability, it ensures seamless competition management and smooth participation.
POST /signup
– User signupPOST /login
– LoginPOST /logout
– LogoutPOST /refreshToken
– Refresh tokensGET /dashboard
– Load participant dashboard
GET /admin/questions
– Get all questionsGET /admin/questions/:id
– Get question by IDPOST /admin/questions
– Create a questionPUT /admin/questions/:id
– Update a questionDELETE /admin/questions/:id
– Delete a questionPOST /admin/questions/:id/bounty/activate
– Activate bountyPOST /admin/questions/:id/bounty/deactivate
– Deactivate bounty
GET /testcase/:id
– Get a testcase by IDGET /testcase
– Get all testcasesGET /question/:id/testcases
– Get all testcases for a questionGET /question/:id/testcases/public
– Get only public testcasesPOST /testcase
– Create testcase (Admin only)PUT /testcase/:id
– Update testcase (Admin only)DELETE /testcase/:id
– Delete testcase (Admin only)
POST /submit
– Submit codePOST /runcode
– Run code against hidden testcasesPOST /runcustom
– Run custom inputGET /result/:submission_id
– Get submission result
GET /leaderboard
– Fetch leaderboard
POST /admin/setTime
– Set round timePOST /admin/updateTime
– Update round timeGET /admin/startRound
– Start roundGET /admin/resetRound
– Reset roundGET /getTime
– Get remaining time
GET /admin/users
– Get all usersPOST /admin/users/:id/ban
– Ban userPOST /admin/users/:id/unban
– Unban userPOST /admin/users/:id/upgrade
– Upgrade user to next roundGET /admin/users/:id/submissions
– Get all submissions by a user
- Fork the repo
- Clone it locally
git clone https://github.com/<GITHUB_USERNAME>/cookoff-10.0-be.git cd cookoff-10.0-be
- Configure environment variables (
.env
file – refer.env.example
) - Configure Makefile
-
Start containers
docker compose up --build -d
-
Install SQLC & Goose
go install github.com/sqlc-dev/sqlc/cmd/sqlc@latest go install github.com/pressly/goose/v3/cmd/goose@latest
-
Generate SQLC schema and queries
make generate
-
Apply migrations
make up
- Cookoff Admin Portal: https://github.com/CodeChefVIT/cookoff-admin-10.0
- Cookoff Portal: https://github.com/CodeChefVIT/cookoff-portal-10.0
Soham Mahapatra |
Atharva Sharma |
Lavnish Jhunjunwala |
Aayush Kushwaha |
Advik Gupta |
Vedant Matanhelia |
Shrish |
Ashutosh Swain |
Upayan Mazumder |
Abhinav Pant |
Made with ❤️ by CodeChef-VIT