It's my strong belief that education is a right to everyone, this software aims to make it easier, and more enjoyable for people to get involved and truly learn from school. That's what drove me to build this software as a web application, because the web can be accessed by any device (even a fridge), so there are no restrictions on who can use this software. The UI is minimal, simple and easy to navigate allowing non-technical users to easily understand and use the software.
What it does
StudenTeacher is a web application built to give students the ability to be involved in their learning, even during a pandemic. Using WebRTC technology, students are able to join small meeting groups to teach each other concepts that they learned in class. The application was designed and developed to be easy to use and accessible to all users regardless of technical knowledge or technology available to them. As long as the user has an internet connection, they can use this application to get involved in their learning.
How we built it
Built using Express as the major backend framework, MySQL as the DB, React as the front-end framework, Semantic UI for style and Peer JS + Socket.io for the WebRTC meetings.
Challenges we ran into
I don't have much experience with WebRTC so one of the biggest challenges I ran into was setting up rooms using Peer JS and socket.io. In the end, I managed to do this by creating my own room manager and emitting all of the necessary information for peers associated to the room (side note: socket.io has room functionality, however, it can be inconsistent so I opted to use a more consistent and controllable method)
Accomplishments that we're proud of
This was a very large project (admittedly I underestimated the size of), that was completed in a fairly short amount of time, so I'm proud the project was able to be completed. I'm also proud of the integration of React router with express routes, because on a lot of occasions the two can result in conflicts.
What we learned
I got a lot better at creating software using WebRTC and at designing applications with multiple layers like this one. I also got better at managing the different components, from a front-end and back-end perspective.
What's next for StudenTeacher
The software's source code has been released, so I'm hoping others will be inspired and help further develop this project just as I plan to. My plans for this software in the future include adding a better meeting system, cleaner UI for both the homepage and the classroom page as well as a profile system to give users more customizability. In the long run, I'm planning on keeping StudenTeacher open source so that schools can maintain the privacy of their students by hosting their own StudenTeacher applications.