Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
Next.js Course: Build a Production-Ready Movie App Project
Rating: 4.6 out of 5(16 ratings)
7,223 students

Next.js Course: Build a Production-Ready Movie App Project

Build Real-World Apps with Next.js, Tailwind CSS, Material UI, and TypeScript—Starting with a Dynamic Next.js Project.
Created byVapa Academy
Last updated 10/2024
English
English [Auto],

What you'll learn

  • Build A Fully Functional Movie App Using Next JS And TMDB API
  • Master Core Next JS Concepts Like Server-Side Rendering (SSR) And Static Site Generation (SSG)
  • Implement Responsive Designs Using Tailwind CSS
  • Learn To Create Modern, Stylish Components With Material UI
  • Integrate TypeScript For Type-Safe And Scalable Application Development
  • Handle API Routes And Data Fetching In Next JS
  • Develop A Dynamic Search Feature With Real-Time Results
  • Build Pagination, Filtering, And Advanced Layouts For Movies And TV Shows
  • Deploy Projects To Vercel For Live, Production-Ready Applications
  • Optimize Apps For Responsiveness Across Mobile And Desktop Devices

Course content

1 section67 lectures8h 7m total length
  • Next JS Movie Web App Project Overview - Live Demo5:35

    Explore a live demo of a production-ready Next.js movie app built with TypeScript, context API, and Daisy, featuring a carousel, in cinemas, top rated, tv shows, and search pages.

  • Next JS Movie Web App Project : Source Code0:04
  • Project and Theme Setup Part - 19:40

    Follow step-by-step setup to create a Next.js production-ready movie app, including creating a TypeScript project with ESLint and Tailwind, integrating Daisy UI, configuring app router, and launching a dev server.

  • Absolute Routes Part - 24:55

    Explore Next.js app routing by structuring the app folder with page.tsx to create pages like /movies and /tv-shows, and preview dynamic routing in future videos.

  • Nested Route and Dynamic Route Part - 36:41

    Explore nested and dynamic routing in Next.js by building movie and TV show detail pages, using square bracket parameters and page.tsx to render dynamic content.

  • Layout Part - 48:48

    Master building a shared navbar across all Next.js pages using the app folder and layout.tsx. Render page content via the layout's child prop to keep headers consistent.

  • Navbar Part - 55:51

    Improve a production-ready movie app by building a responsive Daisy UI navbar with home, explore, and TV shows, including a dropdown and mobile collapse.

  • Navbar Adjustments for Mobile Screen Part - 68:14

    Adjust the navigation bar for mobile screens, making links routable to movies and TV shows with href anchors, and implement a responsive two-menu navbar using Tailwind breakpoints.

  • Navbar Input Field Part - 73:39

    Add a search bar to the navigation using sailboat UI tailwind inputs with an icon. Create a search box TSX component and wire it to the nav bar.

  • React Context API Part - 82:55

    Learn to create a master context with React's context API, organize a context folder, export the main context, and set up a provider with an object-based context value.

  • TMDB API Part - 96:13

    Learn to fetch TMDB movie data via the API, obtain an API key, test with curl and postman, and integrate the key into a Next.js context for movie cards.

  • Fetch Movie Data for Context API Part - 109:09

    Set up and fetch movie or tv data using a context api, managing loading and error states with useEffect and fetch, including an api key.

  • Simple Banner Section Part - 119:11

    Build a banner section component in a Next.js project and integrate a Daisy UI carousel with proper image handling. Configure image domains and wrap children to fix context errors.

  • Dynamic Banner Page Movie Type Part - 127:25

    Create a dynamic banner system by extracting a banner single component, fetching and mapping 20 movies from a master context, and typing banner props with a movie interface in TypeScript.

  • Global Type Safely for Each Movies Part - 135:39

    Define a movie type in TypeScript with key fields like id, title, original_title, backdrop_path, poster_path, overview, genre_id, release_date, vote_average, and vote_count, then access the array to build a movie slideshow.

  • Custom Function for the Banner Slider Part - 149:53

    Add a banner slider with current item, progress, countdown states, and implement useEffect with an interval to cycle items, update progress and countdown, and pass item index prop.

  • Custom Countdown Progress Circle for Banner Part - 154:36

    Use the useEffect hook to drive a five-second countdown with setInterval, cycling banner pages 1–6 and back to 1, with CSS for sliding animation.

  • Banner Button Optimized Part - 162:19
  • Banner BG Banner Poster Banner Gradient Overlay Part - 176:15

    Build a production-ready movie app with Next.js by implementing a dynamic banner and carousel, using the Next.js image component with responsive sizing and a gradient overlay for readable text.

  • Banner Details Part - 187:33

    Create a responsive Next.js banner with a poster image and text panel, using alt text set to the movie title, a movie overview, and vote counts for a production-ready app.

  • Rating Element from MUI Part - 1910:36

    Install and configure the Material UI rating in a Next.js movie app, show a tooltip with vote average divided by two, and render a read-only five-star rating with 0.5 precision.

  • Second Slider Part - 208:33

    Build a three-item snapping carousel in a Next.js project by creating slider and slider container components, using daisy ui carousel, and preparing for data fetching in a future step.

  • Slider Data Fetched Part - 218:29

    Fetch movie data for a slider via a context and render dynamic slider items. Map over the data, destructure movie props, and adjust tailwind margins and image size to 500.

  • Slider Customization Part - 224:31

    Customize the movie slider to a production-ready look by wrapping it in a link and using next/image with width 250 and height 350, plus overlay and total votes display.

  • Slider Styling Part - 239:08

    Style a movie slider card with a bottom tooltip for vote average and a five-star rating. Add hover overlays with opacity and translate transitions for a production-ready Next.js movie app.

  • Card Group Containers Data Fetch Part - 249:15

    This lecture adds a card group container to display top rated movies, builds a card container to fetch and render movie cards, and connects them to the master context.

  • Griding The Card Group Part - 254:06

    Fetch data with useEffect from the context API and render a streaming movie or tv card grid with a responsive layout.

  • Prop Drilling Media Into TV and Movie Card Part - 267:21

    Learn to build a production-ready movie app by filtering movies by poster path, mapping results, and rendering movie and TV show cards through reusable components in a Next.js project.

  • Movie Cards Part - 279:02

    Style movie and tv cards with Daisy card styling, filter out posters, and implement hover shadows; render Next.js images with media.title alt text, and truncate long titles to 16 characters.

  • Finishing The Movie Card Part - 285:08

    Add a card container for top rated movie cards, fix required props, and display vote counts with a read-only rating and a tooltip showing the vote average.

  • Setting Up The Page Context Part - 294:07

    Implement page context to power top and bottom pagination in the cart container, using a tailwind-based pagination tsx component and a number page state with a default of one.

  • Conditionally Rendering The Pages Part - 309:09

    Learn to conditionally render pagination in a Next.js production-ready movie app using a sailboat UI pagination component, use context, and implement previous/next with plus/minus two pages.

  • Make The Pagination Functional Part - 318:52

    Implement functional pagination by wiring onClick to setPages with previous value logic and plus/minus navigation. Highlight the current page with data-tip and theme styling.

  • Updating States and Context Type Part - 329:44

    Upgrade the context API and its types to manage single movie, search results, slider data, similar movies, details, and movie ID with typed arrays for a production-ready movie app.

  • Update The Default Context Part - 336:30

    Update the default values in the context api by defining arrays for search results, data, and similar movies, a true loading flag, a null error, and default movie details.

  • Update The Fetch API for The Context Part - 348:54

    Update the fetch API for the context part by building async data fetching with useEffect, handling now playing and search endpoints, and updating slider data.

  • Introduction to TABS Part - 356:01

    Build a production-ready movie app interface in next.js by wiring the explore page with a tabs UI and an active tab state using useState.

  • Adding Handler to Active Tabs Part - 368:26

    Add handlers to each tab to switch the active tab dynamically in a Next.js movie app, enabling navigation between popular and upcoming tabs with dynamic active styling.

  • TV Show Page Part - 378:26

    Replicate the movie page to build the tv show page, using the context API to set details and streaming type to tv, showing tv shows on the air with pagination.

  • TV Show Cards Part - 387:44

    Create a dynamic TV show card in a Next.js project by using a fetched image URL and TV show title as alt text, with hover shadows, transitions, and tilt effect.

  • TV Show Type for The TV Card Part - 3910:08

    Build a production-ready movie app card in a Next.js project by implementing a TV show card with hover gradients, vote counts, rating, and TV-specific fields.

  • Details Movie Page Part - 408:18
  • Detailed Movie Page Functionality Part - 419:34

    Configure useEffect hooks to fetch movie data, credits, and scene galleries; derive genre names and featured crew. Implement a dialog-based image viewer with close and reset behavior.

  • Data Drilling Into UI Components Part - 428:37

    Builds a TV show header component with movie, genre name, and featured crew props, plus a handle open modal action; uses Next.js image and a gradient overlay.

  • Media Details Banner in Detailed Movie Page Part - 438:37

    Define a tv show header props interface with movie, genre name, featured crew, and a modal handler; then render a next.js image backdrop with a gradient overlay and absolute-positioned content.

  • Rendering Data Into Media Details Component Part - 449:37

    Render a responsive media details component in a production-ready next.js movie app by conditionally displaying poster and backdrop, styling typography, rating, and genre badges.

  • Finishing The Media Details Component Part - 456:11

    Finish the media details component by dynamically rendering the featured crew: slice the first four members, map them to styled blocks showing name and job, and apply concise UI styling.

  • Intro to Trailer Component Part - 465:40

    Build a production-ready movie trailer section in a Next.js project by creating a trailer component, typing YouTube data with an interface, and mapping videos to display.

  • Intro to YouTube Player Component Part - 475:08

    Build a YouTube video player component for a Next.js movie app using an iframe, dynamic id, and typed React props.

  • Intro to Casting Component Part - 489:08

    Create a Next.js casting component by defining casting props and an actor interface, and render the first ten cast members with profile images, filtering by profile path.

  • Rendering The Casts Part - 495:09

    Customize the cast section with an overlay gradient and centered actor names and roles. Implement a conditional loop to render the cast when length > 0, otherwise show no cast.

  • Adding Animations to The Casting Component Part - 504:00

    Add hover 3d animations to the casting component in a Next.js production-ready movie app by styling the cast card with perspective, 3d transforms, and image scaling for interactive feedback.

  • Intro to Scenes Component Part - 516:08

    Build a production ready static movie scenes gallery in Next.js by creating a scene gallery component with typed props, image handling, and dynamic movie or TV scenes.

  • Finishing The Scenes Component Part - 526:30

    Loop through the seen images using the Next.js image component, applying flex wrap, gap, and hover-enabled scaling. Attach a click handler to open the scene with its file path.

  • Intro to Scene Modal Component Part - 539:02

    Implement a scene modal in a Next.js project by creating a scene modal component, wiring props for the selected image, and handling close actions with a dialog based UI.

  • Intro to Similar Movie Component Part - 547:58

    Create the similar movie component in the component folder, mark it as a client component, and fetch similar movies by movie ID and media type, using loading and error handling.

  • Finishing The Similar Movie Component Part - 556:38
  • Details Page for The TV Shows Part - 569:00
  • Intro to The Footer Component Part - 575:20

    Enhance the production-ready movie app by implementing a semantic footer using Daisy components, adding tooltips for share, subscribe, and like, and integrating it into the layout alongside the navbar.

  • Make the Navbar Conditional Base on Current Path Part - 588:09

    Implement an active navbar by tracking the current path with state and updating the active tab using Tailwind classes, click handlers, and a theme toggle.

  • Adjusting the Navbar Style Part - 595:31

    Adjust the navigation bar to be sticky at the top with visibility, padding, and a drop-down driven by a boolean open state; set z-index 20 and incorporate a Daisy SVG.

  • Intro to Theme Toggle Component Part - 609:44

    Create a client theme toggle that loads the stored theme (night or Nord), toggles it, updates document data-theme, and shows a tooltip like switch to light or dark mode.

  • Adjusting the Search Box Component Part - 617:50

    Adjust search bar to fetch movie results with a client component, manage input and results using useState and useEffect, and wire in the master context for URL and API key.

  • Finishing The Search Box Component Part - 623:03
  • Intro to Search Result Component Part - 638:49

    Build and reuse a search results component and search result card in a Next.js app, wiring movie data, images, links, and hover styling to showcase movie details.

  • Correcting The States and Debug Part - 6414:26

    Apply strict type checking in a Next.js movie app by typing states with useState and defining movie and video types. Debug type errors across components to ensure robust data flow.

  • Hosting The Entire Project on Vercel Part - 6510:38

    Learn how to host a Next.js project on Vercel by configuring the repo, pushing to GitHub, and deploying for a universal shareable link, including troubleshooting deployment issues.

