Module 1: ดาวน์โหลดและติดตั้งเครื่องมือสำหรับการพัฒนา RESTful API ด้วย Laravel
	- ติดตั้ง XAMPP สำหรับใช้งาน PHP & MySQL
 
	- ดาวน์โหลดและติดตั้ง Composer
 
	- ดาวน์โหลดและติดตั้ง Virtual Box
 
	- ดาวน์โหลดและติดตั้ง Vagrant
 
	- ดาวน์โหลดและติดตั้ง Visual Studio Code พร้อมส่วนเสริมที่จำเป็น
 
	- ดาวน์โหลดและติดตั้ง Git
 
	- ดาวน์โหลดและติดตั้ง NodeJS และ NPM
 
	- ดาวน์โหลดและติดตั้ง Postman สำหรับไว้ทดสอบ API
 
Module 2: Creating and Setting the Initial Structure of Laravel for the RESTful API
	- Obtaining Laravel Using Composer
 
	- Adding Laravel Homestead as a Dependency for The Laravel Project
 
	- Preparing and Configuring Laravel Homestead
 
	- Adding the Virtual Domain on The System
 
	- Using Vagrant to Manage the Laravel Homestead Virtual Machine
 
	- Exercise Find out how to go out from the Virtual Machine
 
	- Keep The Laravel Project Updated
 
Module 3: Configuring and Using Sublime Text 3 to Develop the RESTful API with Laravel
	- Installing the Package Control
 
	- Creating and Using Projects
 
	- Installing and Using SublimeCodeIntel to Resolve Laravel and RESTful API classes
 
	- Installing and Using SideBarEnhancement
 
	- Installing and Using SublimeLinter for PHP
 
	- Installing and Using PHPCompanion to Auto-import Laravel Definitions
 
Module 4: Discovering and Configuring the Laravel Structure for the RESTful API
	- Discovering the Laravel Structure
 
	- Discovering the Laravel PHP Artisan Commands
 
	- Configuring the Laravel Environment Variables
 
	- Understanding the Laravel Routes System for RESTful APIs
 
Module 5: Creating the Initial Laravel Components for the RESTful API
	- How to Solve Common Errors During the Development of the RESTful API
 
	- Creating Initial Laravel Structures for The Models and Its Migrations
 
	- Creating an Initial Laravel Structure for The Controllers
 
	- Creating Some End-Point for the RESTful API Using Laravel Resource Routes
 
Module 6: Implementing the RESTful API Models and its Relationships using Laravel Eloquent
	- Implementing The Properties for Category
 
	- Implementing The Properties for Product
 
	- Implementing The Properties for Transaction
 
	- Implementing The Properties for User
 
	- Implementing The Relationships Between Models
 
Module 7: Creating the Database Structure Using Migrations from Laravel
	- Solving a Common Issue with the Laravel Migrations
 
	- Implementing The Migration for Users
 
	- Implementing The Migration for Categories
 
	- Implementing The Migration for Products
 
	- Implementing The Migration for Transactions
 
	- Creating the Migration for The Pivot Table
 
Module 8: Creating the Laravel Factories for Database Seeding
	- Creating The Laravel Factory for User
 
	- Creating The Factory for Category
 
	- Creating The Factory for Product
 
	- Creating The Factory for Transaction
 
	- Using The Factories from The DatabaseSeeder of Laravel
 
	- Executing The Migrations and Seeder using Artisan from Laravel
 
Module 9: Implementing the Operations for UserController
	- Implementing The Index Method for UserController
 
	- Implementing The Show Method for UserController
 
	- Implementing The Store Method for UserController
 
	- Implementing The Update Method for UserController
 
	- Implementing The Destroy Method for UserController
 
Module 10: Implementing the operations for Buyer
	- Implementing The Index Method for BuyerController
 
	- Implementing The Show Method for BuyerController
 
Module 11: Implementing the operations for Seller
	- Implementing The Index Method for SellerController
 
	- Implementing The Show Method for SellerController
 
Module 12: Improving the current RESTful API operations
	- Defining Mutators and Accessor for Models
 
	- Generalizing The Response Methods
 
	- Using The Generalized Methods
 
	- Using The Generalized Methods for Error Responses
 
Module 13: Handling Errors and Exceptions with the Laravel Handler
	- Returning Validation Errors as a JSON Response
 
	- Returning Model Not Found Errors as a JSON Response
 
	- Handling AuthenticationException
 
	- Handling AuthorizationException
 
	- Handling NotFoundHttpException
 
	- Handling MethodNotAllowedHttpException
 
	- Handling General HttpException
 
	- Catching Exceptions When Removing Related Resources
 
	- Handling Unexpected Exceptions
 
Module 14: Implicit Model Binding with Routes and Methods
	- Using The Laravel Implicit Model Binding for Some Methods
 
	- Resolving Buyer Using Laravel Global Scopes
 
	- Resolving Seller Using Laravel Global Scopes
 
Module 15: Implementing Soft Deleting for All the Models
	- Modifying the Migrations for Soft Deleting
 
	- Using soft Deleting for All the Models
 
Module 16: CORS for Laravel
	- Installing the CORS Package for Laravel
 
	- Configuring the CORS Package
 
	- Allowing CORS Only for the API
 
	- Allowing CORS on Error Responses Too
 
Module 17: Implementing the Operations for Category
Module 18: mplementing the Operations for Product
Module 19: Implementing Complex Operations within Transaction
Module 20: Implementing Complex Operations for Buyer
Module 21: Implementing Complex Operations for Category
Module 23 Implementing Complex Operations for Seller
Module 24: Implementing Complex Operations for Product
Module 25: Adding an Image for Products
Module 26: Sending Email for Users Accounts Verification
Module 27: The Middleware and the Rate Limiting
Module 28: Transforming Responses with PHP Fractal for Security and Compatibility
Module 29: Sorting and Filtering Results Based on Query Parameters
Module 30: Using Laravel Passport to Implement the Initial Security Layer with OAuth2
	- About OAuth2 and Security on APIs
 
	- What is Laravel Passport
 
	- Preparing the Laravel Project to Use Laravel Passport
 
	- Using the Migrations of Laravel Passport
 
	- Installing Laravel Passport Definitively on the API
 
	- Making Users Authenticatable Through API Tokens
 
	- Registering the Required Routes
 
	- Configuring the Authentication System
 
	- Defining the Expiration Time for the Tokens
 
	- Using client_credentials Grant to Protect Some Routes
 
	- How to Obtain and Use Tokens Using Client Credentials
 
	- Protecting All the Routes
 
	- Using the Password Grant Type
 
	- Preparing the API to Use the Passport Components
 
	- Creating the Views to Manage the Personal Tokens
 
	- About the Personal Tokens and How to Use It
 
	- Allowing the Management of API Clients
 
	- About the Authorization Code Grant Type
 
	- Using the Implicit Grant Type
 
	- Refreshing Tokens