WikiMe was inspired by our passion for learning. We asked ourselves, how could we make learning fun? We've seen the different quiz generators and thought we could do our own take on it using the free encyclopedia
What it does
WikiMe allows the user to type in a topic of their choice, and generates a quiz based off of the information from the chosen topic's Wikipedia page. There are also 4 preset topics that the user can choose from, if they can't think of a topic.
How we built it
WikiMe uses the Wikipedia API, along with Flask and Scikit-learn, a python library that provides some data science functions, to generate a question, it's answer, along with three incorrect choices to the front end. The front end uses React to format both the landing page and the quiz pages with the information acquired from the back end.
Challenges we ran into
Had to work around the Wikipedia API due to certain functions being very specific .(e.g. donkey auto corrected to monkey). For the front end, designing components that appeal to the user was another big challenge.
Accomplishments that we're proud of
Writing and deploying our first production react app with a fully functioning back end in less than 36 hours was truly an accomplishment that we are proud of. Although we've all had coding experience, this is our first project which we have seen through from start to finish(although we are still not done yet!). In the front end, we are proud of making a simplistic, yet attractive user interface, with alerts and messages that prompt the user with insightful information. In the back end, we are proud of integrating the Wikipedia API, and TF-IDF.
What we learned
We learned how to create the back end using flask, Wikipedia's API, and Scikit-learn. In addition, we learned how to send POST requests between the front and back end to create a modular web application. We also learned how to deploy a web application using services such as Heroku and Netlify.
What's next for WikiMe
The multiple choice options are occasionally really bad selections, such as an option being a number when that wouldn't make grammatical sense. This is one of the areas to improve on. We would also want to add mobile support and ability to view previous question, in order to make the front end a more user friendly experience.