A complete full-stack web application for competitive coding events featuring live auctions, virtual currency, code evaluation, and real-time leaderboards.
# Install dependencies
npm install
# Setup database
npx prisma db push
# Seed sample data
npm run db:seed
# Start development server
npm run devOpen http://localhost:3000 in your browser.
| Role | Username/ID | Password |
|---|---|---|
| Admin | admin |
admin123 |
| Team 1 | TEAM-001 |
team001pass |
| Team 2 | TEAM-002 |
team002pass |
| Team 3 | TEAM-003 |
team003pass |
| Team 4 | TEAM-004 |
team004pass |
| Team 5 | TEAM-005 |
team005pass |
- Real-time bidding with countdown timers
- Minimum bid increments
- Bid history tracking
- Automatic auction ending
- Each team starts with 1000 Coins
- Strategic resource management
- Inverse pricing model (Easy = expensive, Hard = cheap)
- Only winning teams can view full problem statements
- Exclusive solving rights per question
- No question sharing between teams
- Monaco Editor (VS Code-like experience)
- C, C++, Java, Python support
- Hidden test case validation
- Instant feedback on submissions
- Live score updates
- Tie-breaker rules:
- Total Score (highest wins)
- Coins Remaining (more = better)
- Questions Purchased (fewer = better)
- Create/Edit/Delete teams
- Manage question bank
- Control auctions
- Start/Pause/Reset events
- Configure event settings
โโโ prisma/
โ โโโ schema.prisma # Database schema
โ โโโ seed.js # Sample data seeder
โ
โโโ src/
โ โโโ app/
โ โ โโโ api/ # REST API routes
โ โ โ โโโ auth/ # Login/logout/session
โ โ โ โโโ auctions/ # Auction management
โ โ โ โโโ questions/ # Question CRUD
โ โ โ โโโ submissions/ # Code evaluation
โ โ โ โโโ leaderboard/ # Rankings
โ โ โ โโโ teams/ # Team management
โ โ โ โโโ event/ # Event control
โ โ โ
โ โ โโโ admin/ # Admin dashboard
โ โ โโโ auctions/ # Auction browser
โ โ โโโ dashboard/ # Team dashboard
โ โ โโโ leaderboard/ # Public leaderboard
โ โ โโโ login/ # Authentication
โ โ โโโ rules/ # Event rules
โ โ โโโ solve/[id]/ # Code editor
โ โ
โ โโโ lib/
โ โโโ auth.ts # JWT authentication
โ โโโ evaluator.ts # Code evaluation
โ โโโ prisma.ts # Database client
โ โโโ store.ts # Zustand state
โ โโโ types.ts # TypeScript types
โ โโโ utils.ts # Helper functions
โ
โโโ CREDENTIALS.txt # Login credentials
โโโ TECH_STACK.txt # Technology details
โโโ QUESTIONS_LOGIC.txt # Question bank info
| Model | Description |
|---|---|
| Team | Team info, credentials, coins, score |
| Question | Problems with test cases |
| QuestionPurchase | Team ownership records |
| Auction | Live auctions |
| Bid | Auction bids |
| Submission | Code submissions |
| EventConfig | Global settings |
| AdminUser | Admin credentials |
| Difficulty | Base Price | Reward Points |
|---|---|---|
| ๐ข Easy | 400-500 ยข | 100-150 pts |
| ๐ก Medium | 250-350 ยข | 250-300 pts |
| ๐ด Hard | 100-200 ยข | 450-600 pts |
# .env.local
DATABASE_URL="file:./dev.db"
JWT_SECRET="your-super-secret-key"
# Optional: Judge0 API for real code execution
JUDGE0_API_URL=https://judge0-ce.p.rapidapi.com
JUDGE0_API_KEY=your-api-keyConfigure via Admin Panel or directly in database:
- Initial coins per team
- Minimum bid increment
- Auction duration
- Allow multiple submissions
POST /api/auth/login- LoginPOST /api/auth/logout- LogoutGET /api/auth/me- Current session
GET /api/questions- List all questionsGET /api/questions/[id]- Get question detailsPOST /api/questions- Create question (admin)PUT /api/questions/[id]- Update question (admin)DELETE /api/questions/[id]- Delete question (admin)
GET /api/auctions- List active auctionsPOST /api/auctions- Start auction (admin)POST /api/auctions/[id]/bid- Place bidPOST /api/auctions/[id]/end- End auction (admin)
POST /api/submissions- Submit codeGET /api/submissions- Submission history
GET /api/leaderboard- Current rankings
GET /api/teams- List teams (admin)POST /api/teams- Create team (admin)PUT /api/teams/[id]- Update team (admin)DELETE /api/teams/[id]- Delete team (admin)
GET /api/event- Event statusPOST /api/event- Control event (admin)
- Setup - Run
npm run db:seedto create teams and questions - Admin Login - Go to
/login, select Admin, use credentials - Start Event - Click "Start Event" in admin panel
- Start Auctions - Go to Questions tab, click "Start Auction" on a question
- Teams Bid - Teams login and bid on the Auctions page
- Solve Questions - Winning teams solve their purchased questions
- Monitor - Watch the leaderboard update in real-time
- End Event - Stop event from admin panel
- JWT tokens with HTTP-only cookies
- Password hashing with bcrypt
- Session-based authentication
- Role-based access control
- API route protection
- Frontend: Next.js 14, React 18, Tailwind CSS
- Backend: Next.js API Routes, Prisma ORM
- Database: SQLite (swappable to PostgreSQL)
- Auth: JWT (jose), bcryptjs
- Editor: Monaco Editor
- State: Zustand
MIT License - Built for competitive coding events.
ยฉ 2026 Code Auction