Requirements

  • Students Don't Need To Have Any Prior Knowledge To Take This Course; They Will Learn Everything From It.

Description

In this comprehensive Next.js Bootcamp, you will build real-world, production-ready applications from scratch. The core project is a Movie Web App using the TMDB API, where students will learn:


  • Fetching movie data from the TMDB API

  • Implementing a dynamic movie search feature

  • Creating a movie details page with trailers and cast information

  • Building a responsive slider for featured movies

  • Pagination and filtering functionality for movies and TV shows

  • Making the application fully responsive for mobile and desktop using Tailwind CSS and Material UI


This hands-on course covers all essential Next.js concepts, including server-side rendering (SSR), static site generation (SSG), and API routes. You'll enhance your TypeScript skills while learning to manage complex states and props in Next.js.

Additionally, you will master how to style modern web applications using Tailwind CSS for fast, responsive design and Material UI for elegant component libraries.

We’ll also guide you through deploying your project on Vercel, so you’ll be able to showcase your movie app live on the web with a custom domain, setting up production environments effortlessly.

By the end of this course, you'll have the expertise to build and deploy any web application using Next.js, TypeScript, Tailwind CSS, and Material UI—all while deploying production-ready projects to the cloud.


Who this course is for:

  • Beginners Looking To Dive Into Web Development With Next JS
  • Aspiring Developers Wanting To Build Real-World Projects
  • Front-End Developers Seeking To Enhance Their Skills With Modern Technologies
  • Anyone Interested In Learning About TypeScript And Its Benefits
  • Designers Wanting To Implement Functional Prototypes With Tailwind CSS
  • Students Eager To Learn About API Integration In Web Applications
  • Professionals Aiming To Expand Their Skill Set With Material UI
  • Individuals Interested In Building Responsive And Dynamic Web Apps
  • Developers Who Want To Deploy Their Projects To The Cloud
  • Anyone Looking To Create A Portfolio With A Completed Movie App Project