A production-grade, full-stack coding platform built for Walchand College of Engineering — enabling teachers to create classes, assign coding problems, conduct proctored exams, and auto-evaluate student submissions with real-time code execution.
Quick Access
Problem Statement · What is ClassCode? · Tech Stack · My Contributions · Live Demo
Note: This is a showcase repository. The source code resides in a private repository owned by ClassCode. I am a core contributor and full-stack developer on this project.
Experience ClassCode in action! Visit our live platform and explore all the features firsthand:
Explore the platform, create a classroom, solve coding problems, and experience the future of academic coding education.
- Problem Statement
- What is ClassCode?
- High-Level Architecture
- Key Features
- Tech Stack
- Role-Based Access Control
- CI/CD Pipeline
- Scale & Complexity
- My Contributions
- Team
- Contact & Feedback
Engineering colleges in India still rely on manual, disconnected workflows for conducting coding labs, assignments, and exams:
- Teachers distribute problems via PDFs or messaging apps with no standardized format
- Students write code locally and submit via email or shared drives — with zero automated evaluation
- Exam integrity is compromised — no proctoring, no plagiarism awareness, no controlled environment
- Grading is entirely manual, inconsistent, and time-consuming for faculty
- There is no centralized platform to track student progress, submissions, or performance analytics
- Existing platforms in this space offer some of these features — but come with high licensing and subscription costs, making them inaccessible for many colleges and departments with limited budgets
ClassCode was built to solve this — without the cost barrier. It provides a single, unified, in-house platform where teachers can create classrooms, curate and assign coding problems, conduct proctored exams with real-time code evaluation, and track student progress — all with automated grading, instant verdicts, and role-based access control, at zero licensing cost to the institution.
The goal: Eliminate the gap between how coding is taught in college labs and how it's practiced in the real world — on platforms like LeetCode, HackerRank, and Codeforces — while keeping it free and accessible for academic institutions.
ClassCode is a LeetCode-style coding platform tailored for colleges — but it goes far beyond just solving problems. It's a complete academic coding ecosystem where:
- Teachers create virtual classrooms, curate problem sets, assign coding tasks with deadlines, configure grading rules, and conduct proctored online exams — all from a single dashboard.
- Students join classes, solve problems in an in-browser IDE (Monaco Editor), receive instant verdicts via Judge0 code execution, track their progress through reports, and take timed exams in a secure, lockdown environment.
- Problem Setters author problems through a guided multi-step wizard — writing rich problem statements, defining reference solutions, generating/verifying test cases, and configuring starter & driver code across multiple languages.
- Admins manage users, classes, platform configurations, and monitor system-wide activity.
Think of it as Google Classroom meets LeetCode — purpose-built for engineering colleges.
┌─────────────────────────────────────────────────────────────────┐
│ FRONTEND (React 19) │
│ Vite · Tailwind CSS v4 · Monaco Editor · Framer Motion │
│ Role-based dashboards · Rich text editor · Real-time feedback │
│ Deployed on Vercel │
└──────────────────────────────┬──────────────────────────────────┘
│ REST API (HTTPS)
▼
┌─────────────────────────────────────────────────────────────────┐
│ BACKEND (Node.js + Express 5) │
│ JWT Auth (Access + Refresh Tokens) · RBAC Middleware │
│ CSRF Protection · Rate Limiting · Helmet Security Headers │
│ Cloudinary (Image CDN) · Nodemailer (Transactional Emails) │
│ Judge0 CE (Code Execution) · AI Test Case Generation │
│ Dockerized · Deployed on AWS EC2 │
└──────────┬──────────────────┬──────────────────┬───────────────┘
│ │ │
▼ ▼ ▼
┌─────────────┐ ┌──────────────┐ ┌──────────────┐
│ MongoDB │ │ Judge0 CE │ │ Cloudinary │
│ Atlas │ │ (Code Exec) │ │ (Media CDN) │
└─────────────┘ └──────────────┘ └──────────────┘
- Multi-strategy auth: Email/Password (with OTP verification) + Google OAuth 2.0
- JWT-based session management with access/refresh token rotation and silent refresh
- CSRF protection (double-submit cookie pattern), Cloudflare Turnstile bot protection
- Rate limiting per-email on login, registration, and code execution endpoints
- Device-aware sessions with multi-device tracking
- Account lockout after repeated failed login attempts
- Password recovery flow with secure token-based reset
- Teachers create classes scoped by department, year, and subject
- Students join via time-limited, unique class tokens
- Configurable class-level language restrictions (C, C++, C#, Java, Python, JavaScript, Go)
- Problem assignment with individual deadlines and grading configurations
- Hierarchical Problem Set → Problem Node organization for structured coursework
- Monaco Editor (VS Code's editor) embedded in-browser with full syntax highlighting
- Support for 7 languages: C, C++, C#, Java, Python, JavaScript, Go
- Code execution powered by Judge0 CE with enforced time/memory limits
- Custom test case execution — students can test with their own inputs before submitting
- Detailed per-test-case results: status, runtime, memory usage, expected vs actual output
- Configurable time limits and memory limits per problem with language-specific relaxation multipliers
- 3-stage guided wizard for problem creation:
- Details — Title, rich HTML statement (TipTap editor with image upload to Cloudinary), difficulty, tags, supported languages, limits
- Solutions & Test Cases — Reference solutions, manual test case authoring, AI-powered test case generation (Gemini / Groq), automated verification against reference solution
- Starter & Driver Code — Per-language boilerplate and I/O driver code
- Problems go through a draft → verified → active lifecycle
- Rich problem statements with embedded images, code blocks, tables, and tooltips
- Teachers create timed exams with fixed-window or flexible-duration modes
- Proctored exam environment with configurable security:
- Fullscreen enforcement with violation tracking
- Tab-switch detection and configurable limits
- Copy/paste and right-click disabling
- DevTools detection
- Automated exam lifecycle: scheduled → active → completed (via cron scheduler)
- Scoring modes: best submission or last submission
- Real-time exam monitoring dashboard for teachers
- Per-student exam reports with detailed submission breakdowns
- Student reports: per-problem scores, submission history, code review
- Teacher reports: class-wide performance, exam results, detailed grading views
- Admin reports: system-wide user and class analytics
- Submission history with full code snapshots, verdicts, and execution metrics
- In-app notification center for all user roles
- Transactional emails via Nodemailer (OTP, password reset, exam announcements)
- Per-user notification preferences (assignments, deadlines, leaderboard updates)
- Dark/Light/System theme support with persistent preferences
- Responsive design with Tailwind CSS v4
- Smooth page transitions and micro-animations via Framer Motion
- Breadcrumb navigation across all role-based dashboards
- Toast notifications for real-time user feedback
| Layer | Technologies |
|---|---|
| Frontend | React 19, Vite 7, Tailwind CSS 4, Monaco Editor, TipTap (Rich Text), Framer Motion, Recharts, React Router v7 |
| Backend | Node.js 20, Express 5, Mongoose ODM, JWT, bcrypt, Joi (validation), Winston (logging), Morgan |
| Database | MongoDB Atlas |
| Code Execution | Judge0 CE (self-hosted / cloud) |
| AI Services | Google Gemini, Groq (for test case generation) |
| Media Storage | Cloudinary (image uploads for problem statements) |
| Auth Providers | Google OAuth 2.0, Email/OTP |
| Security | Helmet, CSRF tokens, Cloudflare Turnstile, express-rate-limit |
| DevOps | Docker, Docker Compose, GitHub Actions (CI/CD), AWS EC2 (backend), Vercel (frontend) |
| Nodemailer (SMTP transactional emails) |
ClassCode implements strict 4-tier RBAC with dedicated dashboards and API-level authorization:
| Role | Capabilities |
|---|---|
| Admin | User management, class oversight, platform configuration, system reports, broadcast notifications |
| Teacher | Create/manage classes, assign problems, create & monitor exams, grade submissions, configure account defaults |
| Problem Setter | Author problems (wizard), manage problem sets, verify test cases, view problem reports |
| Student | Join classes, solve problems, run/submit code, take exams, view reports & submissions |
Push to main (backend/**)
│
▼
GitHub Actions Workflow
│
├── SSH into AWS EC2
├── git pull origin main
└── docker compose up -d --build
│
▼
Backend live on EC2
Frontend auto-deploys via Vercel on push
- Full-stack monorepo with separate backend and frontend codebases
- Extensive data modeling covering users, classrooms, problems, submissions, exams, notifications, and configurations
- Multi-layered security architecture with authentication, role-based authorization, CSRF protection, and rate limiting
- Production-grade exam engine with comprehensive proctoring logic
- Handles concurrent code submissions with queue-based execution and rate limiting
- CI/CD automated deployments with Docker containerization
As a core full-stack developer on this project, I was responsible for:
- Architecting the backend API structure with Express 5 and designing the MongoDB data models
- Building the complete authentication system (JWT, OAuth, OTP, password recovery)
- Implementing the proctored exam system — from data modeling to the lockdown UI environment
- Developing the problem setter wizard with multi-stage validation and AI-powered test case generation
- Designing the code execution pipeline integrating Judge0 with custom driver code merging
- Setting up the CI/CD pipeline with Docker, GitHub Actions, and AWS EC2
- Building responsive, role-based frontend dashboards with React 19 and Tailwind CSS v4
- Implementing security hardening: CSRF, rate limiting, Helmet CSP, Cloudflare Turnstile
| Name | Role | GitHub | |
|---|---|---|---|
| Suraj Upadhye | Full-Stack Developer | ||
| Vedant Jadhav | Full-Stack Developer | ||
| Shivam Pawar | Full-Stack Developer |
Have feedback, suggestions, or found something impressive? I'd love to hear from you!
Whether it's a feature idea, an improvement suggestion, or just want to connect — feel free to reach out.
| Contact Method | Contact Link |
|---|---|
| s.upadhye6782@gmail.com | |
| linkedin.com/in/suraj-upadhye | |
| GitHub | github.com/Suraj-Upadhye |
If you have constructive feedback, feature suggestions, or want to discuss the architecture — I'm always open to conversations. Don't hesitate to reach out!