How code-of-zhang/litecode-cpp works
LiteCode-CPP is a browser-facing programming-practice judge: users browse problems, submit code, and poll asynchronous judging results. Admins manage problems and imports; additional product areas cover accounts, discussions, solutions, check-ins, notifications, statistics, and operational metrics. The sampled source confirms the HTTP bootstrap, authentication, problem administration, submission enqueueing, and Docker client roles. Several other capabilities are evident from the repository tree, but their internal wiring was not sampled, so those links are omitted.
Main entry points: server.h HTTP server · connection_pool.h Database connection pool · judge_scheduler.h Judge scheduler · submission_routes.h Submission routes
Components 25
Web client
- Browser UI
web/js/app.js - API client
web/js/api.js
HTTP and identity
- Application bootstrap
src/main.cpp - HTTP server
src/server.h - Account routes
src/routes/auth_routes.h - JWT middleware
src/middleware/auth_middleware.h - Database connection pool
src/db/connection_pool.h
Problem management
- Problem routes
src/routes/problem_routes.h - Admin problem routes
src/routes/admin_problem_routes.h - Bulk problem import
src/routes/admin_bulk_import_routes.h
Submission judging
- Submission routes
src/routes/submission_routes.h - Judge scheduler
src/judge/judge_scheduler.h - Docker client
src/judge/docker_client.h - Sample runner
src/judge/sample_runner.h - Judge warm pool
src/judge/warm_pool.h
Community and insights
- Discussions
src/routes/discussion_routes.h - Solutions
src/routes/solution_routes.h - Daily check-ins
src/routes/checkin_routes.h - Notifications
src/routes/notification_routes.h - User statistics
src/routes/stats_routes.h - Service metrics
Other components
- Learner
- Administrator
- MySQL database
- Docker Engine
Connections 25
- Learner → Browser UI: uses
- Administrator → Browser UI: uses
- Browser UI → API client: requests
- API client → HTTP server: calls API
- Application bootstrap → HTTP server: starts
- HTTP server → Account routes: dispatches
- HTTP server → Problem routes: dispatches
- HTTP server → Admin problem routes: dispatches
- HTTP server → Bulk problem import: dispatches
- HTTP server → Submission routes: dispatches
- Account routes → JWT middleware: verifies access
- Submission routes → JWT middleware: verifies access
- Application bootstrap → Judge scheduler: constructs
- Submission routes → Judge scheduler: enqueues
- Judge scheduler → Docker client: runs containers
- Docker client → Docker Engine: controls
- Judge scheduler → Sample runner: runs samples
- Judge scheduler → Judge warm pool: uses
- Application bootstrap → Database connection pool: builds
- Account routes → Database connection pool: reads and writes
- Problem routes → Database connection pool: reads
- Admin problem routes → Database connection pool: writes
- Bulk problem import → Database connection pool: imports into
- Submission routes → Database connection pool: stores submissions
- Database connection pool → MySQL database: queries