/ap-questions

1st Place Winner at PantherHack 2021 out of 100+ participants and teams

Primary LanguageTypeScriptMIT LicenseMIT

AP Questions

View, filter, create, and like crowd-sourced AP questions!

1st Place Winner at PantherHack 2021!

Build Code Quality

Links

Inspiration

A challenging part of studying for AP courses is finding quality questions from a reliable source. Generally, the trusted sources of questions have a limited supply of questions or only have questions for a certain AP course, making it difficult to rely on them for all studying.

What it does

This website attempts to tackle the issue mentioned above by crowd-sourcing AP questions from the community and allowing users to filter questions by multiple metrics such as most likes. Users can not only answer questions and check their accuracy but also create their own questions to share with the community.

How I built it

I built the website with React (w/ TypeScript), Redux, Firebase, and Material UI. React provides the architecture of the application, Redux maintains the state, Firebase provides a fully functioning backend and database, and Material UI provides styling.

Challenges I ran into

My main challenge was setting up Firebase with Redux. The process took up a lot of time and required thorough research through multiple libraries' documentation.

Another challenge was efficiently styling the application. I did not have much time to thoroughly style the application, so I generally relied on components provided by Material UI.

Accomplishments that I'm proud of

I'm proud that at least an MVP (Minimum Viable Product) of the entire website was completed. I'm also glad that I was able to deploy the website and set up an entire CI/CD pipeline with GitHub Actions.

What I learned

By building this application, I was able to greatly increase my knowledge about Firebase and Firestore. I had used React, Redux, and Material UI in the past extensively, but I had not used Firebase that much.

What's next for AP Questions

Adding more features! Some of the most exciting ones include the ability to edit questions and the ability to create sets of questions.