The world of Internet is growing rapidly, many applications that previously created on the desktop start moving to the web. Many applicationscouldbeaccessedanytimeandanywhereeasilyusingInternet.Developersneedtoolstocreatetheirapplications, oneofthem namedcodeeditor.Thepurposeofthisresearchistodesignanddevelopareal-timecodeeditorapplicationusing websocket technologytohelpuserscollaboratewhileworkingontheproject.Thisapplicationprovidesafeaturewhereuserscancollaborateonaprojectinreal-time.Theauthorsusinganalysismethodologywhichconductingonastudyofthecurrent code editor applications, distributing questionnaires and conducting on literature study.CodeTogether is a web application that provides workspace to writing, perform, display the results of the code through the terminal, and collaborate with other users in real-time. The application main features are providing workspace to make, execute and build the source code, real-time collaboration, chat, and build the terminal. This application supports C, C++, and Java programming languages.
Introduction
The development of software engineering tools has shifted from desktop-based IDEs to web-based environments, addressing issues like lengthy setup and plug-in installation on multiple devices. Web-based IDEs enable ubiquitous access, real-time collaboration, and eliminate local configuration. Real-time communication (RTC) technologies integrate voice, messaging, and collaborative applications, allowing programmers to work synchronously on code, share progress, and communicate effectively regardless of location.
The research focuses on designing a collaborative web-based code editor supporting C, C++, and Java, which allows users to create, edit, run, and build projects while collaborating in real-time. Features include syntax checking, chat communication, file import/export, and automatic saving.
Related research highlights the importance of synchronization in collaborative programming, with real-time editing systems and protocols to manage multiple users editing simultaneously. Tools like ICI and Collabode demonstrate the integration of real-time collaboration and debugging in virtual environments, enhancing software development and education.
The proposed application, CodeTogether, integrates Facebook login for easy access and social collaboration, providing a workspace where users can manage projects, communicate, and collaborate with access controls. The architecture supports chat messaging, project sharing, and terminal display for code execution results, aiming to improve team productivity and project quality through real-time collaborative features.
Conclusion
This paper introduced our design and implementation of the real-time application for collaboration. CodeTogether is a web application that helps programmers to create and see the result of the executed source code by terminal, collaborate in real-time with other programmers by chat or invite to join the same project and manage the projectsuch as import, export, shared projects. CodeTogether supports C, C ++, and Java programming languages. CodeTogether has the mainfeatures:provideworkspacetomake,executeandbuildthesourcecode,real-time collaboration,chat, and build the terminal.
References
[1] M. Doernhoefer, “Surfing the Net for Software Engineering Notes\", ACM SIGSOFT Software Engineering Notes, Vol. 24, No. 3, (1999), pp. 15–24.
[2] L. C. L. Kats, R. G. Vogelij, K. T. Kalleberg, and E. Visser, “Software development environments on the web\", in Proceedings of the ACM international symposium on New ideas, new paradigms, and reflections on programming and software - Onward! ’12, (2012), pp. 99.
[3] M. Goldman, “Role-based interfaces for collaborative software development\", in Proceedings of the 24th Annual ACM Symposium Adjunct on User Interface Software and Technology - UIST ’11 Adjunct, (2011), pp. 23.
[4] F. Frößler, \"A Practice Theoretical Analysis of Real Time Collaboration Technology: Skype and Sametime in Software Development Projects\", Göttingen: Cuvillier, (2008).
[5] S. Klein, N. Vehring, and M. Kramer, “Introducing Real Time Communication: Frames, Modes & Rules\", in Proceedings 23nd Bled eConferenceeTrust: Implications for the Individual, (2010), pp. 591–606.
[6] K. Riemer and F. Frößler, “Introducing Real-Time Collaboration Systems: Development of a Conceptual Scheme and Research Directions\", Communications of the Association for Informations Systems (CAIS), Vol. 20, (2007), pp. 204–225.
[7] M.Goldman,G.Little,andR.C.Miller,“Real-timeCollaborativeCodinginaWebIDE\",inProceedingsof the24th Annual ACM Symposium on User Interface Software and Technology, (2011), pp. 155–164.
[8] H. Fan, C. Sun, and H. Shen, “ATCoPE: Any-time Collaborative Programming Environment for Seamless Integration of Real-time and Non-real-time Teamwork in Software Development\", in Proceedings of the 17th ACM International Conference on Supporting Group Work, (2012), pp. 107–116.
[9] H. Bani-Salameh, C. Jeffery, Z. Al-Sharif, and I. Abu Doush, “Integrating Collaborative Program Development and DebuggingwithinaVirtualEnvironment\",inProceedingsof the14thCollaborationResearchers’InternationalWorkshop on Groupware, Vol. 5411, (2008), pp. 107–120.
[10] A.Sarma,“ASurveyofCollaborativeToolsinSoftwareDevelopment,TechnicalReport,UCI-ISR-05-3\",Irvine, California, (2005).
[11] S.GoelandV.Kathuria,“ANovelApproachforCollaborativePairProgramming\",JournalofInformationTechnology Education, Vol. 9, (2010), pp. 183–196.
[12] H.B.SalamehandC.Jeffery,“Collaborativeandsocialdevelopmentenvironments:aliteraturereview\",International Journal Computer Applications in Technology, Vol. 49, No. 2, (2014), pp. 89.
[13] S.Kumawat,M.T.Scholar,andA.Khunteta,“ASurveyonOperationalTransformationAlgorithms:Challenges,Issues and Achievements\", International Journal of Engineering Science and Technology, Vol. 2, No. 7, (2010), pp. 3311–3319.
[14] D.Sun, S. Xia, C. Sun, andD. Chen, “Operational TransformationforCollaborativeWord Processing\",in Proceedingsof the 2004 ACM Conference on Computer Supported Cooperative Work, (2004), pp. 437–446.
[15] H. S. Molli, P. Molli, and G. Oster, “Semantic Consistency for Collaborative Systems\", in Proceedings of the International Workshop on Collaborative Editing Systems - CEW 2003, (2003).
[16] J. Sung-Jae, B. Yu-Mi, and S. Wooyoung, “Web Performance Analysis of Open Source Server Virtualization Techniques\", International Journal of Multimedia and Ubiquitous Engineering, Vol. 6, No. 4, (2011), pp. 45–52.