About this project
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.
This project was built using
- Typescript
- Next.js
- Bun
- Hono
- Prisma.js
- React Query
- Framer Motion
- Headless UI
- Tailwind CSS
Technical details
- It is built on 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.