Introduction
Welcome to the course
Project Repository
Setting up our Tools
New Laravel Versions Reference Guide
Building Questions Resources
Project Setup
Designing Question Schema - Part 1 of 2
Designing Question Schema - Part 2 of 2
Generating Fake data via Model Factories - Part 1 of 2
Generating Fake data via Model Factories - Part 2 of 2
Displaying all questions
Adding Author info and Question creation date on Question item - Part 1 of 2
Adding Author info and Question creation date on Question item - Part 2 of 2
Adding votes, answers and views counter on Question item - Part 1 of 2
Adding votes, answers and views counter on Question item - Part 2 of 2
Buiding Question Form - Part 1 of 2
Buiding Question Form - Part 2 of 2
Validating and Saving the Question - Part 1 of 2
Validating and Saving the Question - Part 2 of 2
Updating The Question - Part 1 of 2
Updating The Question - Part 2 of 2
Deleting The Question
Showing The Question detail
Authorizing The Question - Using Gates
Authorizing The Question - Using Policies
Building Answers Resource
Designing Answer Schema
Generating Fake Answers - Part 1 of 2
Generating Fake Answers - Part 2 of 2
Displaying answers for question
Adding Vote Controls on Question and Answer - Part 1 of 3
Adding Vote Controls on Question and Answer - Part 2 of 3
Adding Vote Controls on Question and Answer - Part 3 of 3
Saving The Answer - Part 1 of 3
Saving The Answer - Part 2 of 3
Saving The Answer - Part 3 of 3
Updating The Answer - Part 1 of 2
Updating The Answer - Part 2 of 2
Deleting The Answer - Part 1 of 3
Deleting The Answer - Part 2 of 3
Deleting The Answer - Part 3 of 3
Building Vote Control System
Accepting the answer as best answer - Part 1 of 2
Accepting the answer as best answer - Part 2 of 2
Favoriting The Question - Part 1 of 4
Favoriting The Question - Part 2 of 4
Favoriting The Question - Part 3 of 4
Favoriting The Question - Part 4 of 4
Voting The Question & Answer - Part 1 of 6
Voting The Question & Answer - Part 2 of 6
Voting The Question & Answer - Part 3 of 6
Voting The Question & Answer - Part 4 of 6
Voting The Question & Answer - Part 5 of 6
Voting The Question & Answer - Part 6 of 6
Code Refactoring & Misc
Refactoring The Models
Refactoring The Views - Part 1 of 2
Refactoring The Views - Part 2 of 2
Preventing The Application from XSS Attack - Part 1 of 2
Preventing The Application from XSS Attack - Part 2 of 2
Miscellaneous
Tidying up our views
Integrating Vue.js to our Application
Creating our first Vue.js Component - Part 1 of 2 (Building The Component)
Creating our first Vue.js Component - Part 2 of 2 (Using The Component)
Creating Vue Answer Component - Part 1 of 5 (Using Vue.js Inline Template)
Creating Vue Answer Component - Part 2 of 5 (Ajaxifying The Edit button)
Creating Vue Answer Component - Part 3 of 5 (Build Answer Inline Form)
Creating Vue Answer Component - Part 4 of 5 (Undoing changes)
Creating Vue Answer Component - Part 5 of 5 (Validation)
Ajaxifying the Delete answer button
Beautifying The Flash & Confirm messages
Creating Favorite Component - Part 1 of 3 (From button to Vue.js Component)
Creating Favorite Component - Part 2 of 3 (Event Handler)
Creating Favorite Component - Part 3 of 3 (Authenticating the button)
Creating Accept Answer Component - Part 1 of 2 (from button into Vue component)
Creating Accept Answer Component - Part 2 of 2 (event handler)
Rewriting The Authorization Logic - Part 1 of 2 (Core authorization)
Rewriting The Authorization Logic - Part 2 of 2 (Refactoring)
Creating Vote Component - Part 1 of 3 (From blade to Vue Component)
Creating Vote Component - Part 2 of 3 (Event Handling)
Creating Vote Component - Part 3 of 3 (Fixing issues)
Creating Vue Answers Component
Building Load more answers Feature - Part 1 of 2
Building Load more answers Feature - Part 2 of 2
Implementing Vue.js Custom Events
Implementing Global Event Bus
Creating New Answer Component - Part 1 of 2 (From blade to Vue.js component)
Creating New Answer Component - Part 2 of 2 (Event Handling)
Creating Question Component - Part 1 of 3 (from blade to vue.js component)
Creating Question Component - Part 2 of 3 (Build inline Form)
Creating Question Component - Part 3 of 3 (Misc)
Working With Vue.js Mixins
Building Markdown Editor Component with Syntax Highlight Support
Section Intro
Composing Editor Component
Enable Markdown Preview
Autosizing The Editor
Syntax Highlight Integration
Fixing Syntax Highlight issue on the first load
Fixing Syntax Highlight issue when cancel editing
Creating Highlight Mixin
Integrating Markdown Editor in Answer Component
Integrating Markdown Editor in New Answer Component
Fixing Syntax Highlight issue after new answer added
Fixing Syntax Highlight in Answers Component
RESTful API Development
Installing Laravel Passport
Requesting a Passport Token
Creating API Endpoint for displaying all questions
Transforming Data using Eloquent API Resources
Creating API Endpoint for adding new question
Creating API Endpoints for Updating & Deleting existing question
Creating API Endpoint for showing question details
Creating Answer Endpoints
Creating Vote Question & Answer Endpoints
Creating Favourite Question & Accept Answer Endpoints
Current User's Posts Endpoint
The Authentication API
Building Single Page Application
Updating npm packages
Getting started with SPA - Setting up Backend Route Fallback
Getting started with SPA - Installing and configuring Vue Router
Getting started with SPA - Using Vue router RouterLink component
Getting started with SPA - Vue Router Navigation Guards
Getting started with SPA - Handling 404 error page
The QuestionsPage Component - Setting up API baseURL
The QuestionsPage Component - Building User Interface
The QuestionsPage Component - Consuming API Endpoint
The QuestionsPage Component - Fixing Authorization issue
Creating Pagination Component
Creating Question Form Component - From Blade file to Vue.js component
Creating Question Form Component - Handling Form Data
Creating Edit Question Component
Ajaxifying the Delete question button
The Question Page Component - Showing question details
The Question Page Component - Displaying related answers
The Question Page Component - Fixing the Delete question button
The Question Page Component - Fixing the Load more answers button
The Question Page Component - Fixing The Favourite button
Displaying current user's post - Building User Interface
Displaying current user's post - Consuming Backend API
Polishing up our app - Adding Transition effect
Polishing up our app - Adding AJAX Spinner on All questions page
Polishing up our app - Using Axios interceptor to control the Spinner globally
Polishing up our app - Adding AJAX Spinner when submitting the form
Final Bug fixing
Appendix I - Vue.js Fundamental
Getting Started With Vue.js
Setup Vue Locally
List Rendering - Part 1 of 3
List Rendering - Part 2 of 3
List Rendering - Part 3 of 3
Conditional Rendering - Part 1 of 3
Conditional Rendering - Part 2 of 3
Conditional Rendering - Part 3 of 3
Event Handling - Part 1 of 4
Event Handling - Part 2 of 4
Event Handling - Part 3 of 4
Event Handling - Part 4 of 4
Class Binding - Part 1 of 2
Class Binding - Part 2 of 2
Style Binding - Part 1 of 2
Style Binding - Part 2 of 2
Computed Property - Part 1 of 3
Computed Property - Part 2 of 3
Computed Property - Part 3 of 3
Appendix II - Upgrading Laravel App
Introduction
Upgrading to Laravel 5.7 - Update Dependencies & Core Application
Upgrading to Laravel 5.7 - Syncing Application's structure
Upgrading to Laravel 5.7 - Testing
Upgrading to Laravel 5.8 - Update Dependencies & Core Application
Upgrading to Laravel 5.8 - Syncing Application's structure
Upgrading to Laravel 5.8 - Testing
Fixing The Verified Email Error
Upgrading to Laravel 6.0
Appendix III - Deployment Laravel App in Heroku
Introducing Heroku
Creating Heroku App
Creating a Database
Setting Heroku Config Variables
Fixing Insecure Assets Error
Appendix IV - Deploy Laravel App in Virtual Private Server (Digital Ocean)
Introduction
Setting up Server
Installing Nginx, MySql & PHP
Setting up Firewall
Creating a new user for our deployment
Setting up Nginx
Setting up MySQL
Setting up SSH Keys
Deploying Laravel App in our Production Server
Deploying new changes
Adding domain to our Server
Setting up SSL on our server