hittaller.anna@gmail.com

Project details

MyMDb

MyMDb simplifies the process of managing your movie watchlist by providing an easy-to-use platform integrated with the TMDB API to discover, track, and explore a vast collection of movies. From discovering new releases to prioritizing what to watch next, MyMDb offers a comprehensive solution for movie enthusiasts.

Key features:

  • User Management:

    Authentication: Users can easily register and sign in to access personalized features. The user authentication process is done with Firebase Auth.

    Storage of user data: The users' personalized data, including theme colors and movie lists, are stored in Cloud Firestore.

    Forgot password function: Users can easily retrieve a new password in case they forgot their login credentials.

    Customization possibilities: Users can personalize their experience by selecting their preferred theme color, which will be reflected throughout the whole application.

  • Movie Management:

    Creating a watchlist: Users can add movies to their watchlist to keep track of movies they intend to watch.

    Watch Next Selection: Allows users to prioritize movies by selecting them to watch next. These movies are displayed in a separate list to help keep planning the next movie night.

    Individual movie pages: Displays detailed information about the selected movie, including plot summary, cast, ratings, and more. Features a 'More Like This' list to spark interest in similar movies.

    Movie search and discovery: Utilizing the TMDB API, users can search for movies, discover new releases, and explore a comprehensive database of films. With the filtering possibilities for minimum rating and genres, they can retrieve even more relevant results.

    'Trending Now' Carousel: Users can stay updated with the latest trends through a dynamic carousel showcasing the week's trending movies right on top of the main page.

Challenges & solutions:

  • Data management across Firebase and Firestore: Effectively handling user data and performing CRUD operations on movie lists required parallel actions to be executed in Firestore and Firebase. This involved implementing comprehensive data management strategies to ensure seamless synchronization between the frontend and backend.
  • Integration of Pinia for Efficient API Calls and Data Handling: Integrating Pinia was essential for optimizing data handling and minimizing unnecessary API calls to Firebase and TMDB. By leveraging Pinia's state management, I could ensure efficient management of user movie lists, theme colors, and trending movies, enhancing the overall performance and responsiveness of the app.
  • API integration: Implementing the search and discovery function posed challenges within the limitations of the TMDB API. Ensuring optimal results required careful management of API calls and queries, frontend and backend error handling, and minimizing retrieved data to essential fields.

Technologies used:

Nuxt + Nitro Nuxt UI Tailwind CSS
Pinia Zod
Firebase Firebase Auth Cloud Firestore
Formkit Auto-Animate