I'm a high-school student. It's the time of the year where we're all reminded how plain boring school is. Often, we are confined to textbook readings and brute-force memorization.

Education is an often underestimated area of concern, especially when it's where change starts. I wanted to make something that allows the ones other than textbook learners to succeed in our school system.

What it does

The goal of Drill is to make interactive learning solutions accessible, efficient, and accurate. Take a textbook or a Wikipedia page, feed it into the page, and a Drill will be ready to run in the blink of an eye! Sending the link to fellow learners allows for multiple parties to join one learning environment.

How I built it

I built the front-end using the React framework styled with the Bulma CSS library. I used Illustrator to create the logo. I used Parcel to build everything into a static assets folder. I used Firebase Hosting to hook up my pages to my domain from

"Behind the scenes", I ran Express on Firebase Functions and used Google's Natural Language API's entity and syntax analysis to break sentences down, generating questions and responses with a single API endpoint. Firebase Realtime Database allowed me to create, store, and run Drills in live-time, without the need for separate WebSockets technology.

Challenges I ran into

Working alone can be draining, and it comes with a lot of time pressure. It's impossible for 30-something hours to illustrate my vision for this project. The essence of the idea itself was already hard to implement in the time constraints. I had to come to peace with this and produce what I can with the time given.

Accomplishments that I'm proud of

  • Came up with the idea in advance!
  • Took advantage of Firebase Database, Storage, and Functions tools
  • Didn't give up on the idea despite difficulties
  • Did it by myself!

What I learned

  • I learned what Natural Language Processing is and how it's useful
  • I learned how Firebase works behind the scenes (and the capability of the Realtime Database)
  • I learned that food and breaks are necessary

What's next for Drill

  • Authentication and user system for easy storing/running of Drills
  • Improved algorithms (speed and accuracy) for the generation of questions
  • Visual and speech recognition as input
  • Uploading files as input
  • Improved UX/UI
  • Much more (open to feedback!)
Share this project: