EasyPile 2 Statement of the Project (Product) 2.1 Detail statement of the project Product EasyPile is a web based IDE. Which will compile on a remote linux server. Anyone can write code in the frontend of the website with appropriate syntax highlighting. Clients can also write standard inputs. After building the code in a remote pc it’ll show output of the code according to the input. Clients can also upload a picture of code which will be understood by using an OCR and after detecting the language the code will be shown on the online code editor for further editing. 2.2 Motivation We always wondered how web IDEs work which led to the birth of this project. 2.3 Goals Our goal is to create an online code editor with syntax highlighting and remote compilation. There will also be an online OCR to extract the source code and detect the language. 2.4 Skill baseline (skill essential and skill have: how you will overcome deficiency) Frontend Development, Backend Development, understanding API, using linux bash commands to build and transfer files. Our plan is to learn on the go and build what we lack. We are acquainted with most of the essentials but, there might be some deficiencies which we’ll face head on.
3 Background to the Project (Product)
3.1 Commercial Background IDEs are a goto software for coding now-a-days but it may require a complex installation procedure. Web IDEs provide a more portable approach to coding disregarding the specs, features or complex installation process of one’s own machine, as a browser is the only requirement for it. There are a lot of free and paid online IDE’s. Paid one’s provide more features than the free one. But, our goal is to implement the core features of an online IDE. 3.2 Scientific background EasyPile is based on server-client architecture. Where we have a linux based build server and any client communicating through REST-API or our browser based client.
3.3 Technical background
● Server side programming for REST-API request handling. (Flask/Django) ● Bash Scripting. (Build System) ● Frontend Development (HTML, CSS, JS)
4 Project (Product) description
4.1 Product perspectives People can use EasyPile anywhere anytime which will give them more sense of flexibility and portability in life. They can also take a picture of some code and upload it here to detect the language and also get the source code by using OCR. 4.2 General capabilities ● Code editor with syntax highlighting. ● Supports for C, C++ and python 2.0/3.0. ● Remote building of source code. ● OCR for codes. 4.3 General constraint The Account system won’t be created this time. So, people won’t be able to save their code online.A stable internet connection is required otherwise the system won’t work properly. 4.4 User Characteristics Anyone with basic coding knowledge or interested to code online can get the benefit of using EasyPile. 4.5 Operational Environment Any browser can be used as an operational environment to use EasyPile for coding and web compilation. The server will be hosted on a remote linux server and the server can also be used through REST-API requests from any client.
5 Project (Product) Specific Requirement
5.1 Capability requirement Only capability requirement of EasyPile is for the users to know about the language who he/she is trying to code. 5.2 Constraint requirement Users must have a stable internet connection and a browser to code and build their code in EasyPile.
6 Conclusion EasyPile will be our stepping stone to learn about remote compilation and API usage. Also it’ll strengthen our knowledge of web development and general software engineering.