MujCode is a comprehensive, full-stack educational and Applicant Tracking System (ATS) platform tailored for universities. It bridges the gap between students, faculty, and hiring companies in a single, high-performance platform.
- Assignments & Case Studies: View and submit code, videos, and written assignments.
- Online Compiler: Built-in code editor (Monaco) with a secure execution queue.
- Placement ATS: View active placement drives, apply to jobs, and track application status.
- Real-time Notifications: Get instantly notified about grades, new assignments, and placement updates.
- Course Management: Manage sections, branches, and student lists.
- Grading & Submissions: Review student submissions, grade them, and provide detailed feedback.
- Live Classroom: Real-time engagement with students.
- Drive Management: Create and manage placement drives with eligibility criteria (CGPA, backlogs).
- Candidate Tracking: View applicants, shortlist candidates, and process hiring workflows.
- Frontend: React 18, Vite, Tailwind CSS, Radix UI, Monaco Editor.
- Backend: Node.js (ESM), Custom High-Concurrency Router, Socket.IO.
- Code Execution Engine: Self-Hosted Judge0 CE (v1.13.1) sandbox with asynchronous job tracking.
- Database:
- JSON File DB (Primary): Blazing fast, in-memory DB with atomic disk flushing.
- MongoDB (Optional): Used for advanced ATS & Company Drive management.
- Redis: Manages cache, WebSockets, and Judge0 execution queue.
- Infrastructure: Docker, Docker Compose, GitHub Actions, AWS (ECR/EKS), Helm.
MujCode uses Judge0 CE (v1.13.1) as its sole sandboxed code-execution engine. Arbitrary user code is never executed directly on the main application server.
Frontend (Browser)
│ [User clicks Run / Submit in Monaco Editor]
▼
Backend API (MujCode Server)
│ [Rate limiting, input size guards, hidden test-case server-side protection]
▼
Judge0 API Gateway (Internal Docker Network)
│ [Submissions created asynchronously with Base64 payloads]
▼
Judge0 Redis Queue & PostgreSQL
│ [Decoupled queue of pending compilation jobs]
▼
Judge0 Workers (`isolate` Linux cgroup v1 sandbox)
│ [Sandboxed compilation and execution with strict CPU & memory caps]
▼
Backend CodeExecutionService
│ [Controlled polling, verdict & error normalization, score computation]
▼
Frontend UI
[Real-time status updates: Accepted, Wrong Answer, Compilation Error, Runtime Error]
Detailed setup and production hardening guidelines are available in the Judge0 Deployment Guide.
- Node.js (v20+)
- Docker & Docker Compose (optional but recommended)
The easiest way to get the entire stack (Frontend, Backend, Redis, MongoDB) running locally.
# 1. Clone the repository
git clone https://github.com/CSrajput-ux/mujcode-.git
cd mujcode-
# 2. Setup Environment Variables
cp backend/.env.example backend/.env
# Edit backend/.env and set a secure TOKEN_SECRET
# 3. Start the core services (Frontend + Backend)
docker compose up --build -d
# 4. (Optional) Start with ATS features (starts MongoDB)
docker compose --profile ats up --build -d- Frontend: http://localhost
- Backend API: http://localhost:5000
Backend Setup:
cd backend
cp .env.example .env
npm install
npm run devFrontend Setup:
cd frontend
npm install
npm run devMujCode is designed with production-oriented architecture and scalability in mind
- Multi-Stage Docker Builds: Optimized images for fast pulling and minimal footprint.
- CI/CD Pipeline: Fully automated via GitHub Actions.
- Runs Type Checks & Builds on PRs.
- Pushes images to AWS ECR.
- Deploys automatically to AWS EKS via Helm (
deploy-staging&deploy-production).
- Resilience: Unhandled exceptions and rejections are gracefully caught, flushing in-memory data to disk before shutdown to prevent data loss.
mujcode/
├── backend/ # Node.js Backend Server
│ ├── src/
│ │ ├── data/ # JSON Database Storage
│ │ ├── modules/ # ATS and Domain Modules
│ │ ├── routes/ # API Endpoints
│ │ └── lib/ # Core Engine (Router, Storage, Auth)
│ └── compiler/ # Code Execution Engine
├── frontend/ # React/Vite Frontend App
│ ├── src/
│ │ ├── app/pages/ # Dashboards (Student, Faculty, Company)
│ │ └── components/ # Reusable UI Components
├── helm/ # Kubernetes Helm Charts
├── terraform/ # IaC for AWS Infrastructure
└── .github/workflows/ # CI/CD Pipelines
- Fork the project.
- Create your feature branch (
git checkout -b feature/AmazingFeature). - Commit your changes (
git commit -m 'Add some AmazingFeature'). - Push to the branch (
git push origin feature/AmazingFeature). - Open a Pull Request.
Distributed under the MIT License. See LICENSE for more information.
