Skip to content

Suraj-Upadhye/ClassCode-Showcase

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 

Repository files navigation

ClassCode

The Online Coding Platform for Academic Institutions

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.

Node.js Express React MongoDB Tailwind CSS Docker Vercel AWS EC2 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.


Live Demo

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.


Table of Contents


Problem Statement

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.


What is ClassCode?

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.


High-Level Architecture

┌─────────────────────────────────────────────────────────────────┐
│                        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) │
    └─────────────┘   └──────────────┘   └──────────────┘

Key Features

1. Authentication & Security

  • 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

2. Classroom Management

  • 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

3. Code Editor & Execution

  • 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

4. Problem Setter Wizard

  • 3-stage guided wizard for problem creation:
    1. Details — Title, rich HTML statement (TipTap editor with image upload to Cloudinary), difficulty, tags, supported languages, limits
    2. Solutions & Test Cases — Reference solutions, manual test case authoring, AI-powered test case generation (Gemini / Groq), automated verification against reference solution
    3. 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

5. Exams & Proctoring

  • 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

6. Reports & Analytics

  • 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

7. Notifications System

  • 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)

8. UI/UX

  • 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

Tech Stack

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)
Email Nodemailer (SMTP transactional emails)

Role-Based Access Control

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

CI/CD Pipeline

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

Scale & Complexity

  • 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

My Contributions

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

Team

Name Role GitHub LinkedIn
Suraj Upadhye Full-Stack Developer GitHub LinkedIn
Vedant Jadhav Full-Stack Developer GitHub LinkedIn
Shivam Pawar Full-Stack Developer GitHub LinkedIn

Contact & Feedback

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
Email s.upadhye6782@gmail.com
LinkedIn 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!


Built with ❤️ for Walchand College of Engineering, Sangli

This is a showcase repository. The source code is proprietary and not available for public distribution.


Star this repository if you find it impressive!

Stars Forks


© 2025-2026 ClassCode. All rights reserved.

About

ClassCode – Product Overview : The Online Coding Platform for Academic Institutions

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors