This is an AI-powered educational chatbot for memorizing knowledge. Users can play with it through Facebook Messenger.
https://github.com/sruan2/QuizBot/wiki
QuizBot app is written in Python 3 and deployed on our AWS server (under the ubuntu account). We use Python Flask to build a webhook for Facebook's Messenger Bot API. It is based on a python template from: https://tutorials.botsfloor.com/creating-your-messenger-bot-4f71af99d26b.
To enter the virutal environment, run source venv/bin/activate
on the AWS server. To exit the virtual environtment, run deactivate
We combined all the commands needed to start the application in a script on our server. So to start the application, log on to aws, enter a screen, and simply run ./start_server.sh
.
Contact Sherry if you need to access the AWS server. Before using the server, you should be familiar with basic Linux commands such as screen and ssh.
Flash card front end is written in html, css, and javascript and is converted to a mobile app using Cordova. Its source code is in flashcard/www/
.
The backend is written in Python Flask and hosted on our AWS server. Its source code is in flashcard_backend/
.
The (stable) version is at https://www.facebook.com/quizzzbot/
The dev version is at https://www.facebook.com/quizzzbotdev/
We have not yet published our app, so the testers need to be added to Facebook Developer Testers. To keep updated with Facebook's latest app policy, check https://www.facebook.com/groups/messengerplatform/
The flash card app is deployed on Testflight and can be easily installed for iPhone users.
We currently have three types of questions:
Science questions from Allen SciQ: http://data.allenai.org/sciq/
Safety questions from https://www.mysafetysign.com/safety-quiz (data scraping done by Zhengneng)
GRE questions from http://gre.kmf.com/practise (data scraping done by Sherry)
All the 150 questions are manually reviewed by us to ensure quality.
Question data (and the scripts to scrape them) are in QAdataset/
The chatbot has the following functionalities:
We are experimenting different algorithms (i.e., spaced repetition) to sequence learning materials to maximize the learning outcome.
The chatbot can ask questions related to a specific topic, and grade the user's answers using a sentence similarity algorithm.
This chatbot utilizes gensim dot2vec for question similarity calculation and moving forward more methods will be tested for this feature. Ultimately, we allow user select topic based upon their interest.
This chatbot has a database setup for user's information storage. Questions which have been asked and the associated performance score will be saved. Leaderboard will show the top 10 users by sorting their total scores descendingly.
We use Google cloud speech recognition API and ffmpeg to enable the user to send voice clips.
The chatbot can answer simple questions asked by users. It is implemented using a retrival model.