Professional Documents
Culture Documents
1. Introduction
3. Limitation
4. Feasibility study
7. Implementation
8. Conclusion
9. Future Scope
10. References
INTRODUCTION
Native application code editors have long been the go-to
tools for software developers, offering a range of features
tailored to coding tasks. However, these editors are not
without their share of challenges. Here are some problems
commonly faced when using native application code editors:
However a Online Browser based IDE has the ability solve all of
the above problems. The versatility and accessibility offered
by browser-based online IDE, empowering developers to write
code from virtually anywhere with an internet connection.
These web-based editors bring a new level of flexibility to the
coding experience, allowing developers to seamlessly transition
between devices without the hassle of installations or
compatibility issues
SCOPE AND ADVANTAGES
1. Technical Feasibility:
a. Technology Stack:
Web Technologies: Choose appropriate web technologies such
as HTML5, CSS, and JavaScript for the front end.
b. Compatibility:
Ensure compatibility with a variety of browsers (Chrome,
Firefox, Safari, Edge) to reach a broad user base.
c. Performance:
2. Schedule Feasibility:
1. Development Timeframe:
3. Legal Feasibility:
a. Intellectual Property:
b. Compliance:
1. Introduction
1.1 Purpose
The purpose of this document is to provide a comprehensive overview
of the software requirements for the development of a Browser-Based
Online Integrated Development Environment (IDE).
1.2 Scope
The online IDE aims to provide a collaborative and feature-rich
coding environment accessible through web browsers. Users can write,
edit, compile, and debug code seamlessly, fostering efficient
development workflows.
2. Functional Requirements
2.1 Code Editing and Execution
1. The IDE shall provide a code editor with syntax
highlighting and auto-completion features.
3.2 Security
1. The IDE shall implement secure authentication protocols.
4. Constraints
1. The system must comply with relevant data protection
regulations (e.g., GDPR).
5. Conclusion
This Software Requirement Specification outlines the features and
constraints for the development of a Browser-Based Online IDE. It
serves as a foundation for the development team to design, implement,
and test the system effectively. Regular updates to this document may
be necessary as the project progresses and new requirements emerge.
Work Breakdown Structure(WBS)
1. Project Overview
1.1 Project Name:
Haxe Online IDE
2. Project Team
2.1 Team Members
Soumyadeep Dey (Backend Developer)
3.1 Milestones
1. Project Initiation - 1 week 3 days
3. Development - 11 weeks
5. Deployment - 2 weeks
4. Risk Management
4.1 Identified Risks:
Technical challenges in implementing external libraries and code
execution.
5. Quality Assurance
5.1 Testing Approach
Unit Testing
Integration Testing
6. Gantt Chart
7. Cost Estimation
The cost analysis of a software development project based on Lines of
Code (LOC) involves estimating various costs associated with
development, testing, deployment, and maintenance. However, it's
important to note that estimating costs solely based on LOC can be
challenging, as the complexity of the code, technologies used, team
efficiency, and project requirements also play significant roles.
Here's a simplified cost analysis assuming a cost per line of code:
Assumptions:
1. Cost per Line of Code (LOC): Rs 10 (Note: This is a
hypothetical value and may vary based on the project and its
complexity).
4. Documentation Cost:
1. Interface Design:
1. Header Section:
Logo and IDE Name: Display the logo and name of the online IDE
for brand recognition.
2. Navigation Bar:
File: Options for creating, opening, saving, and managing
projects and files.
2.
Entity-Relationship diagram:
Creating an Entity-Relationship Diagram (ERD) for a Browser-Based
Online IDE involves identifying the main entities and their
relationships within the system. Below is a simplified ERD for a
browser-based online IDE:
Entities:
1. User:
2. Haxe IDE:
3. File:
4. Editor:
Relationships:
1. User - HaxeIDE (One-to-One):
4. File - Compiler/Interpreter(Many-to-One):
Preloader Section:
Displays a preloader with a video background while the page is loading.
htmlCopy code
<div id="preloader">
<video id="preloader-video" autoplay muted controls>
<source src="images/loading vid.mp4" type="video/mp4">
</video>
</div>
Compiler Section:
Contains a chatbot, control panel, code editor, button for executing code, and an output
section.
htmlCopy code
<div id="compiler">
<!-- Chatbot with a video background -->
<div class="chatbot">
<video width="395" height="727" autoplay loop muted plays-inline
class="background-clip">
<source src="images/video (online-video-cutter.com).mp4" type="video/mp4">
</video>
</div>
</div>
Pop-up Windows for "About Us" and "Contact Us":
Contains information about the project and a form for users to contact the team.
htmlCopy code
<div class="popup" id="about-popup">
<!-- About Us pop-up content -->
</div>
Overall, this HTML code represents the structure of a web page with
an online IDE, including a code editor, control panel, and additional
features such as chatbot, pop-up windows, and video backgrounds
2. CSS
1. Global Styles:
#preloader-video {
/* ... */
}
3. Sidebar Styles:
.sidebar {
/* ... */
}
.logo {
/* ... */
}
.small-logo {
/* ... */
}
.full-logo {
/* ... */
}
.icon-button-group {
/* ... */
}
.icon-button {
/* ... */
}
.icon-button img {
/* ... */
}
.icon-button span {
/* ... */
}
.popup Styles:
- Styles for pop-up windows (About Us and Contact Us).
```css
.popup {
/* ... */
}
.popup-content {
/* ... */
}
.popup-content input,
.popup-content textarea {
/* ... */
}
.close-button {
/* ... */
}
5. Chatbot Styles:
.background-clip {
/* ... */
}
6. Control Panel Styles:
Styles for the control panel where users can select the programming language.
cssCopy code
.control-panel {
/* ... */
}
.languages {
/* ... */
}
7. Editor Styles:
.button-container {
/* ... */
}
.btn {
/* ... */
}
8. Output Styles:
3. Javascript
Adds or removes the 'active' class on the container based on the mouse position,
triggering the sidebar sliding effect.
javascriptCopy code
container.addEventListener('mousemove', (e) => {
// ...
});
container.addEventListener('mouseleave', () => {
// ...
});
3. About Button Pop-up:
Displays the "About Us" pop-up when the user clicks the "About" button and hides it
when the close button is clicked.
javascriptCopy code
aboutButton.addEventListener('click', () => {
// ...
});
closeButton.addEventListener('click', () => {
// ...
});
4. Contact Button Pop-up:
Displays the "Contact Us" pop-up when the user clicks the "Contact" button and hides it
when the close button is clicked.
javascriptCopy code
contactButton.addEventListener('click', () => {
// ...
});
closeContactButton.addEventListener('click', () => {
// ...
});
5. Editor Initialization:
Initializes the Ace editor on window load, setting the theme and default mode to Python.
javascriptCopy code
window.onload = function() {
// ...
}
6. Language Change and Code Execution Functions:
Changes the editor's mode based on the selected language and executes the code using
AJAX.
javascriptCopy code
function changeLanguage() {
// ...
}
function executeCode() {
// ...
}
7. AJAX for Code Compilation:
Uses AJAX to send the selected language and code to the server for compilation,
updating the output section with the response.
javascriptCopy code
$.ajax({
// ...
});
These scripts handle various aspects of your webpage, including
preloading, sidebar interaction, pop-up functionality, and
integration with the Ace code editor for language selection and code
execution
Sample Output:
The inclusion of pop-up windows for "About Us" and "Contact Us" adds
a personal touch to the project, providing users with insights into
the team behind the IDE and offering a direct means of communication.
8. Mobile Optimization:
https://online.visual-paradigm.com/
https://www.onlinegantt.com/
https://www.geeksforgeeks.org/
https://www.javatpoint.com/