Урок 1.00:03:34
Project Overview
Урок 2.00:08:00
How to get most of this course + resolve issues
Урок 3.00:10:54
Application Initialization
Урок 4.00:10:00
Create index page
Урок 5.00:11:02
Functional Components
Урок 6.00:05:22
Class Components
Урок 7.00:19:05
Reusable Components
Урок 8.00:04:59
Some basics styles
Урок 9.00:11:22
What is the State
Урок 10.00:07:42
Let's mutate State
Урок 11.00:05:30
Common mistakes with State
Урок 12.00:10:07
State of functional component
Урок 13.00:14:12
What are props
Урок 14.00:23:15
How web app works
Урок 15.00:19:02
Iterate over list of data
Урок 16.00:06:27
Shorten Function
Урок 17.00:07:12
Move movie data to Store
Урок 18.00:16:05
Get movie data + Promises
Урок 19.00:12:43
Use Effect
Урок 20.00:07:00
Get movies in class component
Урок 21.00:06:31
Catch error in Promise
Урок 22.00:11:50
Get initial props
Урок 23.00:05:50
More pages, more links
Урок 24.00:11:49
App container
Урок 25.00:08:58
App container props
Урок 26.00:08:44
Detail page of movie
Урок 27.00:11:21
Get movie by id
Урок 28.00:02:42
Fix links in detail page
Урок 29.00:06:23
Finishes detail page
Урок 30.00:06:16
Get images from movies
Урок 31.00:14:59
Display cover images
Урок 32.00:08:11
Get categories
Урок 33.00:09:55
Modal implementation + Close Modal
Урок 34.00:06:43
Form to create movie & Containment
Урок 35.00:15:00
Get values from the form
Урок 36.00:12:07
Handle genre changes
Урок 37.00:14:20
Handle form submit
Урок 38.00:15:17
Close Modal & Uncontrolled data functionality
Урок 39.00:07:45
Provide ID of movie
Урок 40.00:12:25
Base server implementation
Урок 41.00:18:29
More about Server
Урок 42.00:11:15
Getting movies from server
Урок 43.00:06:36
Get movie by ID
Урок 44.00:14:56
Saving movies
Урок 45.00:09:22
Delete movie
Урок 46.00:08:08
Edit page for movie
Урок 47.00:14:17
Provide data to Edit page
Урок 48.00:10:30
Final touches on Update movies functionality
Урок 49.00:04:17
Navigation fixes
Урок 50.00:09:28
Starting with filtering
Урок 51.00:10:33
Filtering finished
Урок 52.00:17:06
Styling improvements
Урок 53.00:15:24
API Endpoints
Урок 54.00:13:51
Post endpoint
Урок 55.00:02:12
Section Intro
Урок 56.00:06:00
Project Init
Урок 57.00:09:01
More pages + Header
Урок 58.00:06:33
Base Layout
Урок 59.00:13:22
Styles
Урок 60.00:08:05
Post Data
Урок 61.00:10:04
Portfolio Detail
Урок 62.00:04:58
Get portfolio by ID
Урок 63.00:15:06
Custom server
Урок 64.00:08:01
Next routes
Урок 65.00:05:39
Reactstrap
Урок 66.00:06:32
Fonts
Урок 67.00:05:18
Debugger Updated!
Урок 68.00:17:08
Cleanup + Debugging
Урок 69.00:07:47
Proper layout
Урок 70.00:07:23
Typed JS
Урок 71.00:12:23
Header - part 1 rework
Урок 72.00:10:43
Header - part 2
Урок 73.00:10:36
Base Page
Урок 74.00:05:51
Change to functionals components
Урок 75.00:06:58
Remove _app
Урок 76.00:06:09
Absolute path
Урок 77.00:04:14
Login button
Урок 78.00:17:34
Api functions - part 1
Урок 79.00:10:13
Api functions - part 2
Урок 80.00:14:09
Api functions - part 3
Урок 81.00:03:37
Loading state
Урок 82.00:16:03
Fetch post by ID
Урок 83.00:17:13
useSWR
Урок 84.00:08:00
useSWR by ID
Урок 85.00:02:08
Section Intro
Урок 86.00:08:40
Auth0 Registration
Урок 87.00:07:50
Login API Route
Урок 88.00:12:34
Env Variables
Урок 89.00:09:48
Login Screen
Урок 90.00:08:59
Get login working
Урок 91.00:08:57
Get User
Урок 92.00:09:35
Pass user to layout
Урок 93.00:03:02
Logout
Урок 94.00:09:50
Secret page
Урок 95.00:04:24
Redirect
Урок 96.00:10:59
HOC Start
Урок 97.00:10:09
withAuth HOC
Урок 98.00:11:18
Server side props
Урок 99.00:04:24
Rework server side
Урок 100.00:21:31
withAuth Server side
Урок 101.00:11:09
About Roles
Урок 102.00:16:50
Admin Rights
Урок 103.00:07:54
Admin SSR
Урок 104.00:04:30
ENV Variables
Урок 105.00:03:26
Section Intro
Урок 106.00:13:24
API Server
Урок 107.00:00:53
Git Ignore
Урок 108.00:11:10
Routes and Controllers
Урок 109.00:17:44
Mongo DB
Урок 110.00:05:40
Structural changes in DB
Урок 111.00:16:13
Create portfolio data
Урок 112.00:17:16
Populate DB
Урок 113.00:07:19
Get portfolio by ID
Урок 114.00:11:03
Get Portfolios
Урок 115.00:10:06
Portfolio Card
Урок 116.00:11:03
Base Page Stylings
Урок 117.00:10:20
Get portfolio server side
Урок 118.00:12:45
Get static paths
Урок 119.00:11:54
SSR vs Static
Урок 120.00:08:50
Portfolio "new" page
Урок 121.00:08:23
Submit form
Урок 122.00:06:05
Datepicker
Урок 123.00:13:29
Handle Dates
Урок 124.00:09:26
Disable end date
Урок 125.00:11:41
Api route to create portfolio
Урок 126.00:09:30
Create portfolio endpoint
Урок 127.00:13:37
Testing create portfolio
Урок 128.00:16:40
JWT Middleware
Урок 129.00:09:19
Get access token
Урок 130.00:07:04
Create portfolio from App
Урок 131.00:12:11
Hook function to create portfolio
Урок 132.00:06:28
Hook creator - Api handler
Урок 133.00:10:20
Handle Errors
Урок 134.00:11:52
Portfolio edit page
Урок 135.00:07:06
Pre-fill form with data
Урок 136.00:08:28
Update portfolio on Server
Урок 137.00:14:32
Update on client
Урок 138.00:06:52
Toast messages
Урок 139.00:08:14
Handle errors
Урок 140.00:11:14
Edit and Delete buttons
Урок 141.00:04:19
Delete on server
Урок 142.00:07:58
Delete on client
Урок 143.00:06:47
Delete from state
Урок 144.00:10:44
Check role on server
Урок 145.00:10:48
Dropdown menu
Урок 146.00:12:54
Dropdown menu done
Урок 147.00:10:38
Next 9.4 Updates - part 1
Урок 148.00:06:42
Next 9.4 Updates - part 2
Урок 149.00:03:08
Section Intro
Урок 150.00:08:56
Blog Editor
Урок 151.00:11:15
Blog Server implementation
Урок 152.00:10:34
Blog endpoints
Урок 153.00:07:00
Create blog on server
Урок 154.00:10:45
Create blog from client
Урок 155.00:07:48
Redirect to blog update
Урок 156.00:09:53
Get initial content to blog update
Урок 157.00:09:53
Update blog on server
Урок 158.00:11:45
Update blog from client
Урок 159.00:09:39
Base API
Урок 160.00:14:24
Dashboard page
Урок 161.00:08:18
Fetch blogs by user
Урок 162.00:08:00
Filter blogs
Урок 163.00:12:11
Dropdown in dashboard
Урок 164.00:05:30
Generate options
Урок 165.00:05:30
Slugify title
Урок 166.00:08:23
Update blog
Урок 167.00:11:37
Mutate function
Урок 168.00:13:24
Unique slugs
Урок 169.00:06:12
Delete blog
Урок 170.00:07:35
Blog index page
Урок 171.00:10:13
Display blogs
Урок 172.00:08:57
Link to blog detail + Dates
Урок 173.00:13:29
Blog detail page
Урок 174.00:02:34
Section Intro
Урок 175.00:18:04
Flip the card
Урок 176.00:16:24
About page
Урок 177.00:12:49
Dropdown resizing
Урок 178.00:08:04
Home screen improvements
Урок 179.00:12:12
Active Links
Урок 180.00:03:29
CV Page
Урок 181.00:17:40
Try to get an access token
Урок 182.00:10:08
Get an access token
Урок 183.00:13:04
Get a user
Урок 184.00:03:42
Fix blog by slug
Урок 185.00:06:57
Get blogs with user
Урок 186.00:15:08
Display user
Урок 187.00:02:16
Section Intro
Урок 188.00:06:15
Head title
Урок 189.00:06:15
Index page type
Урок 190.00:11:52
Meta description
Урок 191.00:11:52
Open graph
Урок 192.00:08:36
Canonical
Урок 193.00:11:43
Fonts, images, favicon
Урок 194.00:03:46
More about fonts
Урок 195.00:12:02
Portfolio detail
Урок 196.00:09:35
Portfolio detail data
Урок 197.00:12:43
Change images
Урок 198.00:03:09
Section Intro
Урок 199.00:16:40
Deploying start
Урок 200.00:15:19
API to heroku
Урок 201.00:14:20
Deployment to Heroku
Урок 202.00:07:40
Respond with html page
Урок 203.00:16:22
Testing with PROD api
Урок 204.00:07:28
Small fixes
Урок 205.00:16:47
Deployment to Vercel
Урок 206.00:09:23
Testing Next.js app
Урок 207.00:11:59
Course Ending
Урок 208.00:06:00
Project Init
Урок 209.00:09:01
More pages + Header
Урок 210.00:06:33
Base Layout
Урок 211.00:13:22
Styles
Урок 212.00:08:05
Post Data
Урок 213.00:10:04
Portfolio Detail
Урок 214.00:04:58
Get portfolio by ID
Урок 215.00:15:06
Custom server
Урок 216.00:08:01
Next routes
Урок 217.00:05:39
Reactstrap
Урок 218.00:06:32
Fonts
Урок 219.00:17:08
Cleanup + Debugging
Урок 220.00:07:47
Proper layout
Урок 221.00:08:41
Typed.js Library
Урок 222.00:09:57
Header Integration part 1
Урок 223.00:07:18
Header Integration part 2
Урок 224.00:13:44
Base Page Component and Default Props
Урок 225.00:04:34
Auth Start, Login and Logout Buttons
Урок 226.00:09:03
Auth0 App Creation and Service
Урок 227.00:06:45
Handle Authentication and Callback Page
Урок 228.00:09:02
Callback Page and Redirect User
Урок 229.00:08:44
Google Setup Auth0
Урок 230.00:12:44
Save Tokens in Cookies
Урок 231.00:06:03
Display/Hide Login Buttons
Урок 232.00:15:03
Get Cookies from Server / Client
Урок 233.00:08:04
Inform Header About Authentication
Урок 234.00:12:58
Verify Token Expiration Time Improvement
Урок 235.00:11:25
Auth Debugging & Display User
Урок 236.00:12:32
JWKS verify token signature
Урок 237.00:15:11
JWKS Debugging and Explanation
Урок 238.00:02:12
Decoded Token Fix!
Урок 239.00:06:03
Secret Protected Page
Урок 240.00:08:16
(HOC) High Order Components - Start
Урок 241.00:17:43
withAuth HOC - getInitialProps
Урок 242.00:15:02
Secret Endpoint Server
Урок 243.00:07:11
CheckJWT Intro to Middlewares
Урок 244.00:13:22
CheckJWT Real Middleware part 1
Урок 245.00:11:38
CheckJWT Real Middleware part 2
Урок 246.00:11:38
Axios Auth Headers
Урок 247.00:19:52
Authorise Request in Get Initial Props
Урок 248.00:07:11
Roles in Auth0
Урок 249.00:16:38
HOC to check a Role
Урок 250.00:11:42
Server Side Role Authorization
Урок 251.00:15:27
Different Headers
Урок 252.00:04:56
Portfolio Card Styling
Урок 253.00:11:10
React Simple Form
Урок 254.00:09:42
More Input Types
Урок 255.00:15:01
Formik Intro
Урок 256.00:09:29
Formik Specific Inputs
Урок 257.00:06:04
Formik + Bootstrap
Урок 258.00:08:18
Formik Separate Component
Урок 259.00:14:23
Validate Form with Formik
Урок 260.00:08:28
Date Picker Component
Урок 261.00:10:01
Style Date Picker
Урок 262.00:10:21
On Change Event Explanation
Урок 263.00:05:19
Date Validation
Урок 264.00:13:08
Disable End Date
Урок 265.00:08:04
Portfolio Styling Changes + Small Refactor
Урок 266.00:04:04
Database Changes
Урок 267.00:07:59
MongoDB Intro
Урок 268.00:08:14
Config Folder Dev.js
Урок 269.00:15:22
Book Model + Post Route
Урок 270.00:13:26
Books More Endpoints
Урок 271.00:13:32
Books Routes & Controllers
Урок 272.00:07:13
Portfolio Model
Урок 273.00:07:39
Portfolios Controllers & Routes
Урок 274.00:07:39
Portfolio Update & Delete Endpoint
Урок 275.00:09:52
Get Portfolios on Client Side
Урок 276.00:11:59
Create Portfolio from Client App
Урок 277.00:12:56
Handle Error in Create Form
Урок 278.00:10:42
Fix Validation + Redirect
Урок 279.00:11:31
Portfolio Update Page, Get Portfolio By Id
Урок 280.00:06:21
Initial Values in Portfolio Form
Урок 281.00:12:48
Update Portfolio on Client
Урок 282.00:06:34
Testing Update Functionality
Урок 283.00:09:10
UI Buttons Navigation
Урок 284.00:09:23
Hide Buttons for not Logged in Users
Урок 285.00:09:37
Delete Portfolio Client
Урок 286.00:09:34
Portfolio Modal Intro
Урок 287.00:11:49
Fill Modal with Portfolio Data
Урок 288.00:05:22
Stop Propagation on Click
Урок 289.00:11:19
Sort Date & Hide Initial Date Fix
Урок 290.00:08:31
Blog Listing
Урок 291.00:00:53
Blog Listing Login Button Fix
Урок 292.00:14:48
Slate Editor Intro
Урок 293.00:05:56
Event Handler in Slate
Урок 294.00:12:20
Custom Blocks Slate
Урок 295.00:09:44
Custom Marks Slate
Урок 296.00:20:10
Hover Menu Start
Урок 297.00:20:10
Hover Menu Debugging
Урок 298.00:14:52
Hover Menu Block Buttons
Урок 299.00:11:55
Block Formatting Debugging
Урок 300.00:07:31
Styling Improvement of Editor
Урок 301.00:04:51
Blog Model
Урок 302.00:00:23
Date Fix in Model
Урок 303.00:12:57
POST Blog Endopoint
Урок 304.00:03:21
Get Blog By Id Endpoint
Урок 305.00:09:14
Controll Menu
Урок 306.00:09:55
Save Blog part 1
Урок 307.00:04:45
Save Blog part 2
Урок 308.00:08:24
Save Blog part 3
Урок 309.00:00:47
Serialise & Deserialise Introduction
Урок 310.00:00:47
Serialise Rules Fix
Урок 311.00:10:35
Serialise to HTML
Урок 312.00:08:16
Save Blog Action
Урок 313.00:04:08
Disable Save Button while Saving
Урок 314.00:08:18
Blog Editor Update Page
Урок 315.00:07:36
Initial Value for Blog Editor Page
Урок 316.00:06:36
Redirect After Save
Урок 317.00:15:18
Save Blog - Lock the request
Урок 318.00:07:52
Update Blog Server
Урок 319.00:11:00
Update Blog Client
Урок 320.00:07:04
Save Blog Shortcut
Урок 321.00:09:18
Blog Toaster Messages
Урок 322.00:11:00
User Blogs Dashboard Page
Урок 323.00:09:23
Get User Specific Blogs
Урок 324.00:07:16
Display User Blogs
Урок 325.00:07:16
Dropdown Menu for the Blog Init
Урок 326.00:09:35
Dynamic Options for Dropdown Menu
Урок 327.00:05:00
Dropdown Handlers
Урок 328.00:08:23
Learn about Slug
Урок 329.00:07:49
Publish Draft Blogs
Урок 330.00:07:03
Delete and Get Published Blogs on the Server
Урок 331.00:07:30
Delete Blog from the App
Урок 332.00:10:58
Get & Display Published Blogs
Урок 333.00:05:35
Detail Blog Page - Get Page by Slug
Урок 334.00:15:15
Detail Blog Page Complete
Урок 335.00:12:54
Recap of Section part 1
Урок 336.00:09:21
Recap of Section part 2
Урок 337.00:12:40
About Page
Урок 338.00:08:35
Flipping Card part 1
Урок 339.00:06:05
Flipping Card part 2
Урок 340.00:04:26
Flipping Card part 3
Урок 341.00:10:01
Active Link part 1
Урок 342.00:07:54
Active Link part 2
Урок 343.00:13:35
Dropdown Blogs for Site Owner
Урок 344.00:10:50
Dropdown Blogs Styling Fixes
Урок 345.00:03:10
Set Interval Animation Fix
Урок 346.00:05:17
Dropdown Menu on Smaller Screens Fix
Урок 347.00:02:25
Height of the Image on Smaller Screens
Урок 348.00:07:02
CV Page
Урок 349.00:08:12
Title Explanation
Урок 350.00:02:47
Don't forget about Description
Урок 351.00:04:52
Open Graph
Урок 352.00:08:25
Robots
Урок 353.00:10:08
Cannonical & H1 & alt
Урок 354.00:04:43
Favicon
Урок 355.00:08:10
Small pre-deploy Changes
Урок 356.00:07:51
Setup Environment Variables
Урок 357.00:11:38
Setup Namespace
Урок 358.00:07:35
Mongo DB & Auth0 Production Setup
Урок 359.00:13:25
First Deployment
Урок 360.00:12:43
Performance Improvements - Images & JS
Урок 361.00:05:00
Optimise CSS
Урок 362.00:17:32
Load fonts on Client
Урок 363.00:05:36
Deploy & Test after Fonts
Урок 364.00:10:26
Google Fonts & Deploy
Урок 365.00:13:45
Final Deploy and Test
Урок 366.00:01:39
Header Title Fix
Урок 367.00:01:06
Final Words
Урок 368.00:31:09
Setup Completed Project
I am really grateful.