Skip to content

Add Java and Python Execution Support #176

@PragatiGupta168

Description

@PragatiGupta168

Summary / What

Add Java and Python execution support in the collaborative code editor.

Why / Motivation

Currently, the editor supports only C and C++ execution (covered in another issue).
Adding Java and Python will:

  • Expand the usability of the platform for more users.
  • Help students and developers practice across multiple languages.
  • Make the project closer to a real-world multi-language IDE.

Tasks / Implementation Plan

  • Backend: Extend execution API to support Java (javac + java).
  • Backend: Extend execution API to support Python3 (python3).
  • Update API request handling to differentiate between languages (language_id or compiler flag).
  • Frontend: Add Java and Python options in the language selector dropdown.
  • Frontend: Ensure console displays stdout, stderr, and runtime errors properly.
  • Add sample programs for Java and Python testing.

Expected Behaviour

  • When a user selects Java or Python, they can write and run code successfully.
  • The console should display correct output or detailed error messages.

Actual Behaviour

  • Currently, Java and Python execution are not supported.
  • Only C/C++ execution is available.

Environment / Versions

  • Server OS: (mention your server OS here, e.g., Ubuntu 22.04)
  • Node.js Version: (e.g., v18.x)
  • Existing Compilers: C, C++ already integrated

Acceptance Criteria / Checklist

  • User can execute Java code and see output/errors in the console.
  • User can execute Python code and see output/errors in the console.
  • Compilation errors and runtime errors are clearly shown.
  • No security risks — execution is sandboxed (via Judge0 API or Docker).
  • Tests/examples for both languages are included and pass.

References / Related Issues

  • Related Issue: C and C++ compiler integration issue (link to that issue number)
  • Documentation: Judge0 API (for multi-language execution)
  • Future Scope: Could be extended to more languages (Go, JS, Ruby, etc.) later.

Metadata

Metadata

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions