This is a solution to the Entertainment web app challenge on Frontend Mentor. Frontend Mentor challenges help you improve your coding skills by building realistic project.
Users should be able to:
- View the optimal layout for the app depending on their device's screen size
- See hover states for all interactive elements on the page
- Navigate between Home, Movies, TV Series, and Bookmarked Shows pages
- Add/Remove bookmarks from all movies and TV series
- Search for relevant shows on all pages
- Bonus: Build this project as a full-stack application
- Bonus: If you're building a full-stack app, we provide authentication screen (sign-up/login) designs if you'd like to create an auth flow
- React
- TypeScript
- Tailwind CSS
- Next.js
- Next Auth
- Prisma
- PostgreSQL
- React Hook Form
This was the first time I worked on a full-stack web application, so I got learn a lot about interacting with databases. I built the UI from the Figma file, and implemented all of the functionalities using Next.js
and Tailwind CSS.
I learnt how to use Prisma
to interact with both a local sqlite
database and a deployed postgresql
database. I also learnt how to implement user authentication with custom log-in/sign-up pages using next auth.
I learnt how to use react hook form
to manage form data and validate the form values. I also learnt how to implement a theme switch using Tailwind CSS
and next-theme.
In all, this was a great learning experience for me as a frontend engineer.
I still intend on continuing this project and expanding on some of it's features. I plan on adding an external movie API, as I'm currently making use of a dummy local JSON file. Then I would include some other features like watching videos and seeing more details about the movies.
- Full Stack Authentication with Next-Auth and Next.js 13: All You Need to Know - This helped me while implementing the Authentication for the web app. I'd recommend it to anyone trying to laern authentication with Next Auth.
- Website - Victor Williams
- Frontend Mentor - @victorcodess
- Twitter - @victorwill__