CodeMaster
CodeMaster
Very Short Summary:
An open-source online coding assessment platform tailored for smaller communities and organizations, supporting contests, coding & MCQ support, and scalable code execution.
Aim:
To build an open source, secure, scalable, and easy-to-use online coding contest platform that facilitates both conducting and participating in assessments with dynamic evaluation and real-time feedback.
Introduction:
In the current digital age, online coding platforms are essential tools for recruitment and upskilling. However, existing tools often lack customization for smaller communities or student organizations. CodeMaster bridges this gap by providing a tailored assessment solution, allowing users to create, manage, and participate in coding contests with ease. The platform supports proctoring features, fair evaluation, and live collaborative editing similar to Google Docs, making it ideal for educational institutions and clubs.
Literature Survey and Technologies Used:
Technologies:
- Frontend: React.js
- Backend: Node.js + Express.js
- Database: PostgreSQL (via Supabase)
- Code Execution: Piston API
- Message Queue & Caching: Redis
- Version Control: Git, GitHub
Related Work & Concepts:
- LeetCode, HackerRank: These platforms influenced the design of our question interface and contest evaluation system.
- Google Docs: The real-time collaborative editor was inspired by the live editing experience offered by tools like Google Docs.
- Judge0 & Piston: These open-source platforms inspired our code execution setup.
- Codeforces + Polygon: Codeforces is a widely-used competitive programming platform. Polygon, its problem preparation system, inspired the question-setting workflow in our project. We integrated the Polygon API to simplify and streamline question creation.
Methodology:
System Workflow:
1. Code Submission: Users write and submit code through the frontend interface.
2. Queueing: Submissions are sent to the backend server, then queued using Redis for async processing.
3. Code Execution: Worker processes pick submissions from the queue and use the Piston API to run the code.
4. Result Publishing: The result is saved in Supabase PostgreSQL and can be viewed by users.
5. Leaderboard: Shows scores of the contest participants.
Features Implemented:
- Login system
- Contest creation and participation modules
- MCQ and coding question support
- Leaderboard with scores
- Admin dashboard to manage contests and problems
- Real-time collaborative code editor
- Integrated Polygon API for easy problem setting
Results:
- Fully functional web application supporting coding and MCQ-based assessments.
- Contest system with working custom problem creation , participation, and result viewing.
- Backend uses Redis for job queuing and Piston API for code execution.
- PostgreSQL (Supabase) used as the central database for all application data.
- Real-time code editor with minimal latency using web sockets
Conclusions / Future Scope:
Conclusion:
CodeMaster is a promising, lightweight alternative to existing online coding platforms. It offers essential functionality for educational use-cases and club contests. The integration of collaborative tools and easy question management via Polygon sets it apart from typical platforms.
Future Scope:
- Add practice problem sets and upskilling challenges.
- Introduce Code Battles for 1v1 matches.
- Add discussion forums and a global rating system.
- Implement anti-cheat systems including tab switching detection and AI-based monitoring.
References / Links to GitHub Repo:
GitHub Repository: https://github.com/IEEE-NITK/Codemasters
Piston API: https://github.com/engineer-man/piston
Supabase: https://supabase.com
Polygon: https://polygon.codeforces.com/
Mentors and Mentees Details:
Team Mentors:
1. Aahil Rafiq
Contact: +91 79 7565 7621
Gmail: aahilrafiq.221cs101@nitk.edu.in
2. Syed Farhan
Contact: +91 79 7577 8026
Gmail: syedfarhan.221cs254@nitk.edu.in
3. Rohith Vijayakumar
Contact: +91 96 3244 3134
Gmail: rohithvijayakumar.221it055@nitk.edu.in
4. Rohan Chandra Regulagadda
Contact: +91 86 3988 4378
Gmail: regulagaddarohanchandra.221cs241@nitk.edu.in
Mentees:
1.Paluvadi Dinesh Manideep
Contact: +91 7416135389
Gmail: dineshmanideep.231it047@nitk.edu.in
2.Nikhil Kottoli
Contact: +91 9008465462
Gmail:nikhilkottoli2005@gmail.com
3. Nilayan Mazumdar
Contact: +9932451513
Gmail: mazumdarnilayan@gmail.com
Report Information
Team Members
- Dinesh Manideep [CompSoc]
- Syed Farhan [CompSoc]
- Aahil Rafiq [CompSoc]
- Nikhil Kottoli [CompSoc]
- Nilayan Mazumdar [CompSoc]
- Rohith Vijayakumar [CompSoc]
- SK Sharhaan Naim [CompSoc]
- Regulagadda Rohan Chandra [CompSoc]
Team Members
- Dinesh Manideep [CompSoc]
- Syed Farhan [CompSoc]
- Aahil Rafiq [CompSoc]
- Nikhil Kottoli [CompSoc]
- Nilayan Mazumdar [CompSoc]
- Rohith Vijayakumar [CompSoc]
- SK Sharhaan Naim [CompSoc]
- Regulagadda Rohan Chandra [CompSoc]
Report Details
Created: April 7, 2025, 7:49 a.m.
Approved by: Abhin B [CompSoc]
Approval date: April 7, 2025, 3:54 p.m.
Report Details
Created: April 7, 2025, 7:49 a.m.
Approved by: Abhin B [CompSoc]
Approval date: April 7, 2025, 3:54 p.m.