Created on 6th September 2020
•
This pandemic has hit us hard, but with time everthing is starting to come online so is the case with our colleges.
All lectures and CODING PRACTICALS are being conducted online, mostly thourgh PPT's and screen sharing, while this way is OK'ish for theory lecutres but it becomes really hard to coupe up with online PRACTICALS.
Some Caveats of current way of online PRACTICAL sessions :
All the students does not have same coding environment and some of them don't even have linux installed.
If the student want to share code or even if teacher wants to share a code, they need to send file which then needs to be run locally,hence consuming more time.
Debugging and doubt solving in a code is really cumbersome and teacher cannot help student in realtime.
Poor network connection is the biggest hurdule of all due to which quality of share maybe bad and code may not be visible clearly.
What we propose ?
On our platform teacher will create a room, will share invite link.
After the room is created a linux container will be created and all users will be able to access that linux enironment.
Students will join the room, which will put them and the teacher in same coding environment.
Now they can create files and start coding in realtime using our online code editor, including syntax highlighting and all other features.
Each file can be modified by multiple users at same time, and changes will be reflected to all the users. ( Google Doc like but with an IDE )
A dedicated terminal will be accessible to each user inside same linux container.
Student and Teachers will be able communicate with each other thorugh text and voice chat.
As all communatications will happen through websocktes, therefore consuming less bandwidth than current online video sessions.
While building the realtime editing feature, we initially started with simple weboscocket comunication. But this way resulted in many conflicts while merging the edits of all users in a paritcular room.
After surfing through internet we found an alogrihim called OPERATIONAL TRASFORMATION which was used to handle realtime edits on single file.
So we overcomed this problem by using the implementation of the same algorithm.