The internet serves as haven for knowledge, bringing educational content to billions worldwide. Yet, as of 2022, 37% of the human population have no access to the internet. As a result, many lose out on valuable educational resources and never have a chance to experience quality education.
Knetwork tackles this issue by providing an offline-first Learning Management system. A Knetwork box is easy to configure and powerful even offline, with features such as dynamic problem generation, a local browser for articles, and student-teacher management.
📶 What it does
Knetwork provides an easy-to-use platform for students to explore Wikipedia and other educational content offline. It uses natural language processing to generate unlimited questions based on an article or concept, then lets students test themselves in a flashcard-like format. Knetwork also allows teachers to keep track of their students' progress and view the questions they've already studied. Knetwork's features enable users in remote and low-Internet communities to gain access to world-class education.
🏗️ How we built it
We first prepare the Knetwork box by feeding article content into OpenAI's GPT-3 models, producing a set of question-answer exercises that students can later use. We package the box with our educational application and a local browser (kiwix) for viewing articles from Wikipedia.
The application is built with a Typescript and React.js frontend, combined with a Flask backend API. Our core features include student and teacher authentication (with MongoDB), exercise generation with zero-shot classification (transformers and NLP). The entire application is wrapped in a docker-compose configuration for easy deployment.
🏆 Challenges we ran into
Due to the offline nature of the application, we couldn't leverage cloud-based APIs such as OpenAI and Khan Academy's API. To circumvent this, we pre-loaded all of the relevant educational material and NLP-generated exercises into our Knetwork box before distribution.
📒 What we learned
Before this hackathon, we hadn't thought deeply about how education impacts those in non-American settings, especially those without access to the Internet. Our worldviews have expanded due to the research and statistics we've discovered while planning out Knetwork.
On a technical side, before this hackathon, neither of us knew how to containerize apps in a production environment, work with MongoDB, use hosted / local AI models, nor work with primarily offline-first technologies. After our project, we've gained an understanding of how to apply these technologies in a deployment context. We also delved into many interesting machine-learning and natural-language processing topics that we'll continue to explore in the future!
🔜 What's next for KNetwork
We still have a lot we'd like to accomplish with KNetwork!
- Content translation, especially introducing new concepts based on examples from the community's culture or language
- App translation and accessibility work
- Better compression of data to decrease costs
- Flesh out the LMS management and question-answer saving workflows
- Explore ways to increase performance of our model on low-powered devices like the Raspberry Pi