Skip to content

NoxiousTab/practice_judge

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🧪 Online Judge Platform

A lightweight, full-stack online judge system built from scratch that allows users to submit code in C++, Java, and Python and get real-time verdicts across multiple testcases.

Live Demo → practice-judge.onrender.com
GitHub → github.com/NoxiousTab/practice_judge


🚀 Features

  • Multi-language support (C++, Java, Python)
  • 🧠 Test case execution engine with stdin/stdout comparison
  • 📉 60% faster execution using optimized subprocess management
  • 🛠️ Error handling with detailed output for failed cases
  • 🔍 Input/output diffing for debugging incorrect submissions
  • 🧪 Support for multiple testcases via I/O file pairing
  • ⚙️ Flask-based API design, minimal and production-ready

📸 Preview

Preview


🧩 Tech Stack

Backend Frontend Execution DevOps / Tooling
Python (Flask) HTML/CSS/JS subprocess module Git, Render, Docker (optional)

🏗️ Architecture

[User Input] → [Flask API] → [Code Compiler & Executor] → [Output Matcher] → [Result]

  • Each submission is compiled (if applicable), executed in a sandboxed subprocess, and validated against expected outputs.
  • The platform reads test cases from .in and .out files and compares them in real time.

📈 Performance Improvements

  • Reduced test latency by 60% using:
    • Optimized subprocess management
    • Streamlined stdout/stderr capture
    • Parallel execution logic (optional extension)

📌 Why This Project Matters

This project simulates the core logic of competitive programming platforms like Codeforces, LeetCode, or HackerRank—ideal for recruiters evaluating backend, compiler, or infrastructure skills. It demonstrates:

  • System-level programming
  • Runtime sandboxing
  • API design
  • Real-world debugging and code evaluation workflows

👨‍💻 Author

Tabish Ahmed
GitHubLinkedIn


About

This is a personal project to run code against input files in one go instead of doing manually (mostly because I was tired of running my code manually against all input files while practicing codejam archives and then "diff"-ing against my output and the correct output file) this is just a lazy get-away

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors