/flixify

Flixify lets you seamlessly explore movies and TV series, add bookmarks, and search across all pages. It offers user authentication along with a theme switch.

Primary LanguageTypeScript

Frontend Mentor - Entertainment web app solution

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.

Table of contents

Overview

The challenge

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

Screenshot

Links

My process

Built with

  • React
  • TypeScript
  • Tailwind CSS
  • Next.js
  • Next Auth
  • Prisma
  • PostgreSQL
  • React Hook Form

What I learned

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.

Continued development

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.

Useful resources

Author