0% found this document useful (0 votes)
12 views34 pages

CODESYNC: Online Coding Challenge Platform

Project report for a coding platform. Based in MERN stack. Utilized API's

Uploaded by

Ayan
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
12 views34 pages

CODESYNC: Online Coding Challenge Platform

Project report for a coding platform. Based in MERN stack. Utilized API's

Uploaded by

Ayan
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

CODESYNC

Submitted in partial fulfillment of the requirements of the degree of


BACHELOR OF COMPUTER ENGINEERING
by

Atharva Patil - 22102060

Ayan Mohammed -22102113

Varun Sangale -22102089

Nishant Prasad - 22102090

Guide:

Prof. [Link]

Department of Computer Engineering


A. P. SHAH INSTITUTE OF TECHNOLOGY, THANE
(2024-2025)

1
A. P. SHAH INSTITUTE OF TECHNOLOGY, THANE

CERTIFICATE
This is to certify that the Mini Project 2A entitled “CODESYNC” is a
bonafide work of “Atharva Gokul Patil (22102060), Ayan Mohammed
AbdulHalim (22102113), Varun Gangaram Sangle (22102089), Nishant
Ashok Prasad (22102090) submitted to the University of Mumbai in partial
fulfillment of the requirement for the award of the degree of Bachelor of
Engineering in Computer Engineering.

Guide: Project Coordinator: Head of Department


Prof. [Link] Prof. R. R. Nikam Dr. S.H. Malave

2
s A. P. SHAH INSTITUTE OF TECHNOLOGY, THANE

Project Report Approval for Mini Project-2B

This project report entitled “CODESYNC” by Atharva Patil, Ayan


Mohammed AbdulHalim, Nishant Ashok Prasad, Varun Gangaram
Sangale is approved for the partial fulfillment of the degree of Bachelor of
Engineering in Computer Engineering, 2024-25

Examiner Name Signature

1.

2.

Date:
Place:

3
Declaration
We declare that this written submission represents my ideas in my own words and where others' ideas
or words have been included, I have adequately cited and referenced the sources. I also declare that I
have adhered to all principles of academic honesty and integrity and have not misrepresented or
fabricated or falsified any idea/data/fact/source in my submission. I understand that any violation of the
above will be cause for disciplinary action by the Institute and can also evoke penal action from the
sources which have thus not been properly cited or from whom proper permission has not been taken
when needed.

Atharva Gokul Patil – 22102060

Ayan Mohammed AbdulHalim– 22102113

Nishant Ashok Prasad – 22102090

Varun Gangaram Sangale – 22102089

Date:

4
Abstract

CODESYNC is an online platform designed to manage coding challenges and assessments, allowing
administrators to upload and organize coding questions for users to solve in real time. The platform
features an admin dashboard where administrators can create, categorize, and track questions by
difficulty, programming languages, and topics, while managing users and analyzing performance.
Users can solve problems in an integrated development environment (IDE) that supports multiple
programming languages, with real-time feedback provided based on test cases, enabling them to refine
their solutions before submission. The platform incorporates a scoring and ranking system, fostering
competition through leaderboards and time-based challenges, while offering admins detailed
performance analytics to enhance question design and evaluation.

Keywords: Coding Environment, Admin Dashboard, Scoring & Ranking, AI Integration, Real-
time feedback , Multiple Users

5
CONTENTS

Sr. Page
Chapter Name
No. No.
1 Introduction 8

2 Literature Survey 9

3 Problem Statement, Objective & Scope 13

4 Proposed System 14

5 Project Plan 23

6 Experimental Setup 25

7 Implementation Details 26

8 Results 28

9 Conclusion 33

10 References 34

6
LIST OF FIGURES

Sr. Page
Figure Name
No. No.
1 Gantt Chart 15

2 Architecture Diagram 16

3 Data Flow Diagram 18

4 Use Case Diagram 19

5 Sequence Flow Diagram 22

6 Activity Diagram 24

7 User Authentication Implementation 28

8 User Authentication Screenshots 29

9 Backend Screenshots 30

