Welcome to CodeForge, an interactive web application for coding and testing in multiple programming languages.
- React: For building the user interface.
- React-Ace: Integrated code editor for writing and editing code.
- Xterm.js: Terminal emulation library for creating a frontend terminal experience.
- Node.js: For backend server logic.
- Express.js: Web framework for handling API requests and routing.
- Node-pty: Backend terminal implementation for executing commands and interacting with the system shell.
- Socket.IO: Real-time bi-directional communication between the frontend and backend.
- Docker: Containers to provide isolated environments for each user.
-
Containerized Environment:
Each user gets a dedicated Docker container, ensuring an isolated and secure coding environment. -
Interactive Terminal:
A fully functional terminal is integrated into the application, allowing users to execute commands in real time. -
Pre-installed Tools:
The containers come pre-loaded with commonly used tools and languages, including:- Node.js
- GCC/G++ (for C and C++)
- Python
-
Code Editor:
A customizable code editor built using React-Ace, offering syntax highlighting, autocompletion, and more.
- User Signup/Login: A new Docker container is dynamically created for each user session.
- Code Compilation & Execution: Users can write, compile, and execute code in the integrated environment.
- Real-time Terminal: The terminal reflects all system-level commands and outputs in real-time via Node-pty and Socket.IO.
- Safe Environment: With Docker containers, user operations remain isolated and secure.
- Clone the repository:
git clone https://github.com/your-repo/codeforge.git cd codeforge - Install dependencies for the frontend and backend::
cd client npm install cd ../server npm install
- Start the backend server:
cd backend npm start - Start the frontend::
cd frontend npm run dev


