[go: up one dir, main page]

0% found this document useful (0 votes)
51 views46 pages

Finalizzed Project Report

Download as pdf or txt
Download as pdf or txt
Download as pdf or txt
You are on page 1/ 46

A Report

on

Collaborative landscape of software development:


RTC CODE EDITOR

Submitted for partial fulfillment of award of

BACHELOR OF TECHNOLOGY
degree

Session 2022-23

In

Computer Science

By
Aditi Dhawan (2000320120014)
Anushka Singh(2000320120043)
Chetan Gupta(2000320120064)
Paras Goel (2000320120121)

Under the Supervision of

Ms.Satwik Teotia
(Assistant Professor Computer Science)

ABES ENGINEERING COLLEGE, GHAZIABAD

AFFILIATED TO

Dr. A P J ABDUL KALAM TECHNICAL UNIVERSITY, LUCKNOW


April 2023
STUDENT’S DECLARATION
We hereby declare that the work being presented in this report entitled “Collaborative
landscape of software development: RTC CODE EDITOR” is an authentic record of our own
work carried out under the supervision of Ms. “Satwik Teotia”.
The matter embodied in this report has not been submitted by us for the award of any other
degree.

Dated:09-12-2023 Signature of students(s)


(Name(s).......................)
Department:

This is to certify that the above statement made by the candidates is correct to the best of my
knowledge.

Signature of HOD Signature of Supervisor


(Prof. (Dr.) Pankaj Kumar Sharma) (Name )
(Computer Science Department) (Designation)
Date............................ (Computer Science Department)
CERTIFICATE

This is to certify that project report entitled “RTC Code Editor” which is submitted by
………………………….... in partial fulfillment of the requirement for the award of degree B.
Tech. in Department of Computer Science of Dr. A.P.J. Abdul Kalam Technical University,
formerly Uttar Pradesh Technical University is a record of the candidate own work carried out
by him/them under my supervision. The matter embodied in this thesis is original and has not
been submitted for the award of any other degree.

Signature of Supervisor
(Name )
(Designation)
(Computer Science Department)
ACKNOWLEDGEMENT

It gives us a great sense of pleasure to present the report of the B. Tech Project undertaken during B.
Tech. Final Year. We owe special debt of gratitude to (Dr./Mr./Ms.) _______________, Department of
_________________, ABESEC Ghaziabad for his/her constant support and guidance throughout the
course of our work. His/Her sincerity, thoroughness and perseverance have been a constant source of
inspiration for us. It is only his cognizant efforts that our endeavors have seen light of the day.

We also take the opportunity to acknowledge the contribution of Professor (Dr.) ………., Head,
Department of Computer Science, ABESEC Ghaziabad for his full support and assistance during the
development of the project.

We also do not like to miss the opportunity to acknowledge the contribution of all faculty members of
the department for their kind assistance and cooperation during the development of our project. Last
but not the least, we acknowledge our friends for their contribution in the completion of the project.

Signature: Signature:

Name : Name :

Roll No.: Roll No.:

Date : Date :

Signature: Signature:

Name : Name :

Roll No.: Roll No.:

Date : Date :
ABSTRACT
With the rapid growth of the internet, many desktop applications are transitioning to web-
based platforms, allowing users to access them conveniently from any location. Among the
essential tools for developers in this evolving landscape is the code editor. This study
responds to the increasing demand for collaborative coding environments by proposing the
design and implementation of a real-time code editor application utilizing web socket
technology. The primary goal is to create a platform that facilitates smooth collaboration
among users engaged in the same project. This comprehensive web application establishes a
shared workspace, enabling users to write and exchange code in real-time. A distinctive
feature of this application involves the generation of virtual rooms, each assigned a unique
identifier. Developers can join these rooms by sharing the corresponding IDs, simplifying real-
time collaboration on coding projects. The application strives to elevate the collaborative
coding experience, providing developers with an effective and interactive platform for
cooperative project work.

Keywords—RTC Code Editor, WEBRTC, IDE, Collaborative Realtime Code Editor, React Js,
Node Js, Socket.io, Web Application.
TABLE OF CONTENTS
Page

DECLARATION ...................................................................................................ii
CERTIFICATE……...............................................................................................iii
ACKNOWLEDGEMENTS ..................................................................................iv
ABSTRACT .........................................................................................................v
LIST OF TABLES.................................................................................................vii
LIST OF FIGURES..............................................................................................viii
LIST OF SYMBOLS ............................................................................................ix
LIST OF ABBREVIATIONS ............................................................................... .x
CHAPTER 1(INTRODUCTION) ………………………………………………….. 1
1.1.(Mo va on) ………………………………………………………………… 5
1.2.(Project Objec ve)………………………….……………………………….. 6
1.3.(Scope of the Project)…………………………………………….…………. 8
2 (Related work)…………………………………………………………………..10
3 (Organiza on of the Report)……………………………………………………..11
CHAPTER 2(Literature Survey)………. …………………………………………..13
2.1.(Product Perspective)……………………………………………….. ……17
2.1.1(System Interfaces)……………………………………………………… 18
2.2(Product Functions)………………………..………………………………. 19
2.2.1. ....................................................................................................... 20
2.2.2. ....................................................................................................... 20
2.2.2.1. ……………………………………………………………………..21
2.2.2.2. ............................................................................................22
2.3(User Characteristics)…………………………….……………………………23
2.4(Constraints)…………………………………………………………………….24
2.5(Assumptions and Dependencies)……………………………………………25
2.6(Apportioning of Requirements)……………………………………………. ..26
2.7(Use Cases)……………………………………………………………………..27
CHAPTER 3 (System Diagram)……………………………………………………..30
3.1(Architecture diagrams)…………………….…………………………………………..32
CHAPTER 4(Implementa on and Results)…….……………………..……………………….41
CHAPTER 5(Conclusion)……………………………………………………………45
APPENDIX .. ..................................................................................................... 47
REFERENCES... ………………………………………………………………………..48

9
ti
ti
ti
ti
ti
LIST OF TABLES
Table Description

Table 2 Literature Survey Paper

10
LIST OF FIGURES

Figure Description

Fig 3.1 Architecture diagram

Fig 3.2 Class Diagram

Fig 3.3 Data Flow Diagram

Fig 3.4 Ac vity Diagram

Fig 3.5 ER diagram

Fig 3.6 Database Schema Diagram

Fig 4 Implementa on Diagram

11
ti
ti
LIST OF ABBREVIATIONS

RTC Real Time Collaboration

SVN Apache Subversion

PK Primary Key

FK Foreign Key

SRS Software Requirement Specification


VCS Version Control System

12
CHAPTER 1
INTRODUCTION

The RTC Code Editor stands as a groundbreaking application, reshaping the


landscape of collaborative coding. By seamlessly integrating group chat with pair
programming, it heralds a new era in developer communication. This innovative
platform grants developers the unique opportunity to engage in real-time coding
within a chat-centric environment, fostering a harmonious blend of coding and
communication. Within the shared chat space, programmers not only write code
collaboratively but also discuss errors and plan their next steps, creating a
dynamic and engaging team experience.

Powered by cutting-edge technologies such as sockets, Node.js, React.js,


Express.js, WebRTC, Chakra UI, Redux, Code Mirror, and Tailwind, the RTC Code
Editor facilitates real-time collaboration. Developers can simultaneously view and
edit code, share screens, and communicate seamlessly through chat. The platform
provides a centralized workspace, enabling developers from diverse locations to
access and contribute to the same codebase. It bridges the gap between team
members separated by different locations, time zones, or even countries. Key
features of the RTC Code Editor encompass syntax highlighting, debugging tools,
and error highlighting.

This versatile tool accommodates various programming languages, including Java,


Python, Ruby, C, C++, and more. In essence, the RTC Code Editor strives to
democratize coding, making it more accessible, collaborative, and enjoyable for
coders of all proficiency levels.

RTC Code Editor has transformed the collaborative landscape of software


development teams, streamlining the process and enhancing efficiency for
developers collaborating on intricate projects.

13
1. Problem Introduction

In the rapidly evolving landscape of software development, the traditional


methods of coding collaboration are often hindered by geographical
constraints and temporal differences. As development teams become more
dispersed, the need for a seamless and real-time collaborative coding
platform becomes increasingly evident. The challenge lies in creating an
environment that transcends these limitations, providing developers with a
cohesive space to collaborate synchronously. The RTC Code Editor
addresses this challenge head-on, aiming to revolutionize how developers
work together in real-time, overcoming traditional barriers to effective
collaboration.

1.1. Motivation

The motivation behind the RTC Code Editor stems from the recognition
of the growing complexities and challenges faced by distributed
development teams. Motivated by a desire to enhance the
collaborative coding experience, this application seeks to empower
developers, irrespective of their physical locations, to work together in
real-time. The vision is to foster an environment where coding is not
only a technical task but a shared and interactive experience, bringing
developers closer regardless of the geographical distances that
separate them.

1.2. Project Objective

The primary objective of the RTC Code Editor project is to design and
implement a comprehensive solution that facilitates real-time
collaboration among developers. By seamlessly integrating group chat
with pair programming capabilities, the project aims to create a
dynamic and efficient platform where developers can collaboratively
write, edit, and discuss code in real-time. The objective is to break
down the barriers imposed by geographical dispersion, providing
developers with a unified space that transcends traditional constraints
and enhances overall project efficiency.

1.3. Scope of the Project

The scope of the RTC Code Editor project encompasses the


development of a full-stack web application, leveraging technologies
such as sockets, Node.js, React.js, and various other cutting-edge
tools. The application's focus is on providing a shared workspace for
real-time collaboration, offering features such as code editing, syntax
highlighting, and seamless communication through integrated chat
functionalities. The project's scope extends to accommodating various
programming languages and fostering a collaborative coding

14
environment accessible to developers worldwide. The envisioned
outcome is a transformative tool that elevates the collaborative
experience for software development teams across different locations
and time zones.

2. Related Previous Work

In recent years, the concept of real-time collaborative coding has gained


prominence as the demand for enhanced remote collaboration among
developers becomes imperative. The development of the RTC Code Editor
has been influenced by various significant initiatives in this domain.

Previous projects, such as Visual Studio Live Share and Google's


Collaboratory, have effectively addressed aspects of real-time
collaboration. Visual Studio Live Share facilitates collaborative coding
sessions, providing real-time editing and debugging features within
integrated development environments. Conversely, Google's Collaboratory
focuses on collaborative coding in a notebook-style format, emphasizing
collaboration in data science and machine learning.

While these initiatives offer valuable insights, the RTC Code Editor sets
itself apart by integrating the efficiency of pair programming with a robust
group chat interface. This integration aims to establish a more immersive
and inclusive collaborative coding experience, surpassing the capabilities
of existing tools.

Additionally, research on collaborative software development conducted by


scholars at MIT and GitHub emphasizes the importance of synchronous
collaboration in distributed teams. These studies highlight the need to
reduce communication latency and provide developers with immediate
feedback during collaborative coding sessions.

Drawing inspiration from these collective efforts, the RTC Code Editor
seeks to build upon existing frameworks and methodologies to create a
comprehensive and versatile solution. By combining the strengths of
previous initiatives and addressing their limitations, the RTC Code Editor
strives to redefine the landscape of collaborative coding, offering a platform
that meets the evolving needs of modern software development teams.

3. Organization of the Report.

The report is structured into distinct chapters, each serving a specific


purpose to comprehensively detail the RTC Code Editor project.

15
Chapter 2: Literature Survey and Software Requirement Specification
(SRS)

This chapter extensively explores existing literature, conducting a thorough


survey of related work in real-time collaborative coding. It establishes the
foundation for the project by examining previous initiatives and defines the
Software Requirement Specification, outlining the anticipated needs and
functionalities for the RTC Code Editor.

Chapter 3: System Design and Methodology

This chapter delves into the systematic design principles and


methodologies applied in developing the RTC Code Editor. It clarifies
architectural decisions, technical considerations, and methodological
approaches chosen to realize the vision of a real-time collaborative coding
platform.

Chapter 4: Implementation and Results

Expanding on the design and methodology, this chapter provides insights


into the practical implementation of the RTC Code Editor. It showcases the
integration of key technologies, features, and functionalities, offering a
detailed account of the coding environment, user interface, and
collaborative tools. Additionally, it presents the results of the
implementation, evaluating the performance and usability of the RTC Code
Editor.

Chapter 5: Conclusion

The concluding chapter serves as a comprehensive summary, highlighting


key findings, contributions, and outcomes of the RTC Code Editor project. It
reflects on the overall success, addresses any challenges encountered
during development, and outlines potential future enhancements and
advancements in the field of real-time collaborative coding.

This organizational structure guides readers through a logical sequence,


facilitating a thorough understanding of each stage in the development
process of the RTC Code Editor.

16
CHAPTER 2
LITERATURE SURVEY

B Kakade et al. [1] developed, allowing developers or coders to create a real-world


environment and providing a collaborative experience that will help them communicate in
the real world, no matter where they are. React, Node, and Socket.io are the foundational
technologies of the Code Collab - Real Time Code Editor. This application also explains
how it makes it easier to collaborate without physically being in the same place.
This application also discussed the features, benefits, drawbacks, technology, and
prospects for the application in the future.

R. Pathak et al. [2] developed an application named V-Code in this paper. The purpose of
this tool is to support remote software development teams. This tool uses OpenAI's
machine learning algorithm and collaborative tools to do code compilation and mistake
suggestion in addition to its collaborative capabilities. Tools like Flask, Python, Next.js,
Node.js, and Express are used in this application.
The application, according to the paper's conclusion, advances the field of online code
editing by providing a real-time platform for team collaboration and coding process
streamlining.

Kumar et al. [3] developed an application that offers a seamless code editing experience
to the users. They have researched various types of algorithms that has applied in the
existing applications and at the result they use the algorithm called CDRT. They achieved
faster updates across the users through the successful implementation of CDRT. Though
CCE has common text editing features, they are implemented robustly. But by using
CDRT many more features add and enhances the existing application. It also describes
the advantages of pair programming between the developers.

Kurniawan et al. [4] developed the tool that is created called CodeR which is a web
application that helps developers code and build a coding environment with other
programmers by chat or invite to join the same project. CodeR gives advantage to
programmers as it supports C, C++, python and java programming languages.
CodeR includes features like collaborative workspace, chat, execute and build the source
code. It also tells us about the future scope that the RTC editor can have.

Goldman et al. [5] developed a real-time collaboration among multiple contributors


working on a shared document is rich with both possibilities and challenges, as evident
from decades of research and industry endeavors in computer-supported cooperative
work. In the field of software engineering, collaboration is typically achieved through either

17
the shared use of a single computer (such as pair programming) or through version
control, involving manual pushing and pulling of changes. By scrutinizing and tailoring
solutions for the distinct roles played by collaborating programmers during synchronous
work, we can develop real-time collaborative programming systems that enhance the
effectiveness of their collaboration.

Pandita et al. [6] created an application where code execution without local compiler
installation is made possible by the Online Compiler and code editor, which are designed
to optimize the development process. Users can enter C code into this web-based
system, and it will then be transferred to a server for compilation and testing. Through the
use of technologies such as Firebase and React.js, the platform guarantees effective code
execution without requiring a laborious local installation. The project stands out because it
provides a feature-rich online workspace that makes it simple for users to save and share
their work, filling a need frequently present in online editors and compilers today.

Imine et al. [7] creates a tool that does Simultaneous editing of shared documents
requires Real-time Collaborative Editors (RCE), but current Operational Transformation
(OT) techniques have difficulty guaranteeing effective and safe consistency. This work
presents a new coordination model that addresses the decentralization and scalability
issues with traditional OT techniques. The suggested model addresses consistency and
operational efficiency challenges in the context of collaborative editing, facilitating real-
time collaboration in a flexible and easily adaptable
manner by supporting dynamic user groups and enabling deployment on P2P network.

Roseman et al. [8] created an essential application-level protocol for controlling real-time
data delivery, especially for audio and video streams, is the Real Time Streaming Protocol
(RTSP). A versatile framework for regulated, on-demand access to recorded and live data
flows is provided by RTSP. A variety of delivery channels can be selected by users,
including TCP, UDP, and multicast UDP, and it also allows them to control several data
delivery sessions. Furthermore, RTSP offers a comprehensive solution for handling
various real-time data scenarios by making it easier to select delivery mechanisms based
on the Real-time Transport Protocol (RTP).

Lautamaki et al. [9] developed an application in which Even though it is a web-based code
editors have limited capabilities, developers frequently use desktop Integrated
Development Environments (IDEs) like Eclipse or Visual Studio when switching from
desktop to web-based apps. This paper presents CoRED, a collaborative real-time code
editor for Java applications that runs in the web. CoRED is a feature-rich Java editor with
error checking and code generating capabilities, in contrast to standard online editors. Its
ability to serve as both a stand-alone programme and a component of other applications,

18
together with the incorporation of social media-like features, showcases its adaptability
and integration skills. As evidence of its usefulness, CoRED has already been
incorporated into the browser-based Arvue IDE.

Surendran et al. [10] developed a Role-based interfaces for collaborative software


development is created. They offer asymmetric, role-specific interfaces on their shared
job, going beyond simple shared editing. Together with numerous new concepts for
closely-collaborative software development, Collabode is a web-based integrated
development environment (IDE) that explores the possibilities of real-time cooperative
programming. It also features simultaneous editors for collaborative programming.

S . Tools Technolo Benefits About Referen


N gy Used ce
o

1 C o d e React,No real-time editing, enables developers to [1]


Collab de, and syntax highlighting, collaborate on code in real-
Socket.io automatic code time
formatting, code
versioning, and error
highlighting

2 V-Code Nuxt.js, real-time collaboration, web-based application that [2]


Node.js, error correction offers a collaborative editor,
Python suggestions, support compiler, and execution
Flask, multiple programming environment for
a n d languages programming languages.
Express

3 Multi React.js, multi user code editors enables real-time [3]


U s e r Node.js, include version control, collaboration, where
C o d e Express syntax highlighting, developers can view and
Editor a n d code completion, edit code in real-time, share
socket.io debugging tools, and their screens
integration with other
development tools

19
4 BROW React.js, Allowing the users to tools which allows you to [4]
S E R Firebase, download, upload and compile source code and
BASED Node.js share the files are some execute it online in your
CODE of the perks of this desired programming
EDITO website language
R

5 Coordin React.js, High local collaborative editing work [5]


ation Node.js, responsiveness, High in a scalable and
Model Express concurrency,Consistenc decentralized fashion
f o r a n d y,Scalability,
Real- socket.io Decentralized
T i m e coordination
Collabor
ative
Editors

6 REAL- PHP,sock it outlines the real-time collaboration [6]


