-
Урок 1.
00:07:54
What you Will Build and Learn in This Course?
-
Урок 2.
00:05:51
How to get Help?
-
Урок 3.
00:07:12
The Visual Studio Code
-
Урок 4.
00:06:42
Where to Find and How to Use the Course Source Code
-
Урок 5.
00:03:26
Introduction to the Udemy UI
-
Урок 6.
00:00:22
Setting Up for Windows! - Section Introduction
-
Урок 7.
00:05:51
Windows Installing PHP
-
Урок 8.
00:02:49
Windows Installing Composer
-
Урок 9.
00:03:04
Windows Installing Node.js
-
Урок 10.
00:03:07
Windows Installing Docker
-
Урок 11.
00:00:32
Setting Up for Mac! - Section Introduction
-
Урок 12.
00:01:49
MacOS Installing Homebrew
-
Урок 13.
00:02:28
MacOS Installing PHP
-
Урок 14.
00:01:53
MacOS Installing Composer
-
Урок 15.
00:02:26
MacOS Installing Node.js
-
Урок 16.
00:02:42
MacOS Installing Docker
-
Урок 17.
00:00:32
Laravel, Vue & Inertia - Section Introduction
-
Урок 18.
00:02:22
What is Laravel?
-
Урок 19.
00:01:30
What is Vue?
-
Урок 20.
00:03:04
What is Inertia?
-
Урок 21.
00:01:27
Download the starter pack!
-
Урок 22.
00:03:20
Creating Laravel project
-
Урок 23.
00:06:42
Adding Vue and Vite to the stack
-
Урок 24.
00:09:04
Configuring Inertia.js
-
Урок 25.
00:02:12
Your First SPA - Section Introduction
-
Урок 26.
00:13:52
Creating first pages
-
Урок 27.
00:06:02
Passing data to pages
-
Урок 28.
00:05:28
Layouts
-
Урок 29.
00:05:58
Reactive data in Vue
-
Урок 30.
00:04:52
Persistent layouts with Inertia
-
Урок 31.
00:03:17
Default layouts
-
Урок 32.
00:08:09
(OPTIONAL) Using linter (ESLint), jsconfig and getting most out of VSCode
-
Урок 33.
00:05:41
(OPTIONAL) Advanced JS topics (arrow functions, promises, async importing etc.)
-
Урок 34.
00:02:05
Working with the Database - Section Introduction
-
Урок 35.
00:06:09
Laravel Debugbar & IDE Helper
-
Урок 36.
00:07:28
Connecting to the Database
-
Урок 37.
00:06:09
Models and Migrations
-
Урок 38.
00:06:59
Working with Migrations
-
Урок 39.
00:11:33
Model Factories & Seeders
-
Урок 40.
00:06:31
Querying the Database
-
Урок 41.
00:03:15
Querying the Database (CHALLENGE)
-
Урок 42.
00:08:11
Updating and Inserting Data, Mass Assignment
-
Урок 43.
00:08:25
Resource Controller and Route Model Binding
-
Урок 44.
00:13:48
Vue Directives (v-for, v-bind) & Custom Components
-
Урок 45.
00:14:01
Handling Forms (useForm, v-model)
-
Урок 46.
00:07:08
Handling Forms in Laravel
-
Урок 47.
00:07:43
Middlewares and Sharing Data with All Pages
-
Урок 48.
00:08:30
Computed Data and Conditional Rendering (Displaying Flash Messages)
-
Урок 49.
00:10:49
Data Validation (Back End & Front End)
-
Урок 50.
00:10:15
Edit Form
-
Урок 51.
00:06:31
Deleting Data
-
Урок 52.
00:09:17
Laravel Route Names in Vue
-
Урок 53.
00:01:36
Adding Some Style (Tailwind CSS) - Section Introduction
-
Урок 54.
00:07:32
Installing and Setting Up Tailwind CSS
-
Урок 55.
00:06:20
Why Tailwind CSS? Tailwind Overview
-
Урок 56.
00:12:08
Basic Styling of the App (Hands on With Tailwind)
-
Урок 57.
00:04:39
Custom UI Components and Grid Responsive Design
-
Урок 58.
00:06:15
Listing Details (Non-Prop Attributes)
-
Урок 59.
00:06:09
Custom Price Formatting Component
-
Урок 60.
00:11:49
Listing Page (Getting Even Better With Responsive Design!) + Vue Named Slots
-
Урок 61.
00:06:54
Styling Forms
-
Урок 62.
00:05:47
Extracting Tailwind Styles Using @apply Directive
-
Урок 63.
00:01:16
Edit Form Styling
-
Урок 64.
00:04:59
Progress Bar Loading Indicator
-
Урок 65.
00:03:44
Styling Error Messages
-
Урок 66.
00:01:12
What Are We About to Build?
-
Урок 67.
00:04:51
Payment Calculator Markup (Sliders)
-
Урок 68.
00:06:03
Payment Calculator Logic
-
Урок 69.
00:08:24
Composables - Reusable Logic in Vue (Reactive Monthly Payment)
-
Урок 70.
00:08:56
Displaying Payment Next to Every Listing (Reusing Composable)
-
Урок 71.
00:07:54
Adding More Composable Members (Total Paid, Total Interest)
-
Урок 72.
00:01:35
Authentication & Security - Introduction
-
Урок 73.
00:07:19
Authentication Controller and Routes
-
Урок 74.
00:09:20
Authentication Form Markup and Basic Logic
-
Урок 75.
00:14:35
Signing-In Logic - Authentication Process Explained
-
Урок 76.
00:05:46
Explaining the Authentication Process
-
Урок 77.
00:07:34
Getting the Currently Logged In User
-
Урок 78.
00:05:19
Logging Users Out
-
Урок 79.
00:07:10
CSRF Tokens
-
Урок 80.
00:09:47
Protecting Routes (Authorization) - Can You Access a Specific Page?
-
Урок 81.
00:08:25
User Registration Form
-
Урок 82.
00:09:50
User Registration Logic & Hashing Passwords
-
Урок 83.
00:09:05
Eloquent Mutators & Accessors - Hashing Password Example
-
Урок 84.
00:04:42
How Hashing of The Passwords Work
-
Урок 85.
00:02:53
Form Links
-
Урок 86.
00:02:32
419 Errors When Logging Out
-
Урок 87.
00:01:58
Database Relations & User Authorization - Introduction
-
Урок 88.
00:08:24
Creating a One-to-Many Database Relationship
-
Урок 89.
00:04:38
One-to-Many Connecting Models Together - the Theory
-
Урок 90.
00:08:11
One-to-Many Connecting Models - Practice
-
Урок 91.
00:03:05
Every New Listing Needs an Owner!
-
Урок 92.
00:04:56
Model Policies - Theoretical
-
Урок 93.
00:13:43
Model Policies - In Practice
-
Урок 94.
00:02:49
Model Policy and Guest Users
-
Урок 95.
00:02:54
Only Owners Can Edit or Delete!
-
Урок 96.
00:08:01
Admin Users - Overriding Policy Implementation
-
Урок 97.
00:06:49
Reading the Related Data (Using Database Relationship)
-
Урок 98.
00:01:48
Data Pagination & Filtering - Introduction
-
Урок 99.
00:11:13
Adding Pagination
-
Урок 100.
00:16:52
Filtering Form Markup
-
Урок 101.
00:13:42
Filtering JavaScript Logic
-
Урок 102.
00:07:32
Filtering the Data
-
Урок 103.
00:08:18
Conditional Queries in Eloquent
-
Урок 104.
00:06:03
Local Query Scopes in Eloquent
-
Урок 105.
00:04:31
Filtering Using Local Query Scope
-
Урок 106.
00:01:40
Realtor My Account - What We're Going to Build?
-
Урок 107.
00:04:56
Controller Routes Grouping
-
Урок 108.
00:16:53
Showing the Realtor Listings
-
Урок 109.
00:10:01
Soft Deletes (Putting Records Into Trash - To Be Restored)
-
Урок 110.
00:07:59
Soft Deleting Listings
-
Урок 111.
00:05:37
Filtering Using Checkboxes - The Markup
-
Урок 112.
00:08:25
Vue Watchers - Filtering Using Checkboxes
-
Урок 113.
00:05:57
The Debounce Function - Handling the Events Flood
-
Урок 114.
00:07:49
Filtering Using Checkboxes - The Backend Part
-
Урок 115.
00:08:23
Customizable Sorting - Back End
-
Урок 116.
00:09:01
Customizable Sorting - Front End
-
Урок 117.
00:03:17
Filtering Form - Default Values
-
Урок 118.
00:04:10
My Account Section Pagination
-
Урок 119.
00:11:32
Edit, Delete and Preview Buttons
-
Урок 120.
00:12:47
Restoring Models
-
Урок 121.
00:02:07
File Uploading - Introduction
-
Урок 122.
00:07:14
File Data Model
-
Урок 123.
00:08:06
Laravel Filesystem Abstraction Explained
-
Урок 124.
00:10:04
Preparing for the File Uploads
-
Урок 125.
00:06:07
Uploading Multiple Images (Backend Part)
-
Урок 126.
00:09:36
Uploading Multiple Images (In Vue)
-
Урок 127.
00:05:58
Styling the Upload Input & UX Improvement
-
Урок 128.
00:03:42
File Upload Progress Indicator
-
Урок 129.
00:07:23
Displaying the Uploaded Images
-
Урок 130.
00:06:38
Removing Uploaded Files
-
Урок 131.
00:01:55
Displaying Listing Images on the Listing Page
-
Урок 132.
00:07:55
Validating Uploaded Files (Make Sure It is an Image!)
-
Урок 133.
00:03:02
Counting Related Models (How Many Images We Have?)
-
Урок 134.
00:03:06
Making Offers - Introduction
-
Урок 135.
00:09:00
Offers Data Model and Relations
-
Урок 136.
00:10:38
Offer Widget - Adding Widget in Vue
-
Урок 137.
00:13:17
Making Offer - the Backend Part
-
Урок 138.
00:10:04
Vue Custom Component Events (Passing Data to the Parent Component)
-
Урок 139.
00:11:29
Fetching and Displaying an Existing Offer of the Current User
-
Урок 140.
00:04:56
How Many Offers Were Made?
-
Урок 141.
00:09:02
Offer List Page
-
Урок 142.
00:09:49
Single Listing View with All The Offers
-
Урок 143.
00:12:43
Accepting Offers (Single Action Controller & Loading Nested Relations)
-
Урок 144.
00:05:07
Seeing Which Offer is Sold
-
Урок 145.
00:08:04
Filtering Out Sold Offers (Querying Relationship Presence/Absence)
-
Урок 146.
00:07:29
Simpler Way To Identify Sold Listings (Refactoring the Query Scope!)
-
Урок 147.
00:09:02
No Offer Making or Changing of Listings That Are Sold!
-
Урок 148.
00:05:04
UI Improvements
-
Урок 149.
00:02:04
Notifications - Informing Users About What Happened - Introduction
-
Урок 150.
00:04:07
Notifications Introduction & Database Setup
-
Урок 151.
00:08:34
Sending Notification When Offer is Made
-
Урок 152.
00:10:52
Showing the Notification Count
-
Урок 153.
00:05:31
Showing an Empty State
-
Урок 154.
00:04:17
Notifications List Page Backend Part
-
Урок 155.
00:10:34
Notifications List Page Front End
-
Урок 156.
00:13:38
Marking Notifications as Read
-
Урок 157.
00:02:25
Sending Email - Introduction
-
Урок 158.
00:06:10
Local Email Testing with Mailhog (in Docker)
-
Урок 159.
00:05:01
Delivering Notifications via Email
-
Урок 160.
00:09:39
Registered User - Email Verification Process
-
Урок 161.
00:05:28
Requiring Verification on Pages & Not Verified Notice Page
-
Урок 162.
00:09:57
User Verification Route
-
Урок 163.
00:06:10
Resending the Verification Link (and Understanding Throttling and Cache)
-
Урок 164.
00:05:23
Testing the Email Resending Process
-
Урок 165.
00:01:56
What is JavaScript?
-
Урок 166.
00:01:12
Using Chrome Console to Learn JavaScript
-
Урок 167.
00:02:12
Variables - var, let, const
-
Урок 168.
00:03:45
Primitive Data Types
-
Урок 169.
00:05:36
Data Type Gotchas
-
Урок 170.
00:03:01
Functions
-
Урок 171.
00:01:42
Arrays
-
Урок 172.
00:02:44
Objects
-
Урок 173.
00:02:27
Introduction
-
Урок 174.
00:05:06
Required and optional software for the course
-
Урок 175.
00:05:15
MacOS specific setup
-
Урок 176.
00:00:00
Windows specific setup
-
Урок 177.
00:03:58
Where to find the full source code?
-
Урок 178.
00:07:28
Visual Studio Code - extensions, shortcuts and tricks
-
Урок 179.
00:03:41
Creating a new Laravel project using Composer
-
Урок 180.
00:13:18
Setting up Vue.js application
-
Урок 181.
00:05:58
Fallback route in Laravel
-
Урок 182.
00:13:03
Installing and setting up Vue Router
-
Урок 183.
00:04:44
HTML5 history mode in Vue Router
-
Урок 184.
00:07:39
Vue component registration (global/local) and Index component
-
Урок 185.
00:02:28
Router Link component and routing inside a Vue application
-
Урок 186.
00:04:14
Bootstrap, styling and Laravel Mix
-
Урок 187.
00:05:25
v-bind, v-bind shorthand and named Vue routes
-
Урок 188.
00:03:24
Styling the navigation bar
-
Урок 189.
00:04:10
Single file Vue components
-
Урок 190.
00:08:53
Child components (using components in other components)
-
Урок 191.
00:09:44
Component props and prop types
-
Урок 192.
00:05:00
One-way data flow
-
Урок 193.
00:06:42
Lifecycle hooks
-
Урок 194.
00:11:39
Component state and reactivity
-
Урок 195.
00:07:19
Reactivity gotchas
-
Урок 196.
00:03:59
Conditional rendering (v-if)
-
Урок 197.
00:09:02
List rendering and v-else
-
Урок 198.
00:09:53
Computed properties
-
Урок 199.
00:13:25
Component methods
-
Урок 200.
00:06:39
Setting up database
-
Урок 201.
00:02:53
Specified key was too long problem
-
Урок 202.
00:06:38
Model and migrations
-
Урок 203.
00:12:02
Model factory, database seeder and faker
-
Урок 204.
00:07:43
Routes and model all() method
-
Урок 205.
00:07:48
API testing in Postman
-
Урок 206.
00:06:37
Using Model::find() and mandatory/optional route parameters
-
Урок 207.
00:03:34
Using Model::findOrFail() and Accept header
-
Урок 208.
00:13:06
JavaScript Promises explained
-
Урок 209.
00:06:47
Making HTTP requests with Axios
-
Урок 210.
00:02:54
CSS Flexbox and Bootstrap utility classes
-
Урок 211.
00:07:06
Vue router parameters
-
Урок 212.
00:05:58
Passing all object properties as props (v-bind trick)
-
Урок 213.
00:02:28
Vue router links
-
Урок 214.
00:05:30
Understanding CSS grid system
-
Урок 215.
00:09:39
Laravel controllers
-
Урок 216.
00:04:24
Resource controllers
-
Урок 217.
00:10:16
API Resources
-
Урок 218.
00:10:38
Availability component (horizontal forms, scoped styles)
-
Урок 219.
00:03:58
Form input binding (v-model)
-
Урок 220.
00:04:48
Handling DOM events in Vue
-
Урок 221.
00:03:23
Laravel Debugbar (seeing what happens behind the scenes)
-
Урок 222.
00:04:55
Booking model and relations
-
Урок 223.
00:13:58
Seeding bookings (generating random, non overlapping time series)
-
Урок 224.
00:04:45
Single Action Controller
-
Урок 225.
00:07:23
Request input validation (validating data clients send to our server)
-
Урок 226.
00:10:42
Eloquent Local Query Scopes
-
Урок 227.
00:05:18
Returning bookable availability (HTTP response statuses)
-
Урок 228.
00:08:06
Getting object availability in Vue.js
-
Урок 229.
00:09:47
Displaying form errors
-
Урок 230.
00:03:41
Final touches - displaying availability
-
Урок 231.
00:11:58
ReviewList component markup (using responsive grid options)
-
Урок 232.
00:07:21
Review model & migration (using UUID as model primary key)
-
Урок 233.
00:03:53
Review model relationships (one-to-one, one-to-many)
-
Урок 234.
00:08:44
Review model factory & seeder
-
Урок 235.
00:06:53
Reviews controller (using latest() query scope)
-
Урок 236.
00:04:00
Reviews HTTP resource (serializing model)
-
Урок 237.
00:09:55
Loading reviews in Vue component
-
Урок 238.
00:07:20
Vue filters and moment.js
-
Урок 239.
00:09:48
Star Rating component (using FontAwesome)
-
Урок 240.
00:14:04
Star Rating component logic (calculating stars to display from average rating)
-
Урок 241.
00:02:49
Review list cleanup and section wrap-up
-
Урок 242.
00:07:44
Review Page component markup and route
-
Урок 243.
00:09:13
Emitting and handling custom Vue.js events
-
Урок 244.
00:03:49
Parent and child components communication
-
Урок 245.
00:06:33
v-model explained, adding v-model support to custom components
-
Урок 246.
00:07:16
Leaving a rating flow explained
-
Урок 247.
00:07:45
Checking if review already exists on backend
-
Урок 248.
00:06:45
Checking if review already exists on frontend
-
Урок 249.
00:09:11
Booking review key and Eloquent model events
-
Урок 250.
00:07:56
Fetching booking by review key (custom model methods)
-
Урок 251.
00:05:37
Creating Resource classes for booking
-
Урок 252.
00:11:45
Understanding promise chaining
-
Урок 253.
00:10:24
Displaying the booking information on review page
-
Урок 254.
00:12:05
A new API endpoint for storing a review (validation rules, complex flow)
-
Урок 255.
00:13:14
Handling request errors in Vue
-
Урок 256.
00:05:01
Storing a new review (using POST in axios)
-
Урок 257.
00:03:07
Fixing a 500 error in BookingByReview controller
-
Урок 258.
00:04:46
FatalError component (custom Vue component for unhandled errors)
-
Урок 259.
00:11:09
Handling only specific errors (HTTP error codes, validation errors)
-
Урок 260.
00:06:17
Validation on Review sending page
-
Урок 261.
00:10:37
Reusable validation errors component
-
Урок 262.
00:08:56
Vue Mixins - how to reuse the same code in different components
-
Урок 263.
00:00:00
Async/Await explained
-
Урок 264.
00:07:54
Using async/await in Review component
-
Урок 265.
00:08:17
Vue Component Slots
-
Урок 266.
00:02:48
Fixing application Vue issues
-
Урок 267.
00:05:02
Vuex introduction - managing global state
-
Урок 268.
00:11:30
Setting up Vuex
-
Урок 269.
00:02:52
State mutations - storing last search dates
-
Урок 270.
00:02:50
Reading Vuex state
-
Урок 271.
00:06:44
Binding to Vuex state
-
Урок 272.
00:07:46
Using Vuex actions to add side effects when committing to the store
-
Урок 273.
00:06:42
Initializing Vuex state from the browser local storage
-
Урок 274.
00:07:15
Vue Transitions
-
Урок 275.
00:03:37
Using animated icons
-
Урок 276.
00:09:38
Bookable price (controller, migration, factory), Carbon date library
-
Урок 277.
00:06:21
Async/Await in Availability, emitting a custom event
-
Урок 278.
00:06:16
Loading price in Bookable component and using Vuex bindings
-
Урок 279.
00:09:07
Price breakdown component
-
Урок 280.
00:08:03
Vuex - a basket (adding/removing)
-
Урок 281.
00:06:48
Vuex getters - how many items in the basket?
-
Урок 282.
00:11:32
Checking what's in the basket, removing from the basket
-
Урок 283.
00:07:24
Vuex getters - property vs method access, higher order functions, composition
-
Урок 284.
00:08:54
Keeping basket state in localStorage
-
Урок 285.
00:07:50
Creating a Basket/Checkout page
-
Урок 286.
00:08:03
Rendering contents of the basket and allowing removal
-
Урок 287.
00:05:01
List transitions - animating adding/deleting to a list (v-for)
-
Урок 288.
00:09:07
Checkout form markup
-
Урок 289.
00:10:58
Address model and booking changes
-
Урок 290.
00:04:56
Checkout logic explained
-
Урок 291.
00:06:10
Validating nested fields
-
Урок 292.
00:13:41
Validating arrays of input
-
Урок 293.
00:11:48
Storing booking and address
-
Урок 294.
00:07:08
Refactoring price calculations
-
Урок 295.
00:07:02
Binding form
-
Урок 296.
00:10:06
Making a booking
-
Урок 297.
00:04:38
Empty basket state
-
Урок 298.
00:05:26
Clearing the basket after purchase
-
Урок 299.
00:08:06
Displaying booking errors
-
Урок 300.
00:07:49
Rendering purchase confirmation
-
Урок 301.
00:09:26
Laravel Sanctum introduction
-
Урок 302.
00:06:14
Laravel Sanctum installation
-
Урок 303.
00:02:25
Sanctum configuration - domains
-
Урок 304.
00:16:44
Understanding authentication with Sanctum
-
Урок 305.
00:05:39
Authentication using Vue practical example
-
Урок 306.
00:11:17
Logic component (page) markup
-
Урок 307.
00:07:48
Login component logic
-
Урок 308.
00:07:22
Is user authenticated - local storage? (Part I)
-
Урок 309.
00:13:40
Is user authenticated - VueX? (Part II)
-
Урок 310.
00:08:12
Handling unauthenticated state (401) - using Axios interceptors
-
Урок 311.
00:12:21
Header changes and logout
-
Урок 312.
00:03:14
Fixing "is logged in" delay
-
Урок 313.
00:06:43
Registration component markup
-
Урок 314.
00:06:57
Registration component logic