Over the last year, everyone has learned to communicate over video conferencing systems. These systems were not built for education. What if we could augment these systems with something that enhances student-teacher engagement on any web conferencing system?
What it does
ActiveLearn empowers teachers to create, share, and engage with their students with interactive documents. With features such as live presentations, sharing documents, and interactive quizzes, students will be engaged in the classroom. A higher level of engagement in the classroom will result in a higher level of understanding of the concepts taught in class.
How we built it
We use a combination of front-end and back-end languages to build ActiveLearn. We use React.js, HTML, CSS, and JS to develop the front end of our website. We use react-pdf to view the PDF viewer, used apexcharts.js to create a bar chart in the teacher dashboard, and used react-bootstrap and bootstrap for the modal popup. The back-end server is built-in Elixir and Go and uses WebSockets to send data between the teacher and student.
Challenges we ran into
One of the challenges we ran into was hosting our server on an AWS EC2 instance. We previously used Nginx as a reverse proxy in other projects. Still, we decided to use Caddy instead for automatic SSL encryption, and setting the reverse proxy with Caddy and go WebSockets was a challenge. Also, being unfamiliar with Elixir posed a challenge because of the functionality and scalability we wanted with our server.
Accomplishments that we're proud of
We are proud to have built a tool that can help teachers make their classrooms interactive. We can integrate various languages to power our website. This is the first react project we have ever done for some of us, so we are proud that the components and functions work correctly together. We are also proud of how much we learned over a hackathon, including hosting on Netlify, reverse proxies in Caddy, the Phoenix framework in Elixir, and Go Websockets.
What we learned
We learned how to use Firebase, the Phoenix framework with Elixir, Hosting websites with Netlify, website development with React, the Caddy web server, and Go Websockets.
What's next for ActiveLearn
We want to enable teachers to interact with students personally by allowing teachers to annotate and navigate an individual student's document. Also, we want to allow teachers to upload a list of questions that they have already written, and the teacher would be able to collect all the different responses. In the future, we would like to support more types of questions, like short answer questions, which teachers could ask. Also, we would look towards implementing iOS and Android website support. Also, we were hoping to include a voice call system with Elixir, but we did not have the time to implement it. Finally, we would also want to include annotations on the PDF, so the teacher or the student can mark their PDF.