Inspiration

A classic studying method used globally, was that the traditional approach of having someone create relevant questions to the topic, however the person creating the questions was not benefiting from them. Thus we were inspired to maximize efficiency of the method with the addition of Renshu:

What it does

Renshu is a Google Assistant Action that generates easy and enjoyable quiz questions from textbook sections or notes. Simply enter your text with relevant content into our website and then ask Google Assistant to talk to Renshu helper! Renshu helper will ask you a question, and after you think you know the answer, you can prompt it for the correct answer.

Note: the demo uses commit 29173984dd5f7ea48ec1b2b5c29348ca7e14de37, since the remaining commits are incomplete/not stable.

The Process/Pipeline

User opens Renshu website and clicks start. The text to be used is pasted into a form, which is then received in NodeJS and saved as a text file. A cutting edge Python neural question generator is utilized to generate meaningful question answer pairs from this text file, and the data is stored as a JSON file. Then, the user clicks the continue button, and the JSON object is uploaded to a Cockroach cloud database.

The other half of the process is fairly separated. NodeJS and the @assistant/conversation module are used to provide fulfillment for Actions on Google. When the user starts the Google action, the initialization intent is called, and the question answer pairs are retrieved from the database. Then, question and answer are alternated on the Google Assistant based on user input.

What we learned

We learnt many things during this project:

  • How to use CockroachDB and SQL databases
  • How difficult it is to deploy website with machine learning component
  • Importance of organization for dependencies
  • Multithreaded programming to prevent timeouts and reduce runtime
  • Interfacing with Actions for Google

What's next for Renshu

The whole web application and neural question generation algorithm must be deployed online along with the Google Action component. This was causing lots of problems due to resource constraints and timeout issues.

Using CockroachDB

cock CockroachDB's cloud database was used to store all the answers the questions that Renshu made for the student based on his/her notes.

Using node-postgres, we were easily able to integrate the distributed SQL database with our application.

 let pool = new pg.Pool(config);
//inserting each of the questions and their corresponding answers to our cloud CockroachDB database
 let query_statement = `INSERT INTO qna VALUES ('${question_entry}', '${answer_entry}');`;
 pool.query(query_statement);

CockroachDB was the best choice of database for our application since its its consistency and its format matched our application needs.

Thanks to Domain.com for Renshu's address in the Internet

You can visit Renshu at renshu.tech

Built With

Share this project:

Updates