TIME et.io,Exp evolution of among multiple contributors
COLLA ress RTC systems and offers working on a shared
BORAT a conceptualization of document is rich with both
I O N RT C c o n s i s t i n g o f possibilities and challenges
SYSTE usage sce-
MS narios

Collaborative real time


code editor,pair
programming,Version
control

7 REAL- collaboration between R u n t i m e [7]


TIME multiple simultaneous infrastructure automatically
COLLA contributors manages the creation,
BORAT interconnection, and
I O N communications of the
SYSTE distributed processes that
comprise conference
MS
sessions.

20
8 CodeR: W e b Instant feedback on code Web application for real-time [8]
Real- Socket execution, shared collaboration that gives
t i m e projects, chat capability, programmers access to chat,
C o d e flexible language support code execution, and shared
Editor (C, C++, Java), and workspaces.
Applicat effective project
ion for management are all
Collabor features of real-time
ative collaboration.
Program
ming

9 CODE JavaScript, Effective syntax Developed a single-screen [9]


EDITO React,Code checking, condensed source-code editor using
R m i r r o r code, and a single HTML, CSS, JS, and React
BASED library interface for seamless student
O N programming.
REACT

10 Collabor Consiste Consistent updates, It investigated architectures, [10]


ative ncy algor comprehensive research- a l g o r i t h m s , a n d C D RT
C o d e ithms in based decision-making, implementation to provide
Editor Collabor easy collaborative code powerful text editing features
ative Dist editing, and strong text while also aiming for a
ributed R features. smooth user experience.
e a l -
Time (C
DRT) arc
hitecture

11 O n l i n e JavaScript No downloads required, offering a mobile- [11]


C o d e ,Docker ,E portable coding is an friendly web code editor wit
Editor d i t o r online editor perfect for h a focus on usability and in
Architectur educators and aspiring structional value for develo
e coders. pers.

12 A Web- Javascrip Collaborative real time It gives programmers access [12]


Based code editor,pair to shared workspaces.
Code-
t,React programming,Version
Editor control

Table 2

21
CHAPTER 2

SOFTWARE REQUIREMENT SPECIFICATION

2.1 Product Perspective

The RTC Code Editor is conceived as a standalone, web-based application tailored for
real-time collaborative coding experiences. Positioned within the broader landscape of
collaborative tools, it functions independently while seamlessly integrating into workflows
where synchronous coding and communication are paramount. This ensures that the
application provides a comprehensive solution for developers engaged in collaborative
coding sessions.

2.1.1 System Interfaces:

The RTC Code Editor interfaces with external systems crucial for collaborative coding.
This includes integrations with version control systems, facilitating shared code
management, and connections to cloud-based storage for efficient file sharing among
users. These interfaces ensure smooth collaboration and effective code synchronization
among team members.

2.1.2 User Interfaces:

The user interface is designed with a focus on providing an intuitive and inclusive
collaborative coding experience. The graphical user interface (GUI) facilitates easy code
sharing, collaborative editing, and real-time updates. Accessibility considerations, in
compliance with regulations such as the American with Disabilities Act (ADA), ensure that
the application caters to a diverse user base.

2.1.3 Hardware Interfaces:

While primarily a software solution, the RTC Code Editor may interact logically with
hardware components. This interaction includes standard input devices like keyboards
and mice for code input and navigation. Additionally, the application optimizes its
performance for various hardware configurations to ensure a seamless collaborative
coding experience across different devices.

2.1.4 Software Interfaces:

22
The application relies on essential software interfaces and APIs for its seamless
operation. These include integrations with external software products and APIs, specifying
names, mnemonics, specification numbers, version numbers, and sources. This
information guides developers in effectively integrating external components, ensuring a
smooth interaction within the software ecosystem.

2.1.5 Communications Interfaces:

Communication interfaces are pivotal for the real-time collaborative nature of the
application. The RTC Code Editor specifies protocols for transparent interaction between
different components of the system, ensuring efficient communication during collaborative
coding sessions. This includes support for real-time updates, chat functionalities, and
effective code synchronization.

2.1.6 Memory Constraints:

The application outlines characteristics and limits on primary and secondary memory,
guiding designers in optimizing memory usage. This ensures that the RTC Code Editor
operates efficiently and responsively, meeting specified constraints and providing an
optimal coding environment for users.

2.1.7 Operations:

Operations cover various modes of usage, interactive and unattended periods, data
processing support functions, and backup and recovery operations. This ensures that the
application aligns with user expectations, providing a robust set of features for
collaborative coding while addressing essential business processes.

2.1.8 Site Adaptation Requirements:

Site adaptation involves specifying data or initialization sequences specific to given sites,
missions, or operational modes. Modifications required for adapting the software to
particular installations are outlined, ensuring successful deployment and operation of the
RTC Code Editor in diverse environments. This includes considerations for different
server configurations, security protocols, and site-specific setups.

2.2 Product Functions

Product functions refer to the specific capabilities and features that a product or
application provides to its users. In the context of your RTC Code Editor application, the
product functions might include:

1. Real-Time Code Collaboration:

• Enable multiple users to collaboratively edit and view code in real-time.

23
• Support simultaneous coding activities within a shared workspace.

2. User Authentication and Authorization:

• Implement a secure user authentication system to ensure authorized


access.

• Define user roles and permissions to control collaborative activities.

3. Version Control Integration:

• Integrate with version control systems (e.g., Git) to track code changes.

• Provide features for branching, merging, and resolving code conflicts.

4. Code Highlighting and Formatting:

• Offer syntax highlighting for various programming languages.

• Support code formatting to maintain consistent coding styles.

5. Chat and Communication Features:

• Implement a real-time chat system for communication among users.

• Facilitate discussions about code changes, issues, and project-related


matters.

6. File and Project Management:

• Allow users to create, open, and save coding projects.

• Provide a file explorer for easy navigation within projects.

7. Code Review and Commenting:

• Support code review processes with features for adding comments and
suggestions.

• Allow users to provide feedback on specific lines of code.

8. User Presence and Activity Tracking:

• Display user presence indicators to show who is currently active.

• Track user activities, such as edits and file changes, in the collaborative
environment.

9. Notification System:

• Implement a notification system for alerts about code changes, mentions,


or chat messages.

• Ensure users are informed about relevant updates in real-time.

10. Customization and Personalization:

• Allow users to customize their coding environment, including themes and


preferences.

24
• Provide personalization options for the user interface.

11. Error Tracking and Debugging Tools:

• Integrate tools for error tracking and debugging within the collaborative
environment.

• Assist users in identifying and resolving code issues.

12. Project Sharing and Collaboration Invitations:

• Enable users to share project invitations with collaborators.

• Implement features for joining and leaving collaborative coding sessions.

13. Cross-Browser Compatibility:

• Ensure the application works seamlessly across different web browsers.

• Optimize the user experience for various browser environments.

14. Access Control for Projects:

• Implement project-level access controls to restrict or grant permissions.

• Allow project owners to manage collaborative access for team members.

These product functions collectively contribute to creating a robust and user-friendly real-
time collaborative coding environment within the RTC Code Editor application.

2.3 User Characteristics

The intended users of the RTC Code Editor exhibit diverse characteristics, encompassing
educational backgrounds, levels of experience, and technical expertise. The following
general characteristics outline the user profile without specifying particular requirements:

1. Educational Level:

• Diversity: Users may span a spectrum of educational backgrounds,


ranging from students in educational settings to professionals with degrees
in computer science or related fields.

• Learning Needs: Individuals at various educational levels may use the


RTC Code Editor for different purposes, including learning programming
concepts, collaborating on academic projects, or contributing to
professional software development.

2. Experience in Coding:

• Novice to Expertise: The user base includes individuals with varying


levels of coding experience, from beginners seeking educational
opportunities to seasoned professionals with extensive coding expertise.

25
• Learning Environment: Novice users may leverage the application to
enhance their coding skills, while experienced developers might use it for
collaborative coding in complex software projects.

3. Technical Expertise:

• Technical Backgrounds: Users come from diverse technical


backgrounds, including software development, web development, data
science, and related fields.

• Collaborative Coding: Technical expertise ranges from users with a


fundamental understanding of coding to those proficient in advanced
programming languages. The application caters to this diversity by
providing tools for collaborative coding across different skill levels.

4. Professional Roles:

• Varied Roles: The user base comprises individuals with different


professional roles, such as developers, designers, project managers, and
quality assurance professionals.

• Collaborative Project Work: Professionals from different roles collaborate


on projects, and the application supports the varied needs of each role
within a collaborative coding environment.

5. Remote Collaboration:

• Geographical Dispersion: Users may be located in different geographical


regions, requiring tools for remote collaboration.

• Real-Time Communication: The application accommodates users


working in distributed teams by providing real-time communication
features, ensuring effective collaboration irrespective of physical locations.

6. Learning and Educational Environments:

• Educational Settings: The application caters to users within educational


environments, such as students in coding classes or learners in online
educational platforms.

• Adaptability: The RTC Code Editor's features are adaptable to the needs
of users in educational settings, providing a platform for collaborative
learning and coding exercises.

7. Cross-Functional Teams:

• Diverse Skills: Users collaborate in cross-functional teams where diverse


skills and expertise are essential for project success.

• Interdisciplinary Collaboration: The application supports interdisciplinary


collaboration, allowing professionals with different skills to contribute
effectively to collaborative projects.

26
2.4 Constraints
The development of the RTC Code Editor is subject to various constraints that shape the
options available to developers. These constraints encompass regulatory, technical, and
functional aspects, influencing the design and implementation of the application. The
general description of these constraints includes:

1. Regulatory Policies:

• Compliance with local and international regulations related to software


development, data privacy, and user security.

• Adherence to industry standards and legal frameworks governing


collaborative coding applications.

2. Hardware Limitations:

• Adherence to specified hardware configurations to ensure optimal


performance.

• Consideration of signal timing requirements to guarantee seamless


interactions between hardware components.

3. Interface to Other Applications:

• Compatibility with existing applications, emphasizing smooth integration


and data exchange.

• Adherence to industry-standard interfaces for seamless collaboration with


other tools and software.

4. Parallel Operation:

• Consideration of parallel operation requirements to support simultaneous


collaborative coding sessions.

• Implementation of features that ensure data consistency and integrity


during parallel operations.

5. Audit Functions:

• Inclusion of audit functions for tracking user activities, code changes, and
system events.

• Compliance with audit trail requirements to facilitate accountability and


traceability.

6. Control Functions:

• Implementation of control functions to manage user access, permissions,


and collaborative activities.

• Consideration of version control mechanisms to track changes and


maintain code integrity.

7. Higher-Order Language Requirements:

27
• Support for multiple programming languages to accommodate diverse user
preferences.

• Integration of language-specific features to enhance the coding experience


for users with different language preferences.

8. Signal Handshake Protocols:

• Adherence to signal handshake protocols (e.g., XON-XOFF, ACK-NACK)


for efficient communication.

• Implementation of reliable protocols to manage data flow and


synchronization during collaborative coding.

9. Reliability Requirements:

• Adherence to reliability standards to ensure consistent and dependable


operation.

• Implementation of features that mitigate potential disruptions and enhance


system reliability.

10. Criticality of the Application:

• Evaluation of the criticality of the RTC Code Editor in the context of its
impact on users and collaborative projects.

• Implementation of measures to address critical aspects and prioritize


system stability.

11. Safety and Security Considerations:

• Integration of safety features to protect users from potential hazards during


collaborative coding.

• Implementation of robust security measures to safeguard user data,


prevent unauthorized access, and ensure secure code collaboration.

These constraints collectively guide the development process, ensuring that the RTC
Code Editor aligns with regulatory standards, functions reliably, and provides a secure and
efficient collaborative coding environment for users.

2.5 Assumptions and Dependencies


Factors that may affect the requirements stated in the Software Requirements
Specification (SRS) are varied and can arise from changes in external conditions,
technological advancements, or shifts in project scope. Here is a list of factors that could
impact the SRS:

1. Technological Advancements:

• Changes in programming languages, frameworks, or tools may necessitate


updates to the SRS to leverage new technologies and enhance the
capabilities of the RTC Code Editor.

2. Regulatory Changes:

28
• Alterations in regulatory policies related to data privacy, security, or
software development standards may require adjustments to the SRS to
ensure compliance.

3. User Feedback and Evolution of Requirements:

• Feedback from users during development or changes in user expectations


may lead to modifications in the SRS to better align with evolving
requirements.

4. Market Trends and Industry Standards:

• Shifts in market trends and industry standards may prompt updates to the
SRS to ensure the RTC Code Editor remains competitive and meets
industry best practices.

