Урок 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