π A web-based compiler and coding practice platform that brings together everything you need to learn and practice coding β all in one place.
Unlike basic compilers, this project not only supports multiple programming languages but also comes with advanced features such as coding question generation, database storage, progress tracking, and a personalized dashboard.
Itβs more than just a compiler β itβs a complete coding assistant designed to make coding accessible, interactive, and effective.
- Supports multiple languages: C, C++, Java, Python, JavaScript, and more.
- Syntax highlighting and editor-like environment.
- Custom input support (stdin).
- Real-time output display for code execution.
- Error handling with clear compiler/runtime error messages.
- Multiple test cases support (run code against hidden/public test cases).
- Fast and lightweight execution directly in your browser.
- Automatically generates unique coding questions for practice.
- Questions are stored in the database only if they donβt already exist (avoiding duplicates).
- Categorized by difficulty levels: Easy, Medium, Hard.
- Covers a wide range of topics: arrays, strings, recursion, dynamic programming, etc.
- Track your journey: number of questions solved, attempted, and skipped.
- Performance metrics: accuracy, success rate, coding streaks.
- Visual dashboard with charts and analytics.
- Helps users identify weak areas and improve gradually.
- Submissions are validated against multiple test cases.
- Instant feedback on correctness, runtime, and efficiency.
- Encourages writing clean and optimized code.
- Runs directly in the browser β no heavy IDE or setup required.
- Works on all major operating systems and devices.
- Lightweight, responsive, and user-friendly UI.
- Built for learners, by learners.
- Community contributions are welcome.
Follow these instructions to get the project running on your local machine.
First, clone the project repository to your local machine.
git clone https://github.com/akash-kant/CM_Coding_Platform.git
cd CM_Coding_Platform
Follow these steps to set up and run the backend server.
-
Navigate to the server directory:
cd server
-
Install dependencies:
npm install
-
Create a
.env
file in theserver
directory with the following variables:# Server Configuration PORT=5000 # MongoDB Connection String # Replace with your actual MongoDB connection URI MONGO_URI=mongodb+srv://<username>:<password>@cluster0.example.com/?retryWrites=true&w=majority&appName=Cluster0 # JSON Web Token (JWT) Secret # Use a long, random string for security JWT_SECRET=your-strong-jwt-secret-key # Judge0 API Credentials (for the compiler) # Get your key from: https://rapidapi.com/judge0-official/api/judge0-ce RAPIDAPI_KEY=your-rapidapi-key RAPIDAPI_HOST=judge0-ce.p.rapidapi.com
β οΈ Important: Replace placeholder values with your actual credentials. Never commit your.env
file. -
Start the backend server:
npm run dev
The server should now be running at:
http://localhost:5000
Now, set up the frontend React application.
- Open a new terminal and navigate to the client directory from the project root:
cd client
- Install dependencies:
npm install
- Start the client application:
The app will start locally. Open your browser and visit: π
npm run dev
http://localhost:5173
- Select a language from the dropdown.
- Write your code in the editor.
- Provide custom input (if needed).
- Run and see the output instantly.
- Generates a new practice question on request.
- Checks the database for existing questions before adding.
- Ensures unique, non-repetitive practice.
- Logs attempts, solved/unresolved questions, and correctness.
- Stores user activity for long-term progress.
- Visualized in a dashboard with charts and stats.
- Shows streaks, performance graphs, and solved problem counts.
- Motivates learners with progress insights.
We welcome contributions from the community!
- Report bugs
- Suggest features
- Improve the UI/UX
- Optimize backend performance
- Fork the repository
- Create a new branch (feature/your-feature-name)
- Commit and push your changes
- Open a Pull Request
For questions, suggestions, or support, reach out at:
Whatsapp Disscusion https://chat.whatsapp.com/LLlWxjEArt842s8IFf37pn