7
Chapter 1
Introduction
One of the key features of the platform is its coding environment, which includes a code editor and
terminal integrated directly into the learning interface. Users can solve problems within this
environment, and solutions are evaluated using test cases or AI-based analysis. This integration not only
streamlines the learning process but also provides instant feedback, encouraging active learning and
self-improvement. The "Ask AI" feature further enhances the learning experience by offering intelligent
hints when students encounter difficulties, helping them solve problems independently rather than
providing direct solutions. The project also emphasizes scalability and security, ensuring that the
platform can handle a growing number of users while maintaining data integrity and privacy. By
utilizing microservices architecture and adhering to best practices in web development, the platform is
designed to be both efficient and adaptable, supporting future expansions or feature additions.

8
Chapter 2

Literature Survey

1. T. K. Chandru, M. Dinesh Kumar, S. Karthikeyan, K. Saranya. " Interactive Coding Platform


for Students" International Journal of Recent Technology and Engineering (IJRTE) ISSN: 2277-
3878 (Online), Volume-7 Issue-4s, November 2018 This paper titled "Interactive Coding Platform
for Students" presented a web-based platform designed to improve college students' coding skills
through continuous feedback and practice. It allows teachers to upload coding challenges, assignments,
and exams, which students can solve using multiple programming languages like C, C++, Python, and
Java. Built on the MEVN (MongoDB, ExpressJS, VueJS, NodeJS) stack and adopting a microservices
architecture for scalability and reliability, the platform provides features such as real-time code
compilation, a customizable test environment, cloud storage, and instant feedback on submissions. It
includes performance tracking, leaderboards, and badges to foster competition and motivation.
Additionally, the platform is suitable for academic tasks and recruitment processes, helping students
build strong coding habits and better prepare for industry demands.

2. Gandikota Ramu. "A Case Study on an Online platform approach to improve coding skill
"International Journal of Applied Engineering Research ISSN 0973-4562 Volume 13, Number 6
(2018) pp. 4464-4470" presented a case study on the IARE-BuildIT Tool, an online coding platform
designed to improve coding skills among engineering students by allowing them to solve problems
remotely using internet access. The platform consists of instructor, administrator, and student modules,
enabling seamless problem uploading, management, and testing. The study, conducted over 12 months
with around 7,000 students, shows a significant boost in student engagement and coding proficiency.
Key findings highlight the platform's ability to foster active learning and enhance performance in
coding contests. Despite being limited to one institution, the study concludes that online coding
platforms are highly effective and recommends expanding their use to a broader audience.

3. Nien-Lin Hsueh *, Lien-Chi Lai and Wei-Hsiang Tseng "Design of an Online Programming
Platform and a Study on Learners’ Testing Ability". This paper titled "Design of an Online
Programming Platform and a Study on Learners' Testing Ability" presented the development of a

9
system called Pytutor, designed to integrate software-testing concepts with an online judge (OJ)
system. The goal is to improve both programming and testing skills among learners, focusing on the
testing abilities often overlooked in traditional OJ systems. The study assesses how students perform
in software engineering by analyzing their code coverage, mutation testing, and learning behaviors,
comparing computer science majors with non-CS majors. The results indicate that better testing
abilities can enhance programming skills, suggesting the importance of integrating software-testing
education into programming courses

4. Akshata Chandure , Arzoobanu Siddiquee , Roshni Baviskar, [Link] Pai "Online Platform
for Taking Coding Exams/Interview" Department of Information Technology, Terna
Engineering College, Mumbai ,India The paper titled "Online Platform for Taking Coding
Exams/Interview" presented the development of an online platform called Code Online, which
facilitates the administration of coding tests, quizzes, and interviews. The platform offers features for
both examiners and students, allowing examiners to design tests, set problem statements, and manage
interviews, while students can participate in these tests from any location, receiving immediate results
for quizzes and aptitude tests. The platform aims to provide a comprehensive solution for online coding
exams and interviews, integrating functionalities like coding test execution, question paper creation,
and interview management. The paper also discusses the system architecture, user flow, and advantages
of such a platform in improving accessibility, reducing logistical barriers, and enhancing the exam
process

10
Research Paper ANALYSIS
1. T. K. Chandru, M. Dinesh The paper discussed the development of an interactive
Kumar, S. Karthikeyan, K. coding platform targeted at college students to foster a
Saranya. " Interactive Coding coding culture. The platform aims to enhance students
Platform for Students" ‘programming skills through continuous feedback and
learning. It's designed as a web application where
teachers can set problems and assignments, while students
can solve them

2. Gandikota Ramu. "A Case The paper described a case study of IARE-BuildIT, an
Study on an Online platform online coding platform designed to improve students'
approach to improve coding skill " coding skills. The platform allows students to solve
coding problems online from anywhere with internet
access. The results
showed increased student engagement and improved
coding efficiency. The study concludes with
recommendations for implementing online coding
platforms in engineering education.

3. Nien-Lin Hsueh *, Lien-Chi Lai The paper discussed the development and implementation
and Wei-Hsiang Tseng "Design of of Pytutor, an online judge (OJ) system that incorporates
an Online Programming Platform software testing concepts to assess learners' programming
and a Study on Learners’ Testing and testing abilities. Unlike traditional OJ systems,
Ability". Pytutor allows students to write their own test cases. The
study analyzes the performance of learners, comparing,
and explores the relationships between programming
ability, testing ability, and learning outcomes.

4. Akshata Chandure , Arzoobanu This research paper presented an online platform for
Siddiquee , Roshni Baviskar, conducting coding exams, quizzes, and interviews. The
[Link] Pai "Online Platform platform aims to provide a single, flexible solution for

11
Research Paper ANALYSIS
for Taking Coding both exam-takers and examiners. It allows examiners to
Exams/Interview" set custom questions and problem statements, while
providing students with a real test environment to code in
their preferred language.

12
Chapter 3

Problem Statement, Objective & Scope


Problem Statement: -
In computer science education, many students struggle to master data structures and algorithms,
essential for programming and software development. Traditional learning methods often lack the
interactive and practical engagement needed for deep understanding. Existing coding platforms may
not specifically cater to learners focused on data structures in C, often offering a fragmented learning
experience. CodeSync addresses these challenges by providing a user-friendly platform with hands-on
coding challenges, an integrated code editor, and instant feedback. An AI-powered tool offers hints to
promote independent problem-solving, while a progress dashboard and leaderboards encourage
competition. Secure user registration ensures effective account management.
Objective: -
● Facilitate Learning of Data Structures: Provide a platform that allows users to learn and practice
data structures through hands-on coding exercises in C programming.
● Problem Solving Environment: Develop a code editor where users can solve data structure
problems, submit their solutions, and receive immediate feedback on their performance
● AI-Powered Assistance: Integrate an 'Ask AI' feature that provides users with hints and guidance
without giving direct solutions, enhancing the learning experience.
Scope: -
 Interactive Coding Platform: Focused on providing hands-on learning experiences for students
learning C programming and data structures.
 Target Audience: Designed for students, educators, and administrators to address their specific
needs.
 Comprehensive Features: Includes tools like AI-assisted guidance, progress tracking, and a
leaderboard for performance comparison.
 Secure User Management: Provides robust user registration, authentication, and account
management for both students and administrators.

13
Chapter 4

Proposed System Architecture


Description about Proposed System:

The architecture of CodeSync is designed to provide an effective learning and coding


environment through a modular and scalable framework. The system incorporates various
technologies, each playing a crucial role in ensuring a seamless user experience and robust
functionality.

Key technologies and their roles include:

 Frontend Technologies: We have used [Link] our project to make out projective
more emersive and smooth in functionality
 Backend Technologies : We have udes [Link] in our project to connect out frotend
with database as its more handy to use and goes good with [Link]
 MySQL Database: A relational database is used to store user data, coding problems,
and user progress. The schema is designed to efficiently manage relationships
between users, their submissions, and problem sets, ensuring data integrity and
security.
 AI Component: Integrated into the system, this component provides hints and
guidance to users when they encounter difficulties while solving problems. It can
be implemented as a separate microservice that processes user queries and returns
relevant suggestions.

14
4.1 Architecture / Block Diagram

4.1.1 Architecture / Block Diagram

15
4.2 Data Flow Diagram:-

4.2.1 Level 0 DFD

4.2.2 Level 1 DFD

16
4.2.3 Level 2 DFD

17
4.3 Use Case Diagram

4.3.1 Use Case Diagram

18
4.4 Sequence Diagram:-

4.4.1 Landing page

4.4.2 User registration:

19
4.4.3 Dashboard Module

4.4.4 Add question Module:

20
4.4.5 Code editor and terminal :

21
4.5 Activity Diagram:-

4.5 Activity Diagram

22
Chapter 5
Project Planning
Goal: Develop a coding platform for solving data structure problems in C, featuring a code editor, AI
hints, leaderboard, and progress tracking.
Target Audience: Students and coding enthusiasts learning data structures in C.
Phases of Development

Phase 1: Requirement Gathering & Analysis (1–2 weeks)


Define user stories for admins and users.
Identify key features: user authentication, code editor, AI hints, etc.
Specify data structure problems (stack, queue, linked list, tree, graph).
Determine technical stack and analyze competitor features.

Phase 2: System Design (2–3 weeks)


Database Design: Plan tables for users, admins, problems, submissions, and rankings.
Frontend Design: Create wireframes for landing page, login/signup, dashboard, code editor, and
leaderboard.
Backend Architecture: Design APIs for user actions and set up the C code execution environment.
AI Hint System: Plan interaction for hint generation.
Security: Ensure secure user authentication and data protection.

Phase 3: Development (6–8 weeks)


Frontend Development (3–4 weeks):
Build landing page, login/signup forms, code editor, dashboard, and leaderboard.
Backend Development (4–5 weeks, overlapping):
Implement user authentication, develop APIs, set up the database, and code execution engine.
Integrate AI for hints.
Admin Panel (1–2 weeks):
Develop functionalities for managing problems and user progress.

Phase 4: Testing (2–3 weeks)


Conduct unit, integration, AI, security, and performance testing to ensure system reliability and
accuracy.

Phase 5: Deployment (1 week)


Set up servers, deploy the database, implement CI/CD pipelines, and conduct a soft launch for user
feedback.

23
5. GANNT CHART:-

5.1 Gantt Chart

24
Chapter 6

Experimental Setup

Software Requirements: -
 Frontend : [Link] is a JavaScript library for building fast, interactive user interfaces, primarily
for single-page applications. It enables developers to create reusable UI components
 Backend : [Link] is a runtime environment that allows developers to execute JavaScript code
outside of a web browser, primarily on the server side. It uses an event-driven, non-blocking I/O
model, making it efficient and scalable for building fast, data-intensive applications.
 Database : MySQL is an open-source relational database management system (RDBMS) that uses
structured query language (SQL) for managing and organizing data in a tabular format. It supports
complex queries, transactions, and is widely used for web applications and data storage due to its
scalability and reliability.
 AI Integration: Google Gemini is an AI platform that integrates natural language processing and
machine learning models to provide advanced conversational capabilities, similar to OpenAI's GPT
models. It aims to enhance applications with features like text generation, content understanding,
and AI-driven interactions.

Hardware Requirements: -
 Processor: A 2.5 GHz quad-core processor (or higher) to ensure smooth local
development.
 Memory: A minimum of 8 GB of RAM to handle multitasking during development.
 Storage: At least 100 GB of available disk space for software installation and project
files.
 Internet: A stable, high-speed connection to support real-time collaboration and API
requests.

25
Chapter 7
Implementation Details
User Authentication:

Admin and User roles: Admins can upload or manage problems, while users can solve problems
and track their progress.
Login/Signup Mechanism: Standard email/password-based authentication with validation.
Data Structure Problem Solving
C Programming Language: The platform focuses on problem-solving using C, where users write
code to solve data structure problems.
Stack: Problems related to implementing and using stacks (e.g., reverse a string using stack).
Queue: Problems based on queue operations (e.g., circular queue implementation).
Linked List: Challenges involving single/double linked list operations (e.g., reverse a linked list).
Tree: Binary trees, AVL trees, and tree traversal operations.
Graph: Problems based on graph theory (e.g., BFS, DFS).

Code Editor:

Syntax Highlighting: Helps users to write code efficiently in C.


Compile & Run: Users can compile their C code and run it against predefined test cases.
Error Handling: If there's a compilation error or incorrect output, the system provides feedback.
AI Assistance ("Ask AI")
AI Hint Generator: When users are stuck, they can request hints from an AI system.
The AI suggests approaches to solving the current problem, such as pointing out which data
structure functions to use or how to approach the algorithm.

Leaderboard:

Rankings: Users are ranked based on the number of questions solved.


Scoring: Points or ranking metrics may be assigned for successfully solving a problem or
achieving milestones.
Dashboard
Progress Tracking: The dashboard displays the percentage of completed questions and recent
activities (e.g., last solved problem, best score, etc.).
Problem Difficulty Levels: Problems might be classified into easy, medium, and hard to show user
proficiency.

26
Admin Panel
Problem Management: Admins can add, update, or delete problems.
User Monitoring: Admins can monitor user activity and performance.

27
Chapter 8

Result

8.1 Landing Page

8.2 Contact Us
28
8.2.1 Contact Us Mail

8.3 User-Registration

29
8.4 Dashboard

8.5 LeaderBoard

30
8.6 Problem List

8.7.1 Add question

31
8.7.2 Adding Testcases

8.8 Code Editor

32
Chapter 9

Conclusion

The CODESYNC project represents a significant achievement in developing a versatile and user-friendly
coding platform, offering a well-organized approach that spans from landing page setup to advanced code
editing and real-time collaboration. One of its key strengths lies in the emphasis on real-time interactivity,
with features such as an AI-assisted hint system that guides users through coding challenges without
providing direct answers, encouraging learning through problem-solving. CODESYNC fosters a
competitive spirit with dynamic leaderboards and performance tracking, motivating users to improve
continually. It allows for the addition of new problems, integrates AI-checking methods, and provides
instant feedback, making it an adaptive and scalable solution for learners at various stages. The platform's
intuitive navigation and robust user registration system ensure seamless interaction for both new and
returning users.

33
Chapter 10

References

[1] A. D. K. Mehta, & S. R. Shah. (2019). Data Structures and Algorithms in C+ (2nd ed.). New Delhi,
India: Tata McGraw-Hill.

[2] J. Smith, R. Johnson, & L. Brown. (2018). Designing a Web-Based E-learning Platform for Data
Structures. In Proc. 2018 International Conference on Education and E-Learning, 15-20.

[3] M. Williams, & T. Thompson. (2020). Building Scalable Web Applications with [Link] and
Express. Web Development Journal, 23(4), 112-119.

[4] P. Garcia, & K. Smith. (2021). The Role of Artificial Intelligence in Educational Platforms: A
Review. Journal of Educational Technology, 12(2), 45-56.

[5] D. Johnson, & R. Lee. (2020). Implementing JWT Authentication for Web Applications: A
Comprehensive Guide. International Journal of Computer Science and Technology, 10(3), 35-48.

[6] K. Wright, & T. Barnes. (2017). Developing Scalable Systems with Microservices Architecture.
Journal of Cloud Computing, 14(2), 98-112.

[7] J. Thompson, & A. Patel. (2021). Enhancing Educational Platforms with AI-Powered Code
Assistance. International Journal of Advanced Learning Technologies, 9(1), 25-39.

34

Common questions

Powered by AI

CodeSync employs several strategies to maintain data integrity and security, including secure user registration processes and robust authentication mechanisms. The use of a relational database (MySQL) helps manage data relationships efficiently, ensuring integrity . Additionally, the microservices architecture contributes to security by isolating different services, which limits the potential impact of a security breach to individual components rather than the entire system. Implementing best practices in web development, such as regular updates and monitoring, further strengthens the platform's ability to protect user data and maintain security .

Implementing a comprehensive testing and feedback system on platforms like CodeSync presents challenges such as handling diverse user needs and scaling the system to accommodate increased usage. One challenge is ensuring the feedback is timely and accurate across various complexity levels of code submissions, requiring robust test case management and result processing systems . Additionally, as user numbers grow, the platform needs sufficient infrastructure to maintain performance and reliability, preventing slowdowns during peak usage. Scaling such features involves technical challenges in database management and computational resources, necessitating efficient architecture design and the potential need for distributed computing solutions .

AI-powered code assistance can significantly transform traditional educational methods in software and coding courses by enabling a more personalized learning experience. Unlike standard methods that rely on fixed syllabi and set exam schedules, AI tools can adapt to the individual learning pace and style of each student, providing tailored recommendations and support. This enhances the ability for educators to offer differential instruction, accommodating diverse learning needs. Additionally, AI assistance encourages active learning by providing context-specific suggestions and promoting problem-based learning, which can lead to a deeper understanding and retention of programming concepts .

Pytutor differentiates itself from traditional online judge systems by integrating software-testing concepts alongside programming exercises. This dual focus on programming and testing skills offers greater educational value by broadening the scope of learning from purely coding to assessing code effectiveness and reliability. Unlike conventional systems that primarily validate solutions against given test cases, Pytutor allows learners to create and execute their own test cases, encouraging a deeper analytical understanding of software quality and performance measures, which are crucial skills in software engineering .

Real-time feedback and leaderboards are effective motivational tools in platforms like CodeSync because they leverage psychological principles such as immediate reinforcement and social competition. Real-time feedback capitalizes on the principle of operant conditioning by providing instant reinforcement for correct actions, enhancing learning retention and engagement. Leaderboards introduce a competitive element, appealing to intrinsic motivation by creating a sense of achievement and status. These features foster a gamified learning environment that encourages continuous improvement and active participation among students .

CodeSync ensures secure user management through a standard email/password-based authentication system that includes validation measures. Technologies supporting this feature involve backend frameworks like Node.js, which facilitate the implementation of secure server-side logics and interactions. The platform also likely employs encryption methods to protect password data and maintains session security to prevent unauthorized access. Additionally, using MySQL for managing user data ensures organized storage and retrieval of authentication information, which contributes to overall system security .

The 'Ask AI' feature enhances the learning experience by providing users with intelligent hints and guidance rather than direct solutions. This AI-powered tool encourages self-directed learning and problem-solving, allowing users to develop critical thinking skills. Educationally, this promotes a deeper understanding of concepts and fosters resilience, as learners are challenged to think through their difficulties with support rather than shortcuts. Such AI-assisted learning tools can be crucial in developing students' autonomy and confidence in digital learning environments .

The IARE-BuildIT platform promotes active learning and improves coding efficiency by allowing students to engage with coding problems remotely, providing flexible access outside traditional classroom settings. It incorporates modules for seamless problem uploading and testing, fostering an environment where students continually practice and enhance their skills through regular engagement. The case study mentions that this approach led to increased student engagement and significant improvements in coding proficiency, demonstrating that the platform's design effectively supports active learning principles and caters to various learning preferences .

CodeSync integrates natural language processing through an AI component that provides intelligent hints and guidance when users encounter difficulties while solving problems. This component is significant because it enhances user engagement by encouraging independent problem-solving, rather than just delivering direct solutions. It processes user queries and returns relevant suggestions, which fosters an environment of active learning and self-improvement .

Microservices architecture plays a crucial role in the scalability and management of online educational platforms like CodeSync. By dividing the platform into smaller, manageable services that communicate with each other, this architecture enables efficient scaling of individual components as demand fluctuates. Each microservice can be developed, deployed, and scaled independently, making it easier to add or update features without disrupting the entire system. This modular approach also improves maintainability and resiliency, allowing for better resource allocation and system performance, ultimately supporting a growing user base while ensuring a reliable user experience .

You might also like