
Set up a Laravel development stack with docker and docker-compose, including a php 7.4 alpine container, composer install, and a mysql service with volumes and port mappings.
Build a link model and related many-to-many links with products in Laravel, including migrations, models, a link_product pivot, a link controller, and API routes for user-specific links.
Learn to build json resources in Laravel by creating an order resource that returns a concatenated name, a computed admin revenue total from order items, and optional order items.
Refactor common routes for admin and ambassador by creating a shared function, dynamically setting scope and access control, preventing cross-login, and updating endpoints and middleware for cleaner code.
Compute user revenue by aggregating orders and ambassador revenue, expose it via a user resource, and conditionally merge revenue for ambassador API routes.
Set up redis with docker, configure env and ports, and cache Laravel products with redis for 30 minutes, demonstrating slow first load and fast subsequent reads.
Implement pagination for Laravel using collections, fetch products in pages, set items per page to nine, compute total and last page, and expose page parameters for frontend.
We implement a product search by filtering with the request input s, using Laravel's contains to match titles and descriptions, and verify the filtered results across pages.
Extend the backend to sort products by price, using request input to choose ascending or descending order and a comparator that returns -1, 0, or 1.
Create a stats endpoint that returns, for each of the authenticated user's links, the link code, purchase count, and total revenue by filtering completed orders.
Implement three checkout endpoints to fetch link information for frontend data, create an order, and confirm an order, with redirection to Stripe and a post-approval confirmation page.
Learn how to use transactions to ensure atomic saves of orders and order items, wrapping operations with begin transaction, commit, and rollback to prevent partial data on errors.
Install stripe package, configure publishable and secret keys, and build checkout sessions with line items in Laravel, handling success and cancel URLs and storing the transaction id to finalize orders.
Create public and secure modules with routes and login and register components, using router outlets to render nested views. Gate secure routes with a login condition and update paths accordingly.
Adapt the register page using the login form, apply public component styles, build a reactive form for first name, last name, email, password, and password confirm, and navigate to login.
Build the login form with a form group and form builder for email and password, submit to the login api, navigate home, and handle credentials and http-only jwt cookies.
Create a dedicated authentication service in a services folder, move the edp client there, and unify registration and login logic by routing requests through the service with credentials.
Implement logout functionality by calling the logout service, clearing credentials, and redirecting to login through the router, with protected routes via a secure component.
Learn how interceptors attach credentials to all requests by cloning a request and setting with credentials to true, register a credential interceptor, and apply it through providers to every component.
Explore creating static event emitters in a TypeScript class, emit user data on login and profile updates, and subscribe in components to refresh name and email without extra server calls.
Add pagination to a material table using mat paginator, wire it with a view child, and initialize the data source after the view initializes to paginate users.
Set up and configure an Angular project for the Angola ambassador template, adjust port to 4300, bootstrap, serve, and view the app in the browser.
Learn to import data and shared files from the Angular admin project, set up interfaces, models, interceptors, and services, and implement a main module with login, register, and authenticated navigation.
Modify the header component to display a dynamic title and description based on user authentication, showing revenue when a user is logged in and login/register prompts otherwise.
Build secure stats and rankings features by creating stats and rankings components, connecting to endpoints with services, and rendering links and revenue in a table.
Select products to reveal a generate links button, call the backend link service via the environment API, and display the checkout link for use at checkout.
Track quantities with a dynamic array and compute the total by summing product price times quantity using reduce, initializing quantities to zero and updating the total automatically.
Learn how to create an Ambassador App using Angular and Laravel. We will build 3 frontend apps Admin, Ambassador and Checkout and they will consume a big Laravel API.
In Laravel you will learn:
How to create API's with Laravel
Authenticate using Laravel Sanctum
Laravel Json Resources
Install and use Docker
Use Redis
Use Stripe
Laravel Events & Listeners
Sending Emails
In Angular you will learn:
Angular CLI
Use interceptors
Create public and private routes
Use Reactive Forms
Angular Material
Angular Universal
I'm a FullStack Developer with 10+ years of experience. I'm obsessed with clean code and I try my best that my courses have the cleanest code possible.
My teaching style is very straightforward, I will not waste too much time explaining all the ways you can create something or other unnecessary information to increase the length of my lectures. If you want to learn things rapidly then this course is for you.
I also update my courses regularly over time because I don't want them to get outdated. So you can expect more content over time from just one course with better video and audio quality.
If you have any coding problems I will offer my support within 12 hours when you post the question. I'm very active when trying to help my students.
So what are you waiting for, give this course a try and you won't get disappointed.