How thesoumenmondal/codeforge-backend works
CodeForge Backend is an API for a coding-practice platform with user accounts, problem and test-case management, asynchronous code evaluation, and community content. A submission flows from the API through submission handling into a queued evaluation job; a worker loads evaluation data, runs code in a language-specific container, and records the result. The tree also shows articles, posts, sheets, and profile capabilities. Some service, repository, and route implementations were not sampled, so their internal connections are omitted where wiring cannot be confirmed.
Main entry points: app.ts Express app · evaluation.worker.ts Evaluation worker · submission.service.ts Submissions · submission.producer.ts Job producer
Components 20
API and identity
- Express app
src/app.ts - Authentication
src/modules/auth/auth.service.ts - User profiles
src/modules/users/user.service.ts
Practice and evaluation
- Problems and tests
src/modules/problems/problem.service.ts - Code stubs
src/modules/problems/code-stub.service.ts - Submissions
src/modules/submissions/submission.service.ts - Job producer
src/common/producer/submission.producer.ts - Submission queue
src/common/queue/submission-queue.ts
Community content
- Articles
src/modules/articles/articles.services.ts - Posts and images
src/modules/post/post.service.ts - Problem sheets
src/modules/sheet/sheet.service.ts
Evaluation runtime
- Evaluation worker
src/common/worker/evaluation.worker.ts - Evaluation data and results
src/modules/evaluation/evaluation.service.ts - Executor selection
src/common/utils/executor-factory.ts - Language containers
src/common/utils/container/create-container.ts
Other components
- API client
- ImageKit
- Docker
- PostgreSQL
- Redis
Connections 17
- API client → Express app: sends requests
- Express app → Authentication: routes auth
- Express app → User profiles: routes users
- Express app → Articles: routes articles
- Express app → Posts and images: routes posts
- Express app → Problem sheets: routes sheets
- Express app → Problems and tests: routes problems
- Express app → Submissions: routes submissions
- Posts and images → ImageKit: uploads images
- Submissions → Job producer: requests evaluation
- Job producer → Submission queue: enqueues job
- Submission queue → Evaluation worker: delivers job
- Evaluation worker → Evaluation data and results: loads and updates
- Evaluation worker → Executor selection: selects executor
- Executor selection → Language containers: creates runner
- Language containers → Docker: runs code
- Evaluation worker → Redis: connects queue