Report Code
Report Code
A PROJECT REPORT
for
Mini Project-II (ID201B)
Session (2024-25)
Submitted by
VICKY KUMAR(202410116100241)
SHRISTI GOYAL(202410116100202)
VIDHI SHARMA(2024101161000242)
YASH CHAUHAN(202410116100252)
SUBMITTED TO
Uttar Pradesh-201206
(MAY- 2025)
i
CERTIFICATE
(202410116100252) has/have carried out the project work having “CODE SKETCH” (Mini
Project-II, ID201B) for Master of Computer Application from Dr. A.P.J. Abdul Kalam
Technical University (AKTU) (formerly UPTU), Lucknow under my supervision. The project
report embodies original work, and studies are carried out by the student himself/herself and the
contents of the project report do not form the basis for the award of any other degree to the
ii
ABSTRACT
Code Sketch is an innovative real-time collaborative coding platform designed to enhance remote
programming, pair coding, and online teaching experiences. This web-based tool allows multiple
users to simultaneously write, edit, and debug code in a shared environment — similar to a digital
whiteboard for programmers. One of the key features of Code Sketch is its seamless session-
sharing capability. A user can initiate a coding session and share it with collaborators, who can
then immediately begin contributing to the same codebase from any location. This live interaction
fosters better teamwork, faster learning, and efficient debugging. Users can initiate or join a
Zoom meeting directly from the coding interface, enabling face-to-face discussions, code
walkthroughs, and mentoring sessions without switching between multiple apps. With real-time
syntax highlighting, multi-language support, session saving, and version tracking, Code
Sketch aims to be a powerful tool for developers, educators, and students alike — bridging the gap
between distance and collaboration.
iii
ACKNOWLEDGEMENTS
VICKY KUMAR
SHRISHTI GOYAL
VIDHI SHARMA
YASH CHAUHAN
iv
TABLE OF CONTENTS
Certificate ii
Abstract iii
Acknowledgement iv
Table of Contents v
1 Introduction 6-7
1.1Overview
1.2Project Description 6
1.4 Objectives 7
1.5 Purpose
3 Project Objective 11
6 Project Outcome 24
Conclusion
References 28
v
CHAPTER 1
INTRODUCTION
In today’s fast-paced digital world, remote collaboration has become an essential part of software
development and learning. Whether it's working with a team across different locations or
conducting online programming classes, there is a strong need for tools that allow real-time
interaction, smooth communication, and efficient collaboration.Code Sketch is a web-based
platform designed to meet these needs by providing a shared coding environment where users can
write, edit, and run code together in real time.
1.1 OVERVIEW:
Code Sketch is a web-based, real-time collaborative coding platform specifically built for
front-end development using HTML, CSS, and JavaScript. The platform is designed for
developers, students, and educators who want to code together remotely in a live,
interactive environment. Multiple users can join the same coding session, write and edit
code simultaneously, and see changes reflected instantly. This real-time synchronization
enhances communication, teamwork, and the learning experience.
One of the key features of Code Sketch is the live preview panel, which displays the output
of HTML, CSS, and JavaScript code instantly as it is written. This allows users to
immediately see the impact of their code without needing to refresh or open separate
browser windows. For beginners, this helps in understanding how structure, design, and
interactivity come together in web development.
Other key features include:
vi
• Syntax highlighting for HTML, CSS, and JavaScript
• Auto-indentation and basic error detection, especially for JavaScript
• Live session sharing via unique links
• Project saving and exporting options
• Lightweight and fast interface accessible via any modern web browser
It is important to note that Code Sketch is focused solely on front-end technologies. It does
not support back-end languages or frameworks like PHP, Python, or Node.js. This makes
the platform lightweight, easy to use, and perfect for learning, teaching, and collaborating
on front-end web projects.
vii
Key components of the project include:
• Live Code Editor with support for HTML, CSS, and JavaScript
• Real-Time Synchronization so that all users can see and edit the same code together
• Live Browser Preview panel that shows the output of code instantly as it's written
• Code Saving and Exporting, enabling users to store or share their final work
The platform is built using web technologies like JavaScript, WebSockets (for real-time
sync), and cloud-based services for session handling and storage. The user interface is
designed to be clean, responsive, and beginner-friendly, allowing both experienced
developers and students to use it without any learning curve.
By focusing only on front-end technologies, Code Sketch provides a fast, lightweight, and
distraction-free coding environment. It is not meant for backend development or complex
full-stack projects but is optimized for HTML/CSS/JS collaboration — making it ideal for
web design, interactive UI prototyping, and frontend-focused education.
In conclusion, Code Sketch provides a unique blend of real-time code collaboration and
live communication, making it an excellent tool for remote web development and online
learning in today’s digitally connected world.
viii
However, the platform will remain focused strictly on front-end technologies. Features
such as back-end language support (like PHP, Python, or Node.js), database integration,
user authentication systems, and advanced version control are not included in the current
scope. By keeping the platform lightweight and focused, Code Sketch aims to deliver a fast,
responsive, and practical tool for real-time front-end collaboration.
In summary, the scope of Code Sketch covers all essential features required to build a live,
collaborative front-end coding environment with real-time communication, while
deliberately excluding full-stack development and advanced backend features to maintain
simplicity and speed.
1.4 OBJECTIVES:
The primary objective of the Code Sketch project is to create an interactive, real-time
collaborative platform for front-end web development using HTML, CSS, and
JavaScript. This platform aims to provide a seamless and efficient coding environment
for developers, students, and instructors. The specific objectives of the project are:
ix
changes reflected instantly across all participants' screens. This feature fosters effective
collaboration among remote teams, online coding classrooms, and peer programming
sessions.
x
work for later use or sharing. This functionality supports long-term projects and
provides a convenient way for users to keep track of their progress.
1.5 PURPOSE:
The purpose of the Code Sketch project is to provide a platform that enhances the
collaborative experience for front-end developers, students, and instructors working
with HTML, CSS, and JavaScript. The platform aims to address the growing need for
real-time coding environments where users can collaborate seamlessly, especially in
remote or distributed settings.
By offering a space for multiple users to write, edit, and test code together in real
time, Code Sketch aims to improve the efficiency of team-based projects, pair
programming, and interactive learning. This tool is designed to make coding more
interactive and accessible, allowing participants to collaborate regardless of location while
receiving immediate feedback through live code previews.
Additionally, the integration of Zoom video conferencing directly into the platform aims
to create a more cohesive environment where users can communicate and solve problems
together face-to-face, without the need to switch between separate applications. This makes
it particularly useful for online coding workshops, virtual classrooms, and remote
development teams.
Ultimately, the purpose of Code Sketch is to streamline the coding process for front-end
development, fostering a more engaging and productive environment for both individual
learners and teams. It seeks to make coding accessible, efficient, and more interactive,
ensuring that users can focus on learning and creating without the technical distractions
often associated with managing multiple tools.
xi
CHAPTER 2
FEASIBILITY STUDY
The feasibility study for Code Sketch analyzes the practicality and viability of developing
and implementing a real-time collaborative coding platform specifically for HTML, CSS,
and JavaScript. This study considers technical, operational, and financial factors to
evaluate whether the project can be successfully executed and sustained.
• Platform Type: Browser-based, real-time collaborative coding platform for HTML, CSS,
and JavaScript.
• Frontend Technologies:
• Real-Time Collaboration:
Backend Technologies:
Video Integration:
Cloud Infrastructure:
xii
storage.
1. Client-Side (Frontend)
2. Server-Side (Backend)
3. Cloud Infrastructure
6. User Flow
xiii
2.1.3 Security Measures
Security is paramount given the sensitive nature of the communication. Key measures
include:
• Data Encryption: All data transmitted between users and the server is encrypted
using SSL/TLS to protect sensitive information (e.g., code, session details).
• Session Expiration: Sessions can have expiration times or manual termination to
prevent unauthorized access after a session is no longer active.
• Role-Based Access Control (RBAC): Implement role-based permissions, such as
Admin (create sessions) or Viewer (view-only access), to control access to features.
• Secure WebSockets (WSS): Communication over WebSockets will be encrypted
using WSS (WebSocket Secure) to ensure secure, real-time collaboration.
Development Tools:
xiv
$100,000 for the team over six months. Infrastructure (servers, databases): Initial
setup costs around $10,000.
• Operational Costs: Hosting services (AWS, Google Cloud): Approximately
$100/month initially.
• Freemium Model: Basic service free, with advanced features available through
subscription plans.
• Pricing Tiers: Individual users: $5/month, Business users: $20/month for enhanced
features like larger message limits and additional security measures.
• User Interface (UI): Simple, intuitive design that requires minimal training.
• User Journey: Streamlined process for creating and retrieving messages.
xv
• Phased Rollout: Begin with a pilot program among select users to gather feedback
and make improvements.
• Marketing Plan: Utilize content marketing, social media, and partnerships to
promote the API.
• Technical Support: Establish a support team for user inquiries and issues.
• Continuous Updates: Regularly introduce new features based on user feedback and
technology advancements.
xvi
2. Platform Source Code
• The platform's backend, frontend, and core features (excluding user content)
are intellectual property of the developers/company behind Code Sketch.
• Protect through copyright and/or software licenses.
1. Acceptance of Terms
2. User Responsibilities
The estimated timeline for the development of the One-Time Secret Message API is broken
into several phases:
xvi
CHAPTER 3
PROJECT/RESEARCH OBJECTIVES
3.1 INTRODUCTION
2. Session Security
• Unique session ID for each collaboration room
• Access roles: Host, Collaborator, Viewer
• Session links can expire or be revoked manually
• Only authorized users can join a session
xvi
Details:
The goal is to ensure that every collaborative session created on Code Sketch has
a unique and private link that cannot be guessed, reused, or accessed by unauthorized
users. This is achieved by generating a random session ID using cryptographic functions
and optionally encrypting it before adding it to the session URL.
This process ensures that:
• Each session has a one-of-a-kind identifier.
• The session link is obfuscated and secure, even if shared publicly.
• Only users with the encrypted link can join or collaborate.
• The session ID is not exposed in raw form, preventing misuse or guessing.
• You can implement link expiration, adding an extra layer of control by deactivating links
after a set time or once the session ends.
xix
• Sanitize input fields in the code editor, chat box (if added), and login forms.
3. Role-Based Access Control (RBAC)
• Assign roles like Admin, Editor, and Viewer.
• Limit access based on user role — for example, only hosts can end a session or invite
new users.
4. Disable Unused Features/Ports
• Turn off unused backend services, WebSocket ports, and third-party integrations.
• Restrict open ports and unnecessary system services on the server.
5. Secure File Access and Storage
• Prevent public access to backend folders or configuration files.
• Use signed URLs or token-based access for any downloadable files.
6. Regular Code Reviews and Patching
• Review code for security issues.
• Apply security updates to all dependencies and libraries (e.g., Express, Socket.io).
7. Environment Separation
• Separate development, testing, and production environments.
• Never expose test data or debug tools in the live app.
xx
CHAPTER 4
HARDWARE/SOFTWARE REQUIREMENTS
The hardware requirements depend on the scale and the environment in which the API is deployed
(development, testing, production). For a basic setup or a development environment:
• Storage: 100GB of available space (depends on the number of messages stored, but since
messages are encrypted and removed quickly, storage needs won't be massive unless the
system is scaling up)
• Internet Connection: Stable high-speed internet for accessing cloud services, dependencies,
and updates.
4.1.2 Production/Enterprise:
• Processor: Multi-core processors (Intel Xeon, AMD EPYC for scalability in enterprise
environments)
• RAM: 16GB or more, depending on expected API traffic and number of concurrent
requests.
• Storage: SSD storage for fast data retrieval, with scalability (cloud storage can be used to
xxi
scale storage needs). About 100GB or more for storing encrypted messages (depends on
usage).
• Network: High-speed internet connection with redundancy for reliable cloud hosting or on-
premise deployment.
4.1.3 Optional:
Frontend Requirements
2. JavaScript (ES6+)
3. React.js
xxi
• Allows reusable component-based structure.
4. Tailwind CSS
Backend Requirements
5. Node.js
6. Express.js
Database Requirements
8. MongoDB
• NoSQL database for storing session data, user info, and code snippets.
xxi
• Scalable, fast, and well-suited for JSON-like document structures.
• MongoDB: v5 or above
xxi
CHAPTER 5
PROJECT FLOW
5.1 Flowchart
Flowchart is a diagrammatic representation of sequence of logical steps of a program.Flowcharts
use simple geometric shapes to depict processes and arrows to show relationships and process/data
flow.
1. Session Creation
2. Join Session
xx
Other collaborators join using a unique ID or link.
4. Live Preview
5. Embedded
1. Initial Handshake
• When a user joins a CodeSketch session, their web browser (the Client) needs a
persistent connection to the CodeSketch server (Server) to enable real-time
updates.
• The process starts with an HTTP "upgrade" request, just like in the first line of the
diagram: "HTTP: I would like to talk WebSocket with you!"
• The CodeSketch server responds positively, as shown in the second line: "HTTP:
WebSocket sounds good to me!" This establishes the WebSocket connection.
• Once the WebSocket connection is established, whenever a user types or edits code in
their CodeSketch window, these changes are sent immediately to the server via the open
WebSocket connection (similar to "WebSocket: data" and "WebSocket: some other data"
in the diagram).
xx
• The CodeSketch server then instantly broadcasts these changes to all other connected
users in the same session through their respective WebSocket connections. This is how
everyone sees the code being updated in real-time.
3. Live Preview:
Similarly, when the code changes, the server can process these changes and push the
updated preview information back to all connected clients in real-time using the same
persistent WebSocket connection. This eliminates the need for users to manually refresh
their browsers to see the latest output.
1. External Entities:
2. Processes::
3. Data Stores:
xx
4. Diagram Representation:
Fig No.5.2.1
This level breaks down the processes into more detailed steps.
1. Manage Session:
• Receives "Session Creation Request" and "Join Request" from the User.
2. Collaborative Editing:
• Exchanges "Code Changes" with other instances of the "Collaborative Editing" process for
other connected users (this flow would be internal to the system but is crucial for the
collaborative aspect).
• Sends "Code for Preview" to the "Process Code & Generate Preview" process.
xx
• Sends "Code Changes" back to the User (reflecting changes from other collaborators).
4. Facilitate Communication:
5. Manage Saving:
1. Diagram Represenatatio:
xxi
Fig No.5.2.2
xxx
5.2.3 Level 2: Sub-Process Detail
Purpose: Further breaks down key processes for additional clarity, especially important processes
like "Save to Database" and "Retrieve Message".
Detailed Breakdown
1. Manage Session:
• 1.1 Create Session: Handles the user request to start a new session and generates a unique
Session ID.
o Input: Session Creation Request (from User)
o Output: Session ID (to User), Session Details (internal)
• 1.2 Join Session: Allows users to join an existing session using the Session ID/Link.
o Input: Join Request, Session ID/Link (from User)
o Output: Session Confirmation (to User), User Added to Session (internal)
2. Collaborative Editing:
• 3.1 Receive Code for Preview: Accepts the HTML, CSS, and JavaScript code to be
rendered.
xxx
o Input: Code for Preview (from Collaborative Editing)
o Output: Processed Code (internal)
• 3.2 Render Preview: Interprets and renders the code to generate the visual output.
o Input: Processed Code (internal)
o Output: Preview Data (internal)
• 3.3 Send Preview Output: Transmits the rendered preview to the requesting user(s).
o Input: Preview Data (internal)
o Output: Live Preview Output (to User)
4. Facilitate Communication:
• 4.1 Receive Communication Data: Accepts audio and/or video data from a user.
o Input: Communication Data (from User)
o Output: Communication Stream (internal)
• 4.2 Route Communication Data: Forwards the audio/video stream to other connected
users in the session.
o Input: Communication Stream (internal)
o Output: Communication Stream (to other Facilitate Communication processes)
• 4.3 Send Communication Data: Transmits the audio/video stream to the user's interface.
o Input: Communication Stream (from other Facilitate Communication processes)
o Output: Communication Data (to User)
5. Manage Saving:
• 5.1 Receive Save Request: Accepts the user's request to save the current code.
o Input: Save Request (from User)
o Output: Code to Save (internal)
• 5.2 Store Code: Persists the code in a storage mechanism (e.g., database, local storage).
o Input: Code to Save (internal)
o Output: Save Confirmation (internal)
• 5.3 Provide Saved Code (Loading): Retrieves saved code when a user requests it (this
could be another sub-process or part of session loading).
o Input: Load Request, Session ID/User ID (from User)
xx
o Output: Saved Code (internal), Loaded Code (to Collaborative Editing)
1. Diagram Representation
Fig No.5.2.3
xx
5.3 Entity Relationship Diagram
Fig No.5.3
• Entitties:
xx
• Saved Code State: Represents a saved version of the code document.
Relationships:
• User Creates Session: A User can create one or more Sessions. A Session is created by
one User (the owner). (One-to-Many relationship from User to Session)
• User Joins Session: A User can join one or more Sessions (as a collaborator). A Session
can have many Users (collaborators). (Many-to-Many relationship between User and
Session)
• Session Has Code Document: A Session has one Code Document (containing HTML, CSS,
and JavaScript). A Code Document belongs to one Session. (One-to-One relationship
between Session and Code Document)
• Session Involves Collaboration: A Session involves Collaboration between multiple users.
Collaboration occurs within a Session. (One-to-Many relationship from Session to
Collaboration, or a relationship with multiple participating Users)
• Code Document Generates Preview: A Code Document generates one Preview. A
Preview is generated from one Code Document. (One-to-One relationship between
Code Document and Preview)
• Session Supports Communication: A Session supports Communication between its
participants. Communication occurs within a Session. (One-to-Many relationship from
Session to Communication, involving multiple Users)
• User Saves Code Document: A User can save a Code Document at a specific point,
resulting in a Saved Code State. A Code Document can have many Saved Code States
(per user or session). (One-to-Many relationship from Code Document to Saved Code
State, potentially with User as a factor)
• Session Has Saved Code States: A Session can have many Saved Code States. A Saved
Code State belongs to a Session. (One-to-Many relationship from Session to Saved Code
State)
A Use Case Diagram visually represents the interactions between users (actors) and the system. It
outlines the functionalities (use cases) that the system offers to the users and the relationships
between those functionalities.
xx
5.4.1 Key Components of a Use Case Diagram
Actors:
• User (Collaborator): Any individual who interacts with the CodeSketch system.
Use Cases:
System Boundary:
This is the boundary that defines what is inside the system and what is external. Use cases that fall
within the system indicate functionalities provided.
Relationships:
xx
5.4.2 Use Case Diagram Description
• Actor: The "User (Collaborator)" is represented by the stick figure on the left.
• System Boundary: The rectangle labeled "CodeSketch System" encloses all the use cases.
• Use Cases: Each oval represents a specific use case (functionality) that the user can
perform.
xx
• Associations: Lines connect the "User (Collaborator)" actor to the use cases they interact
with. For example, the user can "Create Session," "Join Session," "Edit Code," "View Live
Preview," "Communicate Online," and "Save Code."
• Include Relationships: Dashed arrows labeled "<<include>>" point from a base use
case to an included use case, indicating that the included use case is always performed as
part of the base use case. In this diagram, "Edit Code" includes "View Live Preview" and
"Communicate Online," and "Edit Code" also includes "Save Code" (as saving is a part of
the editing workflow). "Create Session" also implicitly leads to "Edit Code."
CHAPTER 6
PROJECT OUTCOME
xx
6.1 Functional Outcomes
• Observable Behavior: The system generates and displays a unique session ID or link.
• Result/Output: A new, empty coding session is created and accessible via the ID/link.
• User Value: The user can initiate a collaborative coding environment.
• Observable Behavior: The user enters a session ID/link, and the system navigates them to
the shared coding interface.
• Result/Output: The user is now connected to the existing coding session and can see the
current code.
• User Value: The user can participate in collaborative coding with others..
• Observable Behavior: Keystrokes and code modifications are reflected in the editor.
• Result/Output: The shared code document is updated in real-time for all participants.
• User Value: Users can collaboratively build and modify code.
• Observable Behavior: The system displays a rendered output of the HTML, CSS, and
JavaScript code.
• Result/Output: A visual representation of the code's effect is shown.
• User Value: Users can instantly see the results of their coding changes.
• Observable Behavior: Audio and video streams are transmitted and displayed between
users.
• Result/Output: Users can have real-time voice and/or video conversations.
xx
• User Value: Users can discuss and coordinate their coding efforts directly within the
platform.
• Observable Behavior: The system indicates that the code has been saved.
• Result/Output: The current state of the code is stored for later retrieval.
• User Value: Users can preserve their work and return to it later.
• Speed: The time it takes for the system to react to a user's input or a request. Lower latency
generally indicates better performance. For users in Muradnagar, this could mean how
quickly a webpage loads or how fast their code changes are reflected in CodeSketch.
• Scalability: The system's ability to operate without failures or errors over a sustained
period. Performance issues can sometimes be linked to instability.
6.2.2 Security
• Data Protection: Protecting data at rest, in transit, and in use. This encompasses
encryption, data loss prevention (DLP) tools, access controls, and data classification.
• Data Integrity: Securing individual devices like computers, laptops, and mobile phones
that connect to the network. This involves antivirus software, anti-malware tools, personal
firewalls, and endpoint detection and response (EDR) solutions..
• User-Friendly Interface: New users can quickly figure out how to perform basic tasks.
• Error-tolerant: The design minimizes errors and provides easy ways to recover from
them.
xl
6.3 User Outcomes
• Functionality: The extent to which the system provides the features and capabilities that
users need and expect. If CodeSketch lacks essential collaboration or coding features, users
will be dissatisfied.
• Reliability: The system's consistency and dependability. Frequent crashes, errors, or data
loss will severely damage user satisfaction.
• Simultaneous Editing with Clear Presence Indicators: Showing who is editing which
part of the code in real-time with distinct cursors and names.
• Interactive Whiteboarding: A shared digital whiteboard within the session where users
can sketch diagrams, flowcharts, or jot down ideas collaboratively.
• Higher Number of Active Users: More individuals and teams are logging in, creating
sessions, and actively coding on the platform.
• Broader Geographic Distribution: Users might be joining from diverse locations, both
domestically and internationally.
xli
6.4.3 Brand Building
• Blog: Share valuable content related to web development, collaborative coding best
practices, tips for using CodeSketch, and industry insights.
• Tutorials and Documentation: Provide comprehensive and easy-to-understand guides
and documentation for using all of CodeSketch's features. Consider creating content in
multiple languages to cater to a global audience.
• Sustainability: Ensuring that the platform generates enough revenue to cover its
operating costs and continue to function in the long term, providing reliable service to
its global user base.
• Growth: Providing the financial resources necessary to invest in development,
marketing, and infrastructure to attract more users and enhance the platform.
• Effective Use of the Platform: Understanding the features allows users to leverage
CodeSketch to its full potential, maximizing their productivity and collaboration
efficiency.
• Improved Coding Skills: The platform provides a practical environment for honing web
development skills in a collaborative setting.
xlii
6.6.2 Feedback for Future Projects
• Focus on Improvement & Innovation: Suggest ways to make CodeSketch better and
introduce new valuable features.
• Be Specific & Contextual: Clearly explain what you're referring to and why it's important
in your workflow.
• Prioritize Suggestions: Indicate what issues are most critical or what features would be
most impactful.
xlii
CONCLUSION
Code Sketch, as a collaborative online code editor, holds significant potential for users globally,
including those in regions like Muradnagar, Uttar Pradesh, India, by facilitating real-time
teamwork on web development projects. Its success hinges on a delicate balance of factors
including robust system performance that accommodates varying internet conditions, stringent
security measures to protect user data and creations, intuitive usability and broad accessibility for
a diverse user base, and ultimately, high user satisfaction driven by a positive and efficient
collaborative experience. Continuous brand building, strategic monetization opportunities that
respect different economic contexts, and a commitment to timely delivery of features and support
are crucial for sustained growth. Furthermore, fostering technical learning among its users and
actively soliciting and incorporating specific, prioritized, and constructive feedback will be vital
in guiding future development and ensuring Code Sketch evolves to meet the ever-changing needs
of the collaborative coding community worldwide.
xli
REFERNCES
xlv
experience. https://angular.io/
5. Software Engineering Best Practices
• Clean Code Principles:
o Martin, R. C. (2008). Clean Code: A Handbook of Agile Software Craftsmanship. Prentice
Hall. (For code readability, maintainability, and structure)
• Version Control:
o Git. (n.d.). Git Documentation. https://git-scm.com/doc
o GitHub Docs. (n.d.). GitHub Docs. https://docs.github.com/
xlv