0% found this document useful (0 votes)
194 views

ZTM Next - Js Course Code Guide

The document provides guidance and code examples for building applications with Next.js. It outlines several master projects, including building a coffee store directory app and a video discovery app. It covers key Next.js concepts like routing, data fetching, deployment and optimization. Code repositories and live demos are linked for each project. Frameworks and APIs discussed include React, Next.js, Framer Motion, Foursquare Places API, Unsplash API and YouTube Data API.

Uploaded by

Rayan Allali
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
194 views

ZTM Next - Js Course Code Guide

The document provides guidance and code examples for building applications with Next.js. It outlines several master projects, including building a coffee store directory app and a video discovery app. It covers key Next.js concepts like routing, data fetching, deployment and optimization. Code repositories and live demos are linked for each project. Frameworks and APIs discussed include React, Next.js, Framer Motion, Foursquare Places API, Unsplash API and YouTube Data API.

Uploaded by

Rayan Allali
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 14

Complete NextJS Developer: Zero to Mastery

Course Guide + Code


For more courses, resources and workshop, visit https://zerotomastery.io
Github Repositories:
● Github Repo for Discover Videos (NextFlix)
● Github Repo for Discover Coffee Stores (Coffee Connoisseur)

Apps we will deploy:


● https://discovery-coffee-stores.vercel.app/
● https://discover-coffee-stores.netlify.app/
● https://discover-videos.vercel.app/

Master project #1: Build your first Next.js app | Coffee Connoisseur

Create a Next.js app: Zero Config


● NPX Node.js Package Runner
● Yarn Package Manager
● NPM
● Node.js Download
● Next.js Docs Getting Started

_app.js Solution with Footer


● Footer MDN

What is Fast Refresh?


● Fast Refresh

What are CSS modules?


● CSS Modules

App background
● https://meshgradient.com/
● Unique Mesh Gradient Used

Mobile First Development & Banner Component Styling


● https://css-tricks.com/how-to-develop-and-test-a-mobile-first-design-in-2021/
● CSS Variables

Next.js Head Component


● Next Head
● Head MetaData

Master project #1: Routing with Next.js | Coffee Connoisseur

Routing in Next.js
● https://nextjs.org/docs/routing/introduction
● https://developer.mozilla.org/en-US/docs/Web/API/History_API
● https://reactrouter.com/

What is Dynamic Routing


● https://nextjs.org/docs/routing/dynamic-routes

Add route using Link Component


● https://nextjs.org/docs/api-reference/next/link
● https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a

Master Project #1: Styling in Next.js

Next.js Image component


● https://nextjs.org/docs/api-reference/next/image
● https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img

Setup Fonts
● https://fonts.google.com/specimen/IBM+Plex+Sans?query=ibm+plex+sans

Load Fonts on the page


● https://nextjs.org/docs/basic-features/font-optimization

Document in Next.js
● https://nextjs.org/docs/advanced-features/custom-document

Hydration, SEO and Different Rendering Techniques in Next.js

Plain React vs Next.js app


● CodeSandbox Next.js App:
https://codesandbox.io/s/nextjs-app-nostalgic-northcutt-p9vkz
● CodeSandbox React App:
https://codesandbox.io/s/reactapp-goofy-dijkstra-luy9k-luy9k

How Pre-rendering helps with Performance


● https://web.dev/content-delivery-networks/

Client Side Rendering (CSR) in Next.js


● https://nextjs.org/docs/basic-features/data-fetching#fetching-data-on-the-client-sid
e
Project #1: Static Coffee Store Pages
Card Component Styling
● https://hype4.academy/tools/glassmorphism-generator
● https://github.com/kulkarniankita/discovery-coffee-stores/blob/main/components/c
ard.module.css
● https://github.com/JedWatson/classnames

Grid Layout For Card Component


● https://github.com/kulkarniankita/discovery-coffee-stores/blob/main/styles/Home.m
odule.css
● https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Grid_Layout

Next.js: next.config.js Use Unsplash Image


● https://nextjs.org/docs/api-reference/next.config.js/introduction

Default Pre-rendering in Next.js


● https://nextjs.org/docs/basic-features/data-fetching#getstaticprops-static-generatio
n

Implement Static Site Generation (SSG)


● https://nextjs.org/docs/basic-features/data-fetching#getstaticprops-static-generatio
n

Characteristics of Get Static Props in Next.js


● https://next-code-elimination.vercel.app/

Get Static Paths in Next.js


● https://nextjs.org/docs/basic-features/data-fetching#getstaticpaths-static-generatio
n

Fallback: true
● https://nextjs.org/docs/basic-features/data-fetching#fallback-true

Coffee Store Page Styling


● https://github.com/kulkarniankita/discovery-coffee-stores/blob/main/styles/coffee-st
ore.module.css
● https://fonts.google.com/icons

Setup Foursquare Account


● https://developer.foursquare.com/
● https://developer.foursquare.com/docs/places-api-getting-started
● V2: https://developer.foursquare.com/reference/rate-limits-v2
● Latest Version: https://developer.foursquare.com/reference/rate-limits
Foursquare Places API Playground
● V2: https://developer.foursquare.com/reference/v2-venues-search
● Latest Version: https://developer.foursquare.com/reference/places-nearby
● https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API
● https://developer.foursquare.com/reference/versioning
● V2: https://developer.foursquare.com/reference/authentication-v2

Foursquare Places API


● V2: https://developer.foursquare.com/reference/v2-venues-search
● Latest Version: https://developer.foursquare.com/reference/places-nearby

Fetch API Async Await


● https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API

Environment Variables in Next.js


● https://nextjs.org/docs/basic-features/environment-variables

Setup Unsplash API


● https://unsplash.com/

Invoke Unsplash API for Coffee Store Images


● https://unsplash.com/developers
● https://unsplash.com/documentation#search-photos

Update Coffee Store Library with Images


● https://github.com/unsplash/unsplash-js

Project #1: Coffee Stores by Location

Geolocation API Docs


● https://developer.mozilla.org/en-US/docs/Web/API/Geolocation_API

Using React Hooks


● https://reactjs.org/docs/hooks-intro.html

Client Side Rendering (CSR) Coffee Stores


● https://nextjs.org/docs/basic-features/environment-variables#exposing-environment
-variables-to-the-browser

Use React Context and Why to Use Context?


● https://reactjs.org/docs/context.html
Create Store Reducer in Context
● https://reactjs.org/docs/hooks-reference.html#usereducer

Project #1: Serverless Functions

What are API's?


● https://nextjs.org/docs/api-routes/introduction

Hello World API route


● https://nodejs.org/api/http.html#class-httpserverresponse
● https://nodejs.org/api/http.html#class-httpincomingmessage

Create a Serverless Function for Getting Coffee Stores


● https://vercel.com/docs/runtimes#official-runtimes/node-js

Serverless Functions inside Get Static Props


● https://nextjs.org/docs/basic-features/data-fetching#write-server-side-code-directly

Project #1: Data Storage Using Airtable

What is Airtable
● https://airtable.com/

Airtable Library
● https://github.com/airtable/airtable.js/
● https://airtable.com/api

Basic Coffee Store API / Serverless function


● Postman: https://www.postman.com/downloads/

API Error Handling


● https://developer.mozilla.org/en-US/docs/Web/HTTP/Status
● https://en.wikipedia.org/wiki/List_of_HTTP_status_codes

Project #1: SWR with Client Side Rendering

What is SWR? (State While Revalidate)


● https://swr.vercel.app/

SWR Docs Fetch API


● https://swr.vercel.app/docs/data-fetching

Project #1: Deployment and Build Optimization

Running Your Application Next Build


● https://nextjs.org/docs/deployment

Setting up Github Repository


● https://github.com/

Deployment to Vercel
● https://nextjs.org/docs/deployment
● https://vercel.com/dashboard

What is Netlify?
● https://www.netlify.com/
● https://www.netlify.com/with/nextjs

Netlify Deployment
● https://docs.netlify.com/configure-builds/common-configurations/next-js/

Lighthouse Performance
● https://web.dev/measure/

Master Project: Project Setup | Netflix with Next.js

Setting Up Our Master Project


● https://nextjs.org/docs/getting-started

Setup Fonts
● https://fonts.google.com/specimen/Roboto+Slab?query=roboto+slab
● https://nextjs.org/docs/advanced-features/custom-document

