Team & Current Progress
Team Structure
This is a 3-member team project, split across three phase-owned workstreams:
| Person | Ownership | Scope |
|---|---|---|
| Person A | Phase 1 — Auth | Signup/login, OTP + JWT, institutional email restriction |
| Person B | Phase 2 — Problem Data & Frontend Shell | Problem model, seed data, GET /problems API, React problem browsing UI |
| Person C | Phase 3 — Judge Infrastructure | Piston, Redis/BullMQ, Monaco editor, test-case harness |
Work is tracked on separate Git branches (phase1-auth, phase2-problems, phase3-judge) off main, in a fork of the teacher-provided template repo (tiet-ucs503/ucs503p-202627odd-template).
Current Status
- ✅ Phase 2 (Person B) — Complete. Prisma
Problemmodel migrated; 100 problems seeded from a Kaggle CSV (50 Easy / 30 Medium / 20 Hard); NestJSGET /problemsandGET /problems/:idendpoints live with filtering + pagination; React frontend displaying all problems with a difficulty filter and detail view hitting the real API. - 🔄 Phase 3 (Person C) — In progress. Piston, Redis/BullMQ, Monaco editor, and the structured-JSON test-case harness. Switched execution engine from Judge0 to self-hosted Piston after Judge0 proved unstable.
- 🔄 Phase 1 (Person A) — In progress. Auth foundation.
Next Steps
- Person C completes and pushes the final Phase 3 branch.
- All three phase branches (
phase1-auth,phase2-problems,phase3-judge) are merged sequentially intomain, with a Prisma migration validation pass between each merge. - Phase 4 begins: scoring + territory engine backend logic.
- Phase 5: SVG campus map frontend, with territories bound to the
Territorytable via ID slugs (e.g.central-park,library,csed-block).
This documentation site is currently hosted from a personal repository for early submission purposes and will be migrated into the team's forked template repository once Phase 3 lands on main.