Skip to content

endiy0/JUD-GE

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

JUD:GE - Just-in-time Unified Deployment: Grading Engine

JUD:GE is an inference-only online judge for Python HTTP servers. Users submit a ZIP that runs python app.py, and the platform evaluates accuracy/latency on hidden test cases.

Highlights

  • Node.js (ESM) backend with Express
  • BullMQ + Redis async queue
  • Docker-based grading (resource limits, read-only rootfs)
  • React + TypeScript frontend (front/)
  • Prisma ORM (SQLite for dev, PostgreSQL-ready)

Repository Structure

/server.js
/worker.js
/package.json
/prisma/schema.prisma
/src/...
/uploads (gitignored)
/data (gitignored)
/docs/...
/front/...

Prerequisites

  • Node.js 18+
  • Docker Engine
  • Redis
  • Python 3.11+ (for evaluator scripts)

Setup (Development)

  1. Install dependencies:
npm install
npm --prefix front install
  1. Create env file:
copy .env.example .env
  1. Run Prisma migrations:
npm run prisma:migrate
  1. Seed demo data:
npm run seed

Default Admin Account

After seeding, a default admin account is created:

  • email: admin@judge.local
  • password: admin123
  1. Start dev servers:
npm run dev

Setup (Production)

  1. Build frontend:
npm --prefix front run build
  1. Start API server:
npm start
  1. Start worker:
npm run worker

Key Endpoints

  • POST /api/auth/register
  • POST /api/auth/login
  • GET /api/problems
  • POST /api/submissions (multipart zip upload)
  • GET /api/leaderboard/:problemId
  • POST /api/admin/settings

Submission Format

See docs/SUBMISSION_SPEC.md for detailed instructions.

Notes

  • The backend serves front/dist when it exists.
  • uploads/ stores artifacts and zips.
  • data/ stores datasets, evaluators, and run logs.

About

JUD:GE - Just-in-time Unified Deployment: Grading Engine, AI Training Online Judge

Resources

License

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors