Skip to content

Releases: ATOAPaymentsLimited/CodeVerdict

🚀 v1.0.0 - Initial Public Release

13 Apr 11:35

Choose a tag to compare

CodeVerdict is an open-source coding exam platform with NestJS + Vue 3, ICPC-scored leaderboards, Monaco editor, and self-hosted Judge0 code execution. Self-host for your university, bootcamp, or hiring pipeline.

✨ Highlights

  • 🧑‍Judge0 code execution — batch submission with base64 encoding and token polling
  • 🏆 ICPC-scored live leaderboard — PostgreSQL materialized view with O(1) rank queries and pessimistic write locks
  • ⏱️ Timed exams — server-synced countdown (manipulation-proof) + ExamWindowGuard
  • 📝 MCQ + coding — mixed exam formats in a single session
  • 🎨 White-label branding — app name, logo, colors, copyright all via env vars
  • 🐳 Single-container deploy — multi-stage Dockerfile, Brotli-compressed assets, runs as non-root
  • 🚂 One-click Railway deploy — railway.toml included

🛠️ What's Inside

Backend (NestJS 11)

  • JWT auth with roll number login, role-based access (student/admin/QA)
  • Exams, problems, submissions, autosave, run mode, starter code per language
  • Swagger/OpenAPI docs at /api-docs (dev)
  • Server-side pagination + search on all admin endpoints
  • Optional Slack alerts, configurable DB pool size

Frontend (Vue 3 + Pinia)

  • Monaco editor with LeetCode-style sidebar, auto-fetch languages
  • Autosave with debounce + status indicator, Ctrl+S manual save
  • Light theme, expandable editor, coachmarks tour
  • Success modal with confetti on accepted submissions
  • Redesigned toast notifications (glass-morphism)
  • Mobile-responsive admin pages, scrollable exam picker (3-column)

Admin Panel

  • Full CRUD for exams, problems, test cases
  • Exam duplication with problem mappings
  • Multi-exam support with exam selector
  • Reference solution storage + expected output display
  • Leaderboard CSV export, QA role opt-in filters

Ops

  • 6-service docker-compose.yml (app, Postgres 17, Judge0 + workers, Redis)
  • Health check at /api/health
  • Brotli pre-compression via Vite plugin
  • k6 load testing suite

📦 Deploy

  • Docker: docker compose up --build
  • Railway: deploy via railway.toml (app-only; Judge0 needs privileged containers so host separately)
  • From source: see README.md

📜 License

Licensed under AGPL-3.0. Self-host freely; share modifications if you offer it as a network service.

🙌 Contributing

See CONTRIBUTING.md and CODE_OF_CONDUCT.md. Questions and ideas welcome in Discussions.