5. Security Threats and Vulnerabilities:

• Discovery of new security threats or vulnerabilities may necessitate


updates to the SRS to implement additional security measures and
safeguards.

6. Integration with External Systems:

• Changes in external systems or APIs that the RTC Code Editor integrates
with may require corresponding modifications to the SRS to maintain
seamless interoperability.

7. Budgetary Constraints:

• Adjustments in project budget or resource availability may influence the


prioritization of features and functionalities outlined in the SRS.

8. Legal and Compliance Requirements:

• Changes in legal and compliance requirements, such as intellectual


property laws or accessibility standards, may impact the SRS and
necessitate adjustments for legal adherence.

9. Emerging User Needs:

• Introduction of new user needs or emerging trends in collaborative coding


may lead to revisions in the SRS to address these evolving requirements.

10. Scaling Requirements:

• As the user base grows or collaborative projects become larger, scaling


requirements may need to be revised to ensure optimal performance and
responsiveness.

11. Accessibility Standards:

• Changes in accessibility standards may require updates to the SRS to


ensure the RTC Code Editor remains inclusive and compliant with
accessibility guidelines.

12. Geographical Considerations:

29
• Expansion to new geographical regions may introduce localization
requirements or language support, influencing the content of the SRS.

13. Organizational Changes:

• Changes in the organizational structure or project stakeholders may impact


the decision-making process, potentially leading to adjustments in the SRS.

14. External Dependencies:

• Any changes in external dependencies, such as third-party services or


libraries, may trigger modifications in the SRS to accommodate the new
dependencies.

15. Emerging Technologies:

• Introduction of emerging technologies that can enhance the collaborative


coding experience may prompt updates to the SRS to incorporate these
advancements.

These factors collectively emphasize the dynamic nature of software development and the
need for the SRS to be adaptable to changes in the external environment and project
conditions. Regular reviews and updates to the SRS are essential to ensure that the RTC
Code Editor continues to meet evolving requirements and remains a robust and relevant
collaborative coding solution.

2.6 Apportioning of Requirements.

The apportioning of requirements involves categorizing them based on priority and


feasibility for implementation within the current project plan. This process allows the
development team to identify requirements that may be delayed until future versions of the
system, considering constraints such as time, resources, and project scope. Here's a
general breakdown of how requirements can be apportioned:

1. Must-Have Requirements (Critical):

• These are essential requirements without which the core functionality and
purpose of the RTC Code Editor would be compromised.

• Must-have requirements are critical for the initial release and are non-
negotiable.

2. Should-Have Requirements (High Priority):

• These are important requirements that significantly enhance the


functionality and usability of the RTC Code Editor.

• Should-have requirements contribute to the core features but are not


critical for the initial release.

3. Could-Have Requirements (Moderate Priority):

30
• These are desirable requirements that add value but may not be crucial for
the core functionality.

• Could-have requirements can be considered for inclusion if time and


resources permit, but their absence does not significantly impact the
primary goals.

4. Won't-Have Requirements (Low Priority):

• These are requirements that, while interesting or beneficial, won't be


included in the current version of the RTC Code Editor.

• Won't-have requirements are deferred to future releases or iterations.

The apportioning process involves collaboration with the customer to prioritize


requirements based on their business value and impact on the overall goals of the project.
Customer input is crucial in determining which features are critical for the initial release
and which can be deferred for future versions.

Considerations for apportioning requirements:

• Project Timeline: Evaluate the project plan and available hours to understand the
constraints and limitations in terms of development time.

• Resource Availability: Assess the availability of development resources,


including team members and expertise, to gauge the capacity for feature
implementation.

• Customer Prioritization: Collaborate with the customer to prioritize requirements


based on their business objectives and immediate needs.

• Iterative Development: If following an iterative development model, specify which


requirements will be addressed in each iteration, ensuring a phased and
manageable approach.

7. Use case

7.1. Use case Model


A use case model for an RTC (Real-Time Collaboration) code editor outlines the
various interactions and scenarios that users may encounter while using the code
editor with real-time collaboration features. Here's a simplified representation of a
use case model for an RTC code editor:

• Actors: Developer/User: The person using the RTC code editor.


• Collaborator: Another developer or user with whom the primary user collaborates
in real-time.

Use Cases:
Open Code File:
• Actor: Developer/User
31
• Description: The user opens a code file for editing.

Edit Code:
• Actor: Developer/User
• Description: The user makes changes to the code within the editor.

Real-Time Collaboration:
• Actors: Developer/User, Collaborator
• Description: Multiple users can simultaneously edit the same code file in real-
time. Changes made by one user are reflected immediately for all collaborators.

Syntax Highlighting:
• Actor: Developer/User
• Description: The code editor provides syntax highlighting to improve code
readability.

Version Control Integration:


• Actor: Developer/User
• Description: Integration with version control systems allows users to commit,
pull, and push changes directly from the code editor.

Code Review:
• Actor: Developer/User, Collaborator
• Description: Users can initiate and participate in real-time code reviews within
the code editor.

Chat/Communication:
• Actors: Developer/User, Collaborator
• Description: Users can communicate with each other using a chat feature
integrated into the code editor.

Code Navigation:
• Actor: Developer/User
• Description: Users can easily navigate through the codebase, jump to specific
functions, or locate variables within the code editor.

Code Search:
• Actor: Developer/User
• Description: Users can search for specific code snippets or files within the code
editor.

32
Code Debugging:
• Actor: Developer/User
• Description: The code editor supports real-time debugging, allowing users to set
breakpoints, inspect variables, and step through code.

Save Code Changes:


• Actor: Developer/User
• Description: The user can save their code changes, either locally or to a version
control repository.

Close Code File:


• Actor: Developer/User
• Description: The user closes the code file they are working on.

Relationships:
• Includes Relationship: Real-Time Collaboration use case includes Edit Code,
Code Review, and Chat/Communication use cases.
• Extends Relationship: Real-Time Collaboration can extend the Save Code
Changes use case if conflicts arise during simultaneous editing.

This use case model provides a high-level overview of the key interactions and
functionalities of an RTC code editor, emphasizing collaboration, communication,
and code management features.

33
Use Case Diagram
+--------------------------+
| RTC Code Editor |
+--------------------------+
|
|
v
+-------------------------------+
| Developer |
+-------------------------------+
| Create a Coding Room|
| Join a Coding Room |
| Initiate Pair Programming|
| Code Editing |
| Chat and Communication |
| Version Control |
| Save and Export Code |
| Search and Navigate Codebase|
| Integration with VCS |
| Provide Feedback and Comments |
+-------------------------------+
| ^
| |
v |
+---------------------------+
| Room Owner |
+---------------------------+
| Access Control and Permissions |
+---------------------------+

34
CHAPTER 3

SYSTEM DESIGN

1. Architecture diagrams

+-----------------+ +----------------------+ +----------------------+


| User | |Applica on Server| | Database |
| Interface | ----> | | ----> | |
|(Web Browser) | | Web Server | | |
+-----------------+ | | +----------------------+
| |
+----------------------+

Figure 3.1 3-Tier Architecture Diagram example

35
ti
2. Class diagrams

+-------------------+ +-------------------------+ +-------------------------+


| User | | RealTimeEditor | | Database |
|-------------------| |-------------------------| |-------------------------|
| | | | | |
| | | | | |
|-------------------| |-------------------------| |-------------------------|
| +login() | | +insertCode() | | +query() |
| +editCode() | | +collaborate() | | +update() |
| +... | | +... | | +... |
+-------------------+ +-------------------------+ +-------------------------+

3. Data Flow Diagram

+---------------------+ +------------------------+
| User | | RealTimeEditor |
|---------------------| |------------------------|
| | | |
| +login() | -------->| +insertCode() |
| | | |
| +editCode() | <--------| +collaborate() |
| | | |
| +... | | +... |
+---------------------+ +------------------------+

36
4. Activity Diagram

+———————---+

| User |

|———————— |

| |

| + Register |

| User |

| | |

| v |

| +--------------+ |

| | Verification| |

| | Process | |

| +--------------+ |

| | |

| v |

| +--------------+ |

| | Login | |

| | Process | |

| +--------------+ |

+---------------------+

5. ER Diagrams

+---------------------+ +------------------------+
| User | | Code |
|---------------------| |------------------------|
| | | |
| +UserID | | +CodeID |
| +Username | | +UserID (FK) |
| +Password | | +Content |
| | | +Timestamp |
+---------------------+ +------------------------+

37
6. Database schema diagrams

+---------------------+
| User |
|---------------------|
| UserID (PK) |
| Username |
| Password |
+---------------------+

+---------------------+
| Code |
|---------------------|
| CodeID (PK) |
| UserID (FK) |
| Content |
| Timestamp |
+---------------------+

38
CHAPTER 4

IMPLEMENTATION AND RESULTS

1. Software and Hardware Requirements

1.1. Software:

• Cross-platform compatibility (Windows, macOS, Linux).

• Browser support (Chrome, Firefox, Safari).

• Backend server for collaboration, version control, and authentication.

• Integration with Git/SVN for code management.

• Database system for user preferences and collaboration history.

• Real-time communication via WebSockets.

• Security protocols for data protection.

1.2. Hardware:

• Server resources for concurrent collaborations and database transactions.

• Reliable network infrastructure for low-latency communication.

• Standard desktops, laptops, or tablets with modern browsers.

• Adequate storage for user data and project history.

• Scalable architecture for growing user bases.Assumptions and


dependencies

4.2 Implementation Details

+----------------------+

| Start Application |

| (User opens the app)|

+----------------------+

39
v

+-----------------------+

| User Registration |

| (User provides info, |

| data sent to Node.js|

| server for storage) |

+-----------------------+

+-----------------------+

| User Logs In |

| (Credentials verified |

| by Node.js server) |

+-----------------------+

+-----------------------+

| Dashboard |

| (React.js component |

| renders user's |

| personalized view) |

| - View Chat Rooms |

| (Requests data from |

| Node.js server via |

| API endpoints) |

| - Create Chat Room |

40
| (Sends data to |

| Node.js server for |

| room creation) |

| - Join Chat Room |

| (Requests to join |

| a room, data from |

| Node.js server) |

| - Invite Users |

| (Selects users, |

| sends invitations |

| through Node.js) |

+-----------------------+

+-----------------------+

| Chat Room |

| (Real-time interaction|

| using Socket.io for |

| communication) |

| - Real-time Chat |

| (Messages sent and |

| received via |

| WebSocket with |

| Socket.io) |

| - Share Code |

| (Collaborative code |

41
| editing using |

| shared code editors|

| synchronized using |

| WebSocket) |

| - Pair Programming |

| (Developers work |

| together in real- |

| time, code changes |

| updated through |

| WebSocket) |

+-----------------------+

+-----------------------+

| User Logs Out |

| (Logs out, session |

| data cleared) |

+-----------------------+

+-----------------------+

| End Application |

| (User session ends) |

+-----------------------+Results

42
1. Snapshots Of Interfaces

43
44
2. Results

The RTC (Real-Time Collaboration) Code Editor project has yielded


transformative results in revolutionizing collaborative software development.
By implementing real-time collaboration features, the project has
significantly enhanced the efficiency and productivity of developers working
on code simultaneously. The integration of code review capabilities within
the editor has contributed to elevated code quality, fostering a culture of
collective ownership and improvement. The user-friendly interface, coupled
with advanced debugging and version control integration, has streamlined
the development process. Real-time communication features, including chat
and collaboration tools, have eliminated the need for external
communication platforms, providing a cohesive environment for teamwork.
The project's success is underscored by the tangible benefits of increased
productivity, improved code quality, and enhanced team collaboration,
positioning the RTC Code Editor as a valuable asset in modern software
development environments. Ongoing user feedback and a commitment to
continuous improvement further solidify its standing as a cutting-edge
solution for collaborative coding.

45
CHAPTER 5

CONCLUSION
1. Performance Evaluation
• The performance evaluation of the RTC Code Editor project demonstrates
its remarkable impact on developer efficiency and collaboration. Real-time
collaboration features have significantly reduced development time,
fostering seamless teamwork and decision-making. The integrated code
review capabilities have elevated code quality, resulting in more robust and
maintainable software. The project's user-friendly interface, streamlined
version control integration, and efficient communication tools have
collectively enhanced the overall development process. Notably,
developers can work simultaneously, accelerating project timelines. The
project's success is evident in the tangible benefits of increased
productivity, improved code quality, and enhanced team collaboration.
Ongoing feedback and adherence to industry standards underscore the
commitment to continuous improvement, making the RTC Code Editor a
valuable asset in modern software development environments.

• Compared to existing state-of-the-art technologies, the RTC Code Editor


project excels in real-time collaboration, offering seamless simultaneous
editing and instant communication within the editor. Unlike traditional code
editors, it integrates robust code review features and tight version control,
enhancing overall code quality and management. The user-friendly
interface, coupled with advanced debugging capabilities, sets it apart in
fostering a more efficient and collaborative development environment. The
project's innovation lies in its ability to address multiple facets of modern
software development, providing a comprehensive solution that
significantly outperforms conventional code editing tools.

2.Future Directions
• Looking ahead, future directions for the RTC Code Editor project involve
continuous evolution and refinement. Plans include expanding collaborative
functionalities, such as real-time project-wide searches and enhanced code

46
navigation. Integration with emerging technologies and platforms will be
prioritized, ensuring compatibility with evolving industry standards. Additionally,
user feedback will drive further improvements in the user interface and overall
experience. The project aims to remain at the forefront of innovation, adapting to
the dynamic needs of software development and solidifying its position as a go-
to solution for teams seeking efficient, collaborative, and cutting-edge code
editing tools.

47
Appendix
Addi onal resource materials :

IEEE Journal Cita on

• For a Journal Ar cle:

• [5] J. U. Duncombe, "Infrared naviga on - Part I: An assessment of feasibility," IEEE


Trans. Electron. Devices, vol. ED-11, pp. 34-39, Jan. 1959.

• For an eJournal from an Online Database:

• [6]H. K. Edwards and V. Sridhar, "Analysis of so ware requirements engineering


exercises in global virtual team setup," Journal of Global Informa on Management,
vol. 13, no. 2, p. 21+, April-June 2005. [Online]. Available: Academic OneFile, h p://
nd.galegroup.com. [Accessed May 31, 2005].

• IEEE Online Cita on for an eJournal:

• [13] A. Altun, "Understanding hypertext in the context of reading on the web:


Language learners' experience," Current Issues in Educa on, vol. 6, no. 12, July 2003.
[Online]. Available: h p://cie.ed.asu.edu/volume6/number12/. [Accessed Dec. 2,
2004].

For a Technical Report:

• [10] J. H. Davis and J. R. Cogdell, “Calibration program for the 16-foot antenna,” Elect.
Eng. Res. Lab., Univ. Texas, Austin, Tech. Memo. NGL-006-69-3, Nov. 15, Final Year
Major Project Finalization Department of CS, ABES Engineering College, Ghaziabad,
Page:7 1987

48
fi
ti
ti
ti
ti
tt
ti
ft
ti
ti
tt
References
[1] Mr. Revannath B Kakade, Mr. Abhinay D .Ambure, Mr Krishna B Aher, Mr. Jairam C Rathod , Mr.
Vi n a y a k D h a r m v i r S a n g v i k a r “ h t t p s : / / w w w. e u r c h e m b u l l . c o m / u p l o a d s / p a p e r /
6875fafe461f4b9a734d6bc6a46d9314.pdf”
[2] Prof. Poonam R. Pathak, 2Tejas V. Magade, 3Avishkar A. Vichare , 4Shreyas I. Repale “https://
www.ijrti.org/papers/IJRTI2304164.pdf”

[3] T. Harshith Kumar, S. Advaith Sai, S. Samuel Anurag, G. Kalyan Reddy, Mr. Mohammed Zaheer
Ahmed https://www.jetir.org/papers/JETIR2303825.pdf

[4] Sahil Pandita1, Aswanth Surendran2, Rishiraj Thadeshwar3,Ashish Nahak4, Prof.Ujwala Gaikwad5”
https://www.irjet.net/archives/V8/i5/IRJET-V8I5440.pdf”

[5] Abdessamad Imine” file:///C:/Users/aditi/Downloads/978-3-642-02053-7_12.pdf”

[6] Max Goldman “https://dl.acm.org/doi/10.1145/2046396.2046410”

[7] M Roseman, S Greenberg” https://scholar.google.com/scholar?start=10&q=real+time


+code+editor+research+papers&hl=en&as_sdt=0,5#d=gs_qabs&t=1695114945117&u=%23p%3
D8y8ybQ3GSQQJ”

[8] Aditya Kurniawan, Christine Soesanto, Joe Erik Carla Wijaya “CodeR: Real-time Code Editor
Application for Collaborative Programming”, (ICCSCI2020).

[ 9 ] A n a n y a _ S h r i v a s t a v a h p s : / / w w w. i r j m e t s . c o m / u p l o a d e d l e s / p a p e r / /
issue_11_november_2022/31746/ nal/ n_irjmets1669542345.pdf

[10] https://ics.uci.edu/~cs237/projects2022/3_report.pdf.

[11] Prof. Sandip Chavan1 ,Tejas Karpe2 , Kunal More3 , Aditya Tupe4 , Swaraj Sabale5 h ps://
iarjset.com/wp-content/uploads/2023/04/IARJSET.2023.10405.pdf

[12] Chris an_Rasmussen_David_Åse” h ps://ntnuopen.ntnu.no/ntnuxmlui/bitstream/handle/


11250/2352227/11512_FULLTEXT.pdf?sequence=1”

[13] Anwar Saif, Saeed Mohammed, Saleh Mohammed, Osama Ali, Majdi Abdu,“C-MPE: A Collaborative
Multiprogramming Development Environment for .Net Framework”. (SJITN) Vol 8 No.2 (2020).

[14] Rutvik ManishKumar Patel, “Distributed & Collaborative Software Engineering” (IRJET) Vol: 5 No.9
(2018) .

[15] Y. Singh, H. Singh, J. Chauhan, “Online Collaborative Text Editor Using Socket.IO”, 21666312
https://ieeexplore.ieee.org/document/9725782

[16] W. Kimpan, T. Meebunrot, B. Sricharoen, “Online code editor on Private cloud computing”, 6694748
https://ieeexplore.ieee.org/document/6694748

[17] Socket.IO documentation. (n.d.). Retrieved from https://socket.io/docs/

[18] Flask documentation. (n.d.). Retrieved from https://flask.palletssystems.com

[19]https://www.tiny.cloud/docs/tinymce/6/rtc-introduction/,”Introduction to Real-Time Collaboration


(RTC)”
[20]https://jazz.net/library/article/1573,”Engineering Workflow Management Code Review”

49
ti
tt
fi
fi
tt
fi
tt

You might also like