Add Font to _Document


● https://nextjs.org/docs/advanced-features/custom-document

Global App Styling


● https://github.com/kulkarniankita/discover-videos/blob/main/styles/globals.css

Master Project: Netflix Home Page and Video

Banner Component Structure


● https://developer.mozilla.org/en-US/docs/Web/CSS/background-image

Banner Component Button With Font


● https://fonts.google.com/specimen/Roboto+Slab
Icons with Google Fonts
● https://fonts.google.com/icons
● https://nextjs.org/docs/api-reference/next/image

NavBar Component Styling


● https://github.com/kulkarniankita/discover-videos/blob/main/components/nav/navb
ar.module.css

NavBar Router
● https://nextjs.org/docs/api-reference/next/router

NavBar Logo Icons


● https://fonts.google.com/icons?icon.query=expand+more

Card Component Structure


● https://nextjs.org/docs/api-reference/next/image

Card Component Size


● https://github.com/kulkarniankita/discover-videos/blob/main/components/card/card
.module.css

Card Component Image Error


● https://unsplash.com/photos/CiUR8zISX60

Framer Motion with Card


● https://www.framer.com/docs/animation/

Implement Framer Motion with Card Component


● https://github.com/JedWatson/classnames
● https://www.framer.com/docs/gestures/#hover

Section Cards Styling


● https://github.com/kulkarniankita/discover-videos/blob/main/components/card/secti
on-cards.module.css

Card Scaling Feature


● https://github.com/kulkarniankita/discover-videos/blob/main/components/card/secti
on-cards.module.css

Youtube API Overview


● https://developers.google.com/youtube
● https://developers.google.com/youtube/v3/docs/search/list?hl=en
Implement Youtube Search API
● https://github.com/kulkarniankita/discover-videos/blob/main/data/videos.json
● https://developers.google.com/youtube/v3/docs/search/list?hl=en

Data Fetching Technique: Server Side Rendering


● https://nextjs.org/docs/basic-features/pages#server-side-rendering

Serverside Rendering (SSR) Rules in Next.js


● https://nextjs.org/docs/basic-features/pages#server-side-rendering

Youtube API: Google Console Project


● https://developers.google.com/youtube/v3/getting-started
● https://nextjs.org/docs/basic-features/environment-variables

Error Handling for Video Library


● https://developers.google.com/youtube/v3/docs/search/list?hl=en#errors

Popular Videos API Docs


● https://developers.google.com/youtube/v3/docs/videos/list

Implement Popular Videos


● https://github.com/kulkarniankita/discover-videos/blob/main/styles/Home.module.c
ss#L5-L7

Master Project: Authentication with Magic | Netflix with Next.js

What is Passwordless Authentication?


● https://magic.link/
● https://magic.link/docs/introduction/what-is-magic#why-passwordless
● https://haveibeenpwned.com/

Sign-in Header Component


● https://github.com/kulkarniankita/discover-videos/blob/main/styles/Login.module.cs
s

Sign-in Page Styling


● https://github.com/kulkarniankita/discover-videos/blob/main/styles/Login.module.cs
s

What is Magic Links?


● https://magic.link/docs/introduction/decentralized-id
Setup Magic Account
● https://magic.link/docs/home
● https://magic.link/docs/login-methods/email/integration/web
● https://magic.link/docs/api-reference/client-side-sdks/web

Install Magic in App


● https://magic.link/docs/login-methods/email/integration/web

Magic SDK (continued)


● https://nextjs.org/docs/basic-features/environment-variables#exposing-environment
-variables-to-the-browser

Magic Docs For Login


● https://magic.link/docs/api-reference/client-side-sdks/web

Magic Implementation
● https://magic.link/docs/api-reference/client-side-sdks/web#loginwithmagiclink

Magic SDK Storage and Routing


● https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API

Routing Delay with Login


● https://nextjs.org/docs/api-reference/next/router#routerevents

SignOut a User
● https://nextjs.org/docs/api-reference/next/link#if-the-child-is-a-custom-component-
that-wraps-an-a-tag

Loading Component
● https://projects.lukehaas.me/css-loaders/

Master Project: Incremental Static Regeneration | Netflix with Next.js

Create Dynamic Route: Video Id Page


● https://nextjs.org/docs/routing/dynamic-routes
● https://nextjs.org/docs/api-reference/next/link#if-the-route-has-dynamic-segments

Connect Banner Component


● https://nextjs.org/docs/api-reference/next/router#userouter

React Modal Docs


● https://www.npmjs.com/package/react-modal
● https://reactcommunity.org/react-modal/accessibility/
● https://reactcommunity.org/react-modal/
Modal Component Styles
● https://github.com/kulkarniankita/discover-videos/blob/main/styles/Video.module.cs
s

Implement Youtube API Player & Docs


● https://developers.google.com/youtube/player_parameters#Parameters

What is Incremental Static Regeneration?


● https://nextjs.org/docs/basic-features/data-fetching#incremental-static-regeneration

YouTube Quota Limit: Test Data


● https://developers.google.com/youtube/v3/getting-started#quota

Master Project: Hasura GraphQL | Netflix with Next.js

Why GraphQL
● https://developers.google.com/youtube/v3/docs/search/list

What is GraphQL
● https://graphql.org/

GraphQL Example
● https://api.spacex.land/graphql/

GraphQL Query vs Mutation


● https://graphql.org/learn/queries/

What is Hasura
● https://hasura.io/

Hasura Create PostGres DB


● https://hasura.io/pricing/

Hasura DB Architecture
● https://magic.link/docs/api-reference/client-side-sdks/web#getmetadata

Query Live Hasura Server with Environment Variables


● https://nextjs.org/docs/basic-features/environment-variables#exposing-environment
-variables-to-the-browser
User Roles: Why JWT (JSON Web Tokens)
● https://hasura.io/docs/latest/graphql/core/auth/authorization/common-roles-auth-ex
amples.html

What is JWT?
● https://jwt.io/

Master Project: Authentication with Hasura | Netflix with Next.js

Login API Magic Server Side SDK


● https://magic.link/docs/api-reference/server-side-sdks/node

Login API JWT (JSON Web Token) Docs


● https://www.npmjs.com/package/jsonwebtoken

Login API Overview and Cookie


● https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies
● https://www.npmjs.com/package/cookie

Login API Set Token Cookie Testing


● https://developer.mozilla.org/en-US/docs/Glossary/Response_header

Master Project: Ratings Service | Netflix with Next.js

Like and Dislike Button Styling


● https://github.com/kulkarniankita/discover-videos/blob/main/styles/Video.module.cs
s#L114-L137
● https://github.com/kulkarniankita/discover-videos/tree/main/components/icons

Stats API Overview with JWT Verification


● https://github.com/auth0/node-jsonwebtoken#jwtverifytoken-secretorpublickey-opti
ons-callback
● https://jwt.io/

GraphiQL: Insert and Update Mutation


● https://hasura.io/docs/latest/graphql/core/databases/postgres/mutations/update.ht
ml#increment-decrement-int-columns

High Resolution Images in the App


● https://stackoverflow.com/questions/2068344/how-do-i-get-a-youtube-video-thumb
nail-from-the-youtube-api
Cookies inside SSR (ServerSide Rendering)
● https://nextjs.org/docs/basic-features/data-fetching#getserversideprops-server-side
-rendering

Next.js 12: The New Features

NextJS 12: Middleware Introduction


● https://nextjs.org/docs/middleware

NextJS 12: Middleware Lets Try it Out


● https://nextjs.org/docs/middleware#execution-order
● https://nextjs.org/docs/api-reference/next/server#nextmiddleware

NextJS 12: Middleware Implementation Continued


● https://nextjs.org/docs/api-reference/next/server#nextresponse

Master Project: Deployment | Netflix with Next.js

Create Github Repo


● https://github.com/new

Deployment To Vercel
● https://vercel.com/dashboard

Run Production Next Build


● https://nextjs.org/docs/deployment

Professional Local Setup

Node.js install
● https://nodejs.org/en/

Install Node.js and Manage multiple Node.js versions


● https://nodejs.org/en/download/
● https://github.com/nvm-sh/nvm/blob/master/README.md

Install Visual Code


● https://code.visualstudio.com/

Postman
● https://www.postman.com/downloads/
For more courses, resources and workshop, visit https://zerotomastery.io

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy