Our inspiration arose from multiple online presentations that we have before matriculation, which all had some form of Q&A at the end of the session (e.g. Zoom, Mentimeter). However, we realised that both the presenters and the students faced difficulties in utilising the session effectively because of the limitations of the tools used.
Students do not have a list of questions to go through after the session, and are forced to sit through a whole recording to look for a few questions if they are not present or need to leave earlier. Lecturers, on the other hand, also face the problem of repetitive questions during the session. Without a textual compilation of the problem, they also have to sift through questions that they have already answered before.
All in all, we think that there could be a better implementation of the Q&A that allows students to benefit from the session more, while also reducing the time spent by the lecturer.
What it does 💻
Students submit their questions through the Telegram bot, which are then stored in a MySql database server. The website shows the questions on the website, and the lecturers use it to answer the questions (through text / speech to text). The website groups similar questions together through Natural Language Processing (NLP) and ranks them based on the popularity (measured by number of subscriptions from students).
When a question is answered, the student receives a notification containing the answer for their question. Other students can also choose to subscribe to other questions, such that they will also receive the notification for the answer. Thus, students who need to leave the session early can still get the answer to the question through Telegram.
After the session, students will also be able to get a compiled list of questions and their answers, thus benefitting those that were unable to attend, or simply want to refer to answers that they have forgotten.
How we built it 🔨
We used the Python-Telegram-Bot library to implement our Telegram bot. Our backend is coded in Python, that used a Flask application framework to connect to our website. Our website is built using Nuxt.js, Axios and TailwindCSS.
We hosted our website and server on Heroku. While testing, you might experience some delay in the Telebot replying and website loading as the Heroku servers they are hosted on will sleep during idle.
Challenges we ran into 🗻
We faced multiple challenges as none of us have done a 24h hackathon before. We had issues trying to figure out unexpected bugs with both the Telegram bot and the Nuxt.js framework. For example, we needed to figure out how to make the bot have a conversation with the user. We also faced problems with server-side rendering with Nuxt.js in the frontend.
Thankfully, we were able to solve most of the major issues by helping one another with their sections and a little less sleep 😀
Accomplishments that we're proud of 🦾
We all learnt new things in the areas that we were responsible for (Telegram bot, MySql, Nuxt.js). Most of the features that we implemented was built on knowledge that we gained within these 24 hours, and it was really eye-opening for us how much we can learn and put into practice through such a short time. We learnt how to work efficiently and push through difficult bugs with the help of documentation, instead of giving up for the day.
What's next for chongsters (119) 🦄
We will be matriculating into our respective courses in NUS School of Computing this August! We will be looking for opportunities in the future to collaborate and make better hacks as we gain more experience, perhaps with mobile applications 👀