P

Pathshala

A better way to take classes, remotely. A platform built keeping in mind, to create a classroom-like experience with reduced data usage.

The problem Pathshala solves

Amidst the COVID-19 induced self-isolation that we find ourselves in, it is clear that remote education has become an important part of our lives and it is not going anywhere anytime soon. Education is one such field that is deeply affected by the lockdown.
We found out that all of the apps that teachers use for connecting to their students are primarily Video Conferencing apps and are not made keeping a teaching platform in mind.
Keeping in mind that the institutes across the country are considering an option of conducting a whole semester online, a platform that could conduct classes regularly for 3-5 hours daily was required and the Video Conferencing apps that are already existing use up a lot of data. Our main focus today was to build a platform that could do the same.
Hence, we decided to make 'Pathshala' - a remote teaching app built around classrooms. Streaming slides has always been a hassle where teachers are required to project their screen, thereby consuming a lot of bandwidth. Pathshala is built around WebSockets that project a screen of PDF that the teacher is projecting to all the students, thereby removing the need to project multiple frames every second. New slides are sent only when the teacher changes slides. This can save A LOT of bandwidth, and hence, making education more accessible to all.
In the hackathon period, we were able to share the PDFscreen and we look to take it a notch higher as we look to enable
Assignment Sharing: Deadline reminder and keep a track of submissions i.e. when was the upload attempted and the when was it successful
Scribble on Screen: For the host to explain a topic without having to use external tweaks,
Student Poll: To get a response from students without having them to spam the chats.
Sentiment Analyser: For students containing moods like concentrating, confused, sleepy etc.
Interrupt: To interrupt the process of teaching and a context switch to doubts.

Challenges we ran into

The first and foremost challenge was to implement screen sharing. As none of us had prior experience with webRTC or sockets, and it was a primary requirement that separated our idea from reality. Since we did not want normal video conferencing it was becoming more difficult as every search led us to video conferencing. Somehow we got some resources which we could modify to meet our requirements.
While learning to implement it, we came across a stage where the ram utilisation reached 100% and the laptops froze.
And since all of us were at our homes, to explain the problem and to get a solution was even more difficult.
Since sockets work in real-time, so network requests and memory leak was hard to deal with.
We've reduced them significantly hence, for safety we are keeping it on the local server for now.

Unrelated to the technical difficulties in making the project, we also have our online exams from 1 PM- 5 PM today, but our ardent desire to participate and build something brought us here.

Discussion