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