Quizton

A crowdsourced test bank to democratize test preparation

TIMELINE
Jan 2021 - Jun 2021

While Quizton might not be as pretty as my other sites, it has had the greatest impact on my career as a software engineer. In the summer before sophmore year, I wanted to build a crowdsourced test bank, with the hopes that a large database of questions could be tremendously influential in making test preparation accessible. I was especially fond of the idea of generating quizzes based on a students weaknesses. A crowdsourced test bank would certainly help with that.

I first attempted to write Quizton with Django, and I did. I just did not like how 'outdated' the site felt since it did not do client side navigation and required hard refreshes. During sophmore year, I had the opportunity to propose a project and get paired with a mentor for Google. I pitched my idea for Quizton and got paired with Jack O'Brien. Feeling hip, I decided to use the latest technologies on the block: React.js, Next.js, Firebase, and TailwindCSS. With guidance from Jack, my teammates (Ryan Poon and Haotian Gan) and I were able to create a basic prototype.

I wanted to build a search engine to make the testbank more useful. So, I read Information to Information Retrieval by Manning & et al. By applying the concepts I learned in each chapter, I improved the search engine quite a bit. However, I ended up abandoing my custom implementation because the Firebase costs were getting too high. I swapped over to using Elasticsearch, which I still use for many of my projects to this very day.

Through working on Quizton, I became magnitudes better at React. I reverse-engineered Google Forms and built a cool quiz creation form that showed preview of the question. The form became noticeably slow, so I looked into performance improvements. I learned how to use the React Dev Tools to identify bottlenecks and learned about using React.memo, React.useCallback, and React.useMemo to memoize in order to prevent rerenders.

At the end of the project, Ryan, Haotian, and I pitched our project to DYDC Young Sharks and became finalists. While it would've been sweet to win, I can definitely say the time I spent on Quizton was well worth it. Quizton helped me land an internship at Provecho , where I got offered co-founder position but ultimately settled for decided to only be a founding software engineer.