
About it
This project was created as an attempt to gain experience building a complex multi-page, full-stack app, and includes features such as user authentication, keeping record of user's answered questions, animations for an engaging user experience, and hundreds of questions to answer.
How it's built
- It is built on SvelteKit (ported from Next.js), but initially had a bunch of issues at first, which I fixed a few months later.
- Initially I used a json file-based storage engine, which required complex filtering to display data in a user friendly way on the front end.
- I fixed this by adding a database storage engine, which allows for performing complex data filtering more easily.
- I wanted to implement a questions pool, by storing 5 questions at a time in the browser's local storage
- But this also required complex Javascript logic to keep the UI in sync with the user's local storage and the backend.
- I realized since I am only rendering one question at a time, I don't need a complex question pool
- I fixed this issue by submitting the user's answer straight to the backend, and only fetching new questions on the client when a user has answered a question
- This eliminated need for complex client side Javascript, resulting in a smaller client bundle.


