We arrived at HackDavis having no idea what to build and only a vague idea of what software we wanted try to hack. After looking at various documentation for the APIs that would be present, we found Watson's innovative cognitive abilities to be interesting. So we decided to use it. When Teach for America gave its talk during the opening ceremony, we felt that we had a solid solution to the problem of tailoring teaching material based on grade level. Using Watson, we set out to hack a solution to education.

What it does uses Watson's AlchemyAPI to scrap content from Wikipedia pages and generate questions for the user to answer. The user can select a topic and the web application will query our database to output questions based on the specified topic. For now, it only scraps scientific content, and our mathematical questions were generated using a Java program. But the combined content is able to give our database a solid basis of questions to query from.

How we built it

We split the tasks up into parts: frontend, backend, and data parsing. We each worked on a separate task and merged our files at the end to create our application. The frontend was built using HTML, JavaScript, and some CSS and uses the Rails controller to query the backend. The backend was built on a Rails app and uses Postgresql to hold the database. The data parsing was done with a Python script that uses the Watson AlchemyAPI to get content. The content were then exported as JSON files to parse and insert into the database.

Challenges we ran into

Postgresql and Ruby on Rails were not inserting into the database as expected: only one tuple was stored into the database even though the program sets variables to different values through each iteration. We also had trouble formatting the Wikipedia content into feasible questions. Linking the front and backend was also troublesome. Possibly the hardest part was getting Rails and Postgresql working on, and in the end, only two computers had it running; also setting up the database and Rails app from scratch was difficult.

Accomplishments that we're proud of

We made a decent prototype and accomplished almost all the tasks we set out to do. We also equipped our prototype with enough content to expand and be more robust should we develop it more in the future. It's also flexible in a way that, with a little more development, it can work with any topic you give the application.

What we learned

We learned more about Ruby on Rails, how to deploy a Rails app, more about JavaScript, connecting the front and backend to allow interaction, and developing in a team.

What's next for

We're planning to add sub-categories, varying difficulties, different question formats, and implement a better UX/UI.

Share this project: