$ account acm309
PutongOJ is a full-stack online judge platform built as a pnpm monorepo with TypeScript across the stack. The backend is a Koa 3 server using MongoDB (Mongoose) and Redis, with a separate judger component that executes submissions in a privileged Docker sandbox via go-judge. The frontend is a Vue 3 application using PrimeVue, Pinia, and Vue Router; it provides problem CRUD, testcase management, contest ranklists/status, course management, discussions, and account settings. A shared package (@putong-oj/shared) contains Zod schemas and enums used by both server and client. Although primarily an application, it includes a data migration subsystem and a documented testcase data format, giving it a minor data-engineering flavor.