Skip to content

A scalable platform for competitive coding, featuring real-time evaluation and Docker-based code isolation.

Notifications You must be signed in to change notification settings

devansh-dek/Codify

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 

Repository files navigation

Codify

Express Docker

Table of Contents

Project Overview

This project is a Codeforces clone that provides an online platform for competitive programming. Built with React and Express, it allows users to submit code for various problems, which are then executed securely in containerized Docker instances. The platform includes user authentication, problem creation, real-time code execution, and results display, creating an environment similar to popular coding platforms like Codeforces and CodeChef.

Features

  • User Authentication: Secure JWT-based user authentication with session management using Recoil.
  • Problem Management: Administrators can create problems with details like title, description, constraints, and sample inputs/outputs.
  • Code Submission and Evaluation: Users can submit code in multiple programming languages for execution in Docker containers.
  • Real-Time Feedback: Code is queued, executed in containers, and results (success/failure, runtime, memory usage) are displayed to users in real-time.
  • Problem Difficulty: Problems are categorized by difficulty levels to help users choose challenges.
  • Dockerized Code Execution: Each code submission is executed inside isolated Docker containers to ensure security and consistency.

Tech Stack

  • Frontend:

    • React.js (with TypeScript)
    • Tailwind CSS (for styling)
    • Recoil (for state management)
    • Shadcn
  • Backend:

    • Node.js with Express.js
    • MySQL with Sequelize ORM
    • Docker (for containerized code execution)
    • RabbitMq for queueing submissions/runs
  • Other:

    • JWT for Authentication
    • WebSockets for real-time notifications of code execution results

Installation

Prerequisites

  • Node.js (v14+)
  • Docker
  • MySQL (or any SQL-based DB supported by Sequelize)

Steps

  1. Clone the repository:
    git clone https://github.com/your-username/codeforces-clone.git
    cd codeforces-clone

About

A scalable platform for competitive coding, featuring real-time evaluation and Docker-based code isolation.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published