Fullstack Laravel API development with Nuxt and Linux – 2020

Fullstack Laravel API development with Nuxt and Linux – 2020

English | MP4 | AVC 1280×720 | AAC 44KHz 2ch | 18.5 Hours | 7.42 GB

Become a Fullstack Laravel Engineer by developing a Dribbble Clone, Provisioning a server and Deploying with SSL

Take your PHP Laravel skills to the NEXT LEVEL with this hands-on, real-world project on developing a clone of Dribbble. The entire course is focused on the development of this single application, which gives you explanation of various concepts usually overlooked by most Laravel developers. Here’s what you will learn:

Repository Pattern: Learn how to organize your code in repositories and contracts, which will make you ready to develop enterprise-grade applications with Laravel.

API Authentication management: Everything is API-driven. Learn how to authenticate users using JWT, as well as account confirmation and password recovery. These are foundations to any data-driven application.

Geo-search in MySQL: You see search based on user location in many applications – real-estate, food delivery etc. In this course you will learn how to implement location-based search in Laravel and MySQL.

Working with Policies and Authorzation: Learn how to authorize actions in your Laravel application using Policies.

Image Upload and Server-side resizing: You will learn how to upload images to your local server and to Amazon s3, as well as how to resize / crop images on the server before saving to either Amazon s3 or Local server.

Implement Teams: Learn how to implement teams in your application without using a third-party package. Build your own team management from scratch.

Chat Messaging – learn how to implement a basic but very effective chat messaging system

Configuring NuxtJS for client site

Using GoogleMap API for location autocomplete in Nuxt / Vue

Buying and provisioning a web server from scratch – without using any third party tool like Laravel Forge

Acquiring and setting up a domain name

Configuring both API and Nuxt Client using Nginx

Using a Nodejs process manager to run the client app

Acquiring and installing a free SSL Certificate on your server.

What you’ll learn

  • Learn how to develop API-driven applications with Laravel and MySQL
  • Learn the Repository Architectural Pattern ready for Enterprise level development
  • How to handle image uploads to Amazon s3 and to your server
  • Learn how to implement client-side applications with Nuxtjs with Authentication
  • How to acquire and completely provision a Linux Server for both Laravel API and Nuxt Client
  • How to add SSL Certificate Security to your own Linux Server
  • Implement Geographic Search (Location Based) in MySQL
Table of Contents

Getting Started
1 Introduction
2 What we will develop and How the course is structured
3 Making the most out of this course
4 Setting up Laravel on Mac (using Laravel Valet and MySQL)
5 Setting up Laravel on Windows (WAMP and Virtual Host)
6 Complete source code

Setting up the New Laravel Project
7 Creating and configuring a Laravel Project
8 Setup POSTMAN
9 Setup Database Connection
10 SMTP Setting

Authenticating API users in Laravel with JWT
11 Setting up JWT Authentication
12 User Logout
13 The famous ME endpoint
14 Introducing API Resources
15 Password Reset – Customising the Email Notification
16 Password Reset – Sending the reset email
17 Password Reset – Resetting the Password
18 Section conclusion
19 User Registration I Setting up the registration fields
20 User Registration II Registering the user
21 Email Verification I Setting up the user activation process
22 Email Verification II Customizing the verification email notification
23 Email Verification III Resending the verification email
24 Email Verification IV Activating the user’s account
25 User Login Issuing JWT tokens
26 Email Verification Test

Updating User Profile Information
27 User Profile Update
28 User Password Update
29 Committing our code to GitHub

Creating and managing Designs
30 Section Introduction
31 Updating design information
32 Creating a Policy for Updating designs and customising Exception
33 API Resource for Designs and generating image URL’s
34 Deleting records and images from the File system
35 Adding Tags to Designs
36 The Design Model and Migrations
37 Setting up image upload Disks
38 Uploading image to Temporary Disk
39 Installing Image Manipulation Library
40 Resizing uploaded images
41 Saving images to Local Disk
42 Saving images to Amazon s3
43 Setting up Queues to handle uploads

Laravel Repository Pattern
44 Introduction to the repository pattern
45 Adding Eager-Loading Criteria to the Repository
46 Overview on Repository Pattern
47 Add Index Methods to Users and Designs
48 Create a simple Repository
49 Create the Base Repository and Interface
50 Implementing common Repository Methods
51 Introducing Criteria to the Repository
52 Setup and test Filter Criteria
53 Create Criterion for User’s designs
54 Setup Debugging to profile API SQL Queries

Adding Comment and Likes to the Application
55 Setting up Comment model and Repository
56 Create Comments and Comment API Resource
57 Updating and deleting comments
58 Solving the famous N+1 problem with Eagerloading
59 Setting up Likes Model and Trait
60 Unliking and Bootable Trait method
61 One last endpoint and conclusion on Likes and Comments

Setting up Designer Teams
62 Section Overview
63 Resending Invitation to join teams
64 Responding to and deleting an Invitation
65 Removing users from Teams
66 Creating the Team Models and Migrations
67 Setting up the Team Repository, Contract and Controller
68 Creating teams with CREATED and DELETING Boot methods
69 Update Team Information with Policies (Authorization)
70 Associate Teams to Designs
71 Team Invitations Setup – Model, routes, controllers, migration and repository
72 Sending out team invitations
73 Sending out the Invitation Emails to Guest and Existing users

Chat Messaging between users
74 Setup the Chat and Messaging Model
75 Create the Chat Controller and Repositories
76 Setup the Chat and Message Migrations
77 Sending chat messages between users
78 Fetching chats for the current user
79 Fetching messages for a Chat Including Trashed messages
80 Marking messages as Read and Soft-Deleting
81 Refactor the API Resource Classes and Section wrap

Searching Shots and Designers
82 Searching Designs by multiple filters
83 Geographic Search – Setup the GeoSearch
84 Testing GeoSearch in Postman

A few Clean up and getting ready for the UI
85 Fetching Designs by Slug
86 Get Designs for a given team
87 Get Designs for a given user and User by Username
88 Add Gravatar as User Profile Image
89 CORS and wrap on API

Getting started with the Frontend
90 Introduction to the UI – NuxtJS and VueJS
91 Install Nodejs and create new NuxtJs Application
92 Exploring the structure of the Nuxt Application
93 Install base packages and setup the folder structure
94 Bringing in the HTML Template to NuxtJS
95 Custom routing in NuxtJS
96 Configure Authentication Module in NuxtJS
97 Install and configure VForm for API Requests

Implementing Authentication in the UI
98 Registration Part I
99 Registration Part II
100 Login with Local Strategy
101 Resend Account Verification Email
102 Activate User account and Logout
103 Send Password Recovery Email
104 Reset User’s Password and Section conclusion

Creating Global Dynamic Components and Route Middleware
105 Setting up Dynamic Component Registration
106 Base Button Component
107 Base Input Component
108 Creating Route Middleware

Uploading Designs from the User Interface
109 Setting up the Upload pages and components
110 User Dashboard – Design Listing
111 User Dashboard – Profile Update Form
112 Google Maps Location API – Autocomplete
113 Complete User profile Update
114 Completing the Fancy Image Upload from Client Side
115 Updating Design Information after upload
116 Custom Error Page
117 Implement the update form and Tagging Package
118 Submitting the Update Form
119 Preventing Unauthorized Access to the Design Edit Page
120 Configure Nested Routes in Nuxt
121 Redirecting designers after Update process

Listing and Searching Designs
122 Searching Designs
123 Displaying the search results
124 Displaying Design Details Page
125 Adding comments to designs
126 Comment Form
127 Liking and Unliking designs
128 Display Tags on details page and wrap on UI

Deploying the Application to Remote Server
129 Section Introduction
130 Setup Composer and create MySQL Database for Laravel
131 Pull the API code from GitHub and setup Laravel permissions
132 Configure Nginx to serve Laravel Application
133 Pull the client application from GitHub
134 Launch Nuxt App with PM2 Process Manager
135 Configure Free SSL Certificate
136 Conclusion
137 Resource – Commands we will be using in this section
138 Create a Digital Ocean Server and an SSH Key
139 SSH into our new Server
140 Buy a domain name and configure DNS Records
141 Disable Root SSH and create new Sudo User
142 Enable FireWall (UFW)
143 Install Nginx
144 Install and configure MySQL
145 Setup PHP for Nginx