Full Stack Professional thumbnail

Back to courses

Full Stack Professional

Build, Test, and Automate Full-Stack Web Applications Like a Professional

Level: Junior, Mid, Senior Engineers

author image

Nelson

Course by
Nelson

This course includes:

55 Hours

English Subtitles

Certification Upon Completion

Lifetime Course Access

Access to Discord group

Amigoscode Textbook

15 Days Money Back Guaranteed

Ola

Have a coupon? Enter at checkout

The tech stack you will in this course

java logojava
terminal logoterminal
spring-boot logospring-boot
spring logospring
postgres logopostgres
flyway logoflyway
testcontainers logotestcontainers
javascript logojavascript
react logoreact
typescript logotypescript
angular logoangular
docker logodocker
aws logoaws
github logogithub
github-actions logogithub-actions
slack logoslack
cicd logocicd
intellij logointellij
devops logodevops

What you'll learn

Spring Boot 3

HTTP & API development

Developer tools for maximum productivity

Robust error handling techniques

Databases & PostgreSQL

Spring Data JPA

Flyway for seamless database migrations

JDBC for efficient database communication

Testing strategies for robust, reliable code

Docker for containerization and deployment

AWS for cloud-based hosting and scaling

DevOps best practices for agile, collaborative development

JavaScript and React for front-end development

Spring Security 6 for secure, authenticated applications

Login/Registration systems for user management

TypeScript for type-safe, scalable code

Angular for powerful, responsive front-end interfaces

Are you ready to level up your coding skills and become a full stack professional? Our new 55+ hours course is designed to equip you with the latest tools and techniques to build impressive, full stack applications that will impress the users and your team.

Over the next weeks you will learn how to craft stunning, responsive front-end interfaces that flawlessly communicate with robust, scalable and secured back-end APIs deployed on AWS running on ECS Docker.

  • Active Learning: The course emphasizes hands-on learning, providing practical experience through coding exercises, solutions, and real-world projects.
  • 65-Chapter Roadmap via 55-Hours of Video Classes: It offers an extensive curriculum with over 55 hours of video content structured into 65 chapters, covering various aspects of full-stack development.
  • Error Message Support: Learners can post their problems to a dedicated Discord group where classmates and instructors provide timely assistance and explanations.
  • Amigoscode Textbook: A comprehensive textbook is included, offering easy access to code, course materials, and additional information.
  • 1-Year Full Products Pack: The course includes a bonus 1-year JetBrains All Products Pack license, enhancing the coding and development experience.

Who is the course for?

Learning full-stack development can be challenging, especially for beginners and professionals new to the service-oriented architecture.

Hence, the Full-Stack Professional course was designed to provide a comprehensive step-by-step learning package, suitable for anyone with basic programming knowledge and experience in at least one programming language.

Whether you're a professional programmer looking to expand your skill set or a beginner looking to get started in the world of programming, our course will teach everything you need to building complex web applications from start to finish.

Curious of what we are going to build?

Course project

Feel free to test the web apps. Please dont break them!

React Version | Angular Version

Sai's Linkedin Post

Sai's postt

The Spoctexter app that got him the job:

Sai's App
Intellij Bonus

BONUS 🎁

Do you want to learn full stack development with the best tools and resources?

When you enroll in our Full Stack Professional course, you will not only get access to high-quality video lessons, projects, and exercises, but also JetBrain All Products Pack license as a bonus 🎁!

What is JetBrain All Products Pack? It’s a bundle of 10 IDEs and 3 extensions and 2 profilers that cover all the major programming languages and technologies you need to master full stack development.

With JetBrain All Products Pack, you can enjoy features like:

  • Intelligent code completion
  • Code analysis and refactoring
  • Debugging and testing tools
  • Version control integration
  • Cross-platform support
  • And much more!

This license normally costs 770$ per year, but you can get it for free when you enroll in the Full-Stack Professional course. That’s a huge saving and a great value for your money!

But hurry up, this offer is valid only for a limited time. Don’t miss this opportunity to learn full stack development with the best tools and resources from Amigoscode!

Enroll now and get your JetBrains All Products Pack today!

4 Ways How Full-Stack Can Change Your Career

  1. Working on all aspects of a project: Full-stack developers are able to work on both the front-end and back-end of a project, as well as on DevOps tasks such as deployment and maintenance. This means that they are able to contribute to projects across the stack and can adapt to new technologies and frameworks more easily.
  2. Suggesting and implementing solutions: Skilled full-stack developers possess the ability to evaluate various technologies, weighing their potential benefits and drawbacks. They can then recommend and implement optimal solutions that leverage new and emerging technologies, while also taking into account the entire ecosystem of service-oriented architecture.
  3. Rapid adoption of new technologies and frameworks: Full-stack developers have a broad understanding of different technologies and systems, which means they are well-equipped to learn and master new tools and frameworks. This allows them to quickly adapt to changing technology needs and contribute to projects that require the use of new technologies.
  4. Identifying and troubleshoot a broad range of issues: Full-stack developers have a broad understanding of the technologies and systems being used, which allows them to identify and troubleshoot issues that may arise during the development process. This can help to reduce development time and improve project delivery.
Next.js Logo

Clear Explanations

Chapters explained

Course Curriculum

This course has 86 sections including exercises

Java Master Class

1 - Java Master Class

Preview

Full Stack Professional Plus

1 - The Next Steps

Preview

List of TODO's

1 - Practise as I teach

Preview

2 - Discord

Preview

3 - Linkedin

Preview

4 - Textbook

Preview

5 - Exercises and Textbook

Preview

6 - Exercise Solutions

7 - Commit Your Changes

8 - Linux and Terminal

Preview

9 - JetBrains All Products - 1 Year Licence

10 - Intellij New Theme

11 - Repo

12 - Newsletter

Project and Environment Setup

1 - What we are about to cook

2 - Spring Initiliazer

3 - Open the project with IntelliJ

4 - pom.xml

Preview

5 - Lets clean up few things

6 - JDK

Getting Started with Spring Boot 3

1 - Your first Spring Boot Application

2 - Embedded Web Server

3 - Configuring Embedded Web Server

4 - Your first API

Preview

5 - @SpringBootApplication @RestController and @GetMapping

6 - Spring Web MVC

7 - JSON For Java

8 - Java Objects to JSON Objects

Code

HTTP, REST and APIs

1 - Introduction to HTTP

2 - The Evolution of HTTP

3 - HTTP Request and Response Messages

Preview

4 - HTTP Methods

5 - HTTP Status Codes

6 - URL

7 - API and REST API

8 - Public APIs and Other Types

9 - Why build APIs

Developer Tools

1 - Chrome Developer Tools

2 - Exploring XHR for our API

3 - Inspecting Instagram Network Activity

4 - Postman

5 - IntelliJ REST Client

CRUD - Read

1 - CRUD and Section Overview

2 - Customer Model

3 - Fake Database

4 - API Endpoint

5 - @PathVariable

Code

Structure the Backend

1 - N Tier Architecture

2 - Refactor - Controller Service and DAO

3 - @RestController @Service @Repository @Component

Code

Application Context and Beans

1 - Application Context

2 - Inspecting beans

3 - Bean Scopes

4 - Creating Beans

Code

Error Handling

1 - We are not handling error the right way

2 - Custom Exception

3 - @ResponseStatus

4 - Include error Message to Responses

Code

Databases

1 - Section Intro

2 - Postgres and Docker

3 - Verifying Docker Installation

4 - Postgres DB with Docker compose

5 - Connecting to Database

6 - Connecting to DB using IntelliJ IDEA

7 - Data Source & JPA

8 - Installing PostgreSQL Driver and Spring Data JPA Dependencies

9 - Configuring Datasource Properties

10 - Create Customer Table

11 - PSQL & SQL Cheatsheet

12 - Outro

Spring Data JPA

1 - Entity

2 - Inspecting The Database

3 - Column Contraints

4 - CustomerRepository

5 - CustomerJPADataAccessService class

6 - @Qualifier

7 - Saving Entities

8 - Exploring JPA Methods

9 - Outro

Code

Get Customer By Id Exercise

1 - The Problem

2 - Exercise Solution

CRUD - Create

1 - Intro

2 - Changing CustomerDao Interface

3 - Override insert customer

4 - Business Logic for Adding new Customer

5 - Controller @RequestMapping and @RequestBody

6 - Testing POST Request

Code

CRUD - Delete (Exercise)

1 - Exercise

2 - Exercise Solution

CRUD - Update (Exercise)

1 - Exercise

2 - Exercise Solution

Let's Pause

1 - Few Words

Datasources, JDBC & Flyway

1 - Intro

2 - JPA and Hibernate under the hood

3 - JDBC and JDBCTemplate

4 - DataSource and Connection Pools

5 - Flyway and Liquibase

Flyway

1 - Flyway

2 - Installing Flyway

3 - Applying and Understanding Flyway Migrations

4 - Lets Start Again but Right

5 - Create Customer Table

6 - Inspecting the Customer Table

7 - Working with Sequences

8 - Exercise

9 - Exercise Solution

10 - Migrations Documentation

11 - Match Entity Containts schema

12 - Validating Schema With Hibernate

13 - Exercise Solution

Code

JDBC Template

1 - Intro

2 - CustomerJDBC class

3 - JDBC Template Documentation

4 - Insert Customer

5 - Test Insert Customer

6 - Select All Customers

7 - RowMapper and ResultSet

8 - Refactor Row Mapper

9 - Exercise

10 - Exercise Solution

11 - Exercise

12 - Exercise Solution

13 - Why multiple DAO implementations

14 - More on databases later

Code

Spring JDBC vs JPA

1 - When to use JDBC over JPA

Important Question

1 - Would you 🤔?

Testing - Setup

1 - Intro

2 - Testcontainers

3 - H2

4 - Intalling Testcontainers

5 - Let's Write a test Testcontainers

6 - Inspecting DB created by Testcontainers

7 - Apply migrations with Flyway

8 - @DynamicPropertySource

9 - Don't Use @SpringBootTest for Unit Tests

10 - Abstract Testcontainres Logic

Code

Testing JDBC Template

1 - Intro

2 - JDBCTeamplate Test Class

3 - Configure JDBC Template

4 - selectAllCustomers Test

5 - selectCustomerById Test

6 - selectCustomerById Test 2

7 - Exercises

8 - Test Coverage

9 - Exercise Solution

Testing JPA Repositories

1 - Intro

2 - What do we need to test

3 - The Wrong Way

4 - @DataJpaTest and @AutoConfigureTestDatabase

5 - Writing Tests For CustomerRepository

Code

DAO Mock Testing

1 - No Need to Test DB Backed by List

2 - Mockito

3 - @Mock

4 - Test Select All Customers

5 - Test selectCustomerById

6 - Exercise Solution

Code

Testing Business Layer

1 - Intro

2 - Create CustomerServiceTest and MockitoExtension

3 - Test GetAllCustomers

4 - Test getCustomer

5 - Test if getCustomer Returns Empty Optional

6 - Test addCustomer

7 - addCustomer Test Code Explanation

8 - Test addCustomer 2

9 - Exercises

10 - Exercise Solution (Part 1)

11 - Exercise Solution (Part 2)

12 - Exercise

13 - Exercise Solution

Code

Integration Testing

1 - Intro

2 - @SpringBootTest

3 - WebTestClient

4 - The First Integration - canRegisterCustomer - Part 1

5 - Running canRegisterCustomer Integration Test

6 - The First Integration - canRegisterCustomer - Part 2

7 - canDeleteCustomer Integration Test

8 - Exercise Solution

Code

The Upcoming Sections

1 - Intro

The Jar file

1 - Intro

2 - Spring Boot Maven Plugin Jar

3 - Running Jar

Maven & Tests

1 - Intro

2 - Surefire Plugin

3 - Configuring Surefire Plugin

4 - Maven Failsafe Plugin

5 - The Jar File

6 - Section Outro

DevOps

1 - Intro

2 - What is DevOps

3 - DevOps Key Practices and Benefits

4 - Slides

5 - Outro

Docker

1 - Intro

2 - What is Docker

3 - Docker vs VM

Docker Commands Cheatsheet

4 - Undestanding Containers

5 - Docker Images and Containers

6 - Docker Architecture

7 - Docker Registries

8 - Docker Login

10 - Outro

Jib

1 - Intro

2 - What is Jib

3 - Configuring Jib Plugin

4 - Building Docker Image

5 - Pulling Image and Running Container

6 - Container Comunication

7 - Docker Network In Action

8 - Docker Compose

9 - Section Outro

10 - Outro

Code

AWS

1 - Intro

2 - Infrastructure Components Overview

3 - AWS Free Tier

4 - AWS Console Overview

5 - Elastic Beanstalk

6 - Elastic Beanstalk Key Terms

7 - Generate New Key Pair

8 - Saving Private Key

Elastic Beanstalk

1 - Getting Started With Elastic Beanstalk

2 - Elastic Container Service

3 - Dockerrun aws json

4 - Configure More Options

5 - Infrastructure Provisioned By EB

6 - Updating DB Host and Inspecting Logs

7 - SSH MAC & LINUX & Windows

8 - Bastions

9 - Create Customer DB

10 - Hooray we deployed the API

11 - Exploring EB

12 - Cloudformation

13 - Infrastructure As Code

14 - Multiple Environments

15 - There Are Many Other Ways To Deploy

Code

Git and Github

1 - Intro

2 - What We Need To Do

3 - Organizing Folders (Monorepo)

Git Cheatsheet

4 - Create Github Repository

5 - Pushing code to Github

6 - Open the new Folder and Run Application

Code

Github Actions

1 - Intro

2 - Github Actions Overview

Continuos Integration

1 - Intro

2 - Creating the workflow

3 - Github Actions Services

4 - Checkout Action

5 - Setup Java Action

6 - Run Shell Command

7 - Commit and Push Workflow

8 - New Feature Branch

9 - Triggering the Workflow With Pull Request

10 - Make Build Workflow Fail

11 - Outro

Code

Continous Delivery

1 - Intro

2 - Create Deploy Workflow

3 - Postgres Service

4 - Setting Working Directory

5 - Clone Java and Login to Docker Hub

6 - Generate Custom Build Number

7 - Build Number Step

8 - Maven Verify Step

9 - SED Command

10 - Step to Replace tag in Dockerrun aws json

11 - The Deployment Process

12 - Create AWS Github Actions User with Programmatic Access

13 - Github Secrets for AWS

14 - AWS Elastic Beanstalk

15 - Commit and Push Dockerrun.aws.json STEP

16 - Continuous Delivery In Action

17 - Outro

Code

Slack Integration

1 - Intro

2 - Installing Slack

3 - Workspaces

4 - Webhooks

5 - Exercise

6 - Exercise Solution

7 - Deployment In Action With Slack Messaging

8 - Discord Webhooks

Javascript

1 - Intro

2 - Your First Javascript Code

3 - What is Javacript and How it works

4 - Visual Studio Code (VS Code)

5 - NodeJS and NPM

6 - Running JS with using Node

7 - Code Runner

8 - Comments

9 - Quotes and Colons

10 - Variables

11 - Datatypes

12 - Strings

13 - Objects

14 - Boolean

15 - Arrays

16 - Functions

17 - Built in functions

18 - Loops

19 - Other types of For Loops

20 - While Loop

21 - Comparison Operators

22 - Logical Operator

23 - If Statement

24 - Ternary if statement

25 - Switch Statement

26 - Hoisting

27 - Let Keyword

28 - Const Keyword

29 - When to Use Const vs Let

30 - Type Coercion

31 - Triple Equals

32 - Functions Overview

33 - Arrow Functions

34 - Function Default Parameter

35 - Callbacks

36 - Working with Objects

37 - Object Destructuring

38 - Spread Operator on Objects

39 - Working with Arrays

40 - Arrays.Map

41 - Array Destructuring

42 - Default Exports

43 - Name Exports and Imports

44 - Your first Promise

45 - synchronous vs asynchronous code

46 - Async Await

47 - Promise all

48 - Promise base http client

49 - Outro

Code

React

1 - What is React

2 - Vite

3 - Scaffolding React App with Vite

4 - Application Folder Structure

5 - SRC folder

6 - Understanding Available Scripts

7 - Clean up code to start fresh

Basics of React

1 - Intro

2 - JSX

3 - Components

4 - Creating Components

5 - Components and Props

6 - Props Children

7 - Transformations with Map

8 - UseState hook

9 - UseEffect Hooks

10 - Outro

Code

React Building Our Web App

1 - Intro

2 - UI Libraries

3 - Installing Chakra

4 - Testing ChakraUI installation

5 - SideBar

6 - Customize The SideBar

7 - Axios and getCustomers method

8 - Vite environment variables

9 - Let's try to fetch data from the server

10 - CORS

11 - Allow CORS on the backend

12 - Render Customers & Loading Spinner

13 - Card Component

14 - Wrap and Wrap Item

15 - Customizing Card

16 - Include sha and commit to CD workflow

17 - Watch CD Workflow Deploy CORS changes

Code

Backend and React - Gender Exercise (Challenging)

1 - Intro

2 - Exercise

Backend and React - Gender Exercise Solution

1 - Add New Migration

2 - Updating Customer Constructor to Include Gender

3 - Fixing Tests

4 - Fixing Integration Tests

5 - Add Gender and Profile Picture to Frontend

6 - Deployment

7 - Pull Latest amigoscode-api version

8 - Outro

Code

React - New Customer Feature

1 - Intro

2 - Create Customer Button

3 - Drawer

4 - Installing Formik and YUP

5 - Create CustomerForm component

6 - Customize Form (Part 1)

7 - Customize Form (Part 2)

8 - Disable submit button if form not valid

9 - Axios Post

10 - onSubmit

11 - Fetch customers on save

12 - Toasts and Notifications

Code

React - Delete Customer Exercise

1 - Exercise

2 - Exercise Solution

React - Update Customer Exercise

1 - Exercise

2 - Exercise Solution

3 - Final Touches

Code

Dockerize React App and Docker Compose

1 - Intro

2 - Dockerfile react frontend

3 - Building React Frontend Docker Image

4 - Running React Frontend Container

5 - Looking inside the container

6 - Adding react service to docker compose

Code

React Frontend Deployment

1 - Intro

2 - Docker Build Args

3 - React Frontend Container Definition

4 - Deploying

5 - AWS Security Group and Rules

6 - Adding Security Group Rule

7 - Outro

Code

AWS - Exercise

1 - Exercise

2 - Exercise Solution

Security & JWT Overview

1 - Intro

2 - The Problem

3 - Spring Security

4 - Exploring Spring Security Documentation

5 - Introduction to JWT

6 - The Structure of JWT

7 - How We Are Going to Secure Our Endpoints

Implementing Security

1 - Installing Dependencies

2 - Starting the server

3 - Generate JWT Token

4 - Generate JWT Token - Signing

5 - Important

6 - Send Signed Token to Client

7 - Allow Only POST Requests to Register Customers

8 - Inspecting JWT Token

9 - Security Filter Chain

10 - The Next Steps

11 - UserDetails

12 - Implement UserDetails

13 - Fixing Tests

14 - UserDetailsService

15 - Password Encoder and BCrypt

16 - Hashed Passwords In Action

17 - Authentication Provider

18 - DaoAuthenticationProvider

19 - JWT Token Validation Overview

20 - JWT Auth Filter and Extract Token

21 - Extract Subject From Token

22 - Validate Token and Set Authentication

23 - Registering The Filter

24 - Attaching JWT to Requests

25 - Fixing CustomerRepositoryTest

26 - Let's Pause

27 - Spring Security Architecture Explained

Code

28 - Outro

DTO Pattern

1 - Intro

2 - DTO Pattern

Code

Implementing Security PART 2

1 - Fixing canRegisterCustomer Integration Test

2 - We Have A Problem With Spring Security

3 - Authentication Entrypoint

4 - @ControllerAdvice and @ExceptionHandler

5 - Handle InsufficientAuthenticationException and Exception

6 - Exercise

7 - Exercise Solution canDeleteCustomer

8 - Exercise Solution canUpdateCustomer

9 - CORS Issue Again

10 - Spring Security CORS

11 - Login Exercise

12 - Login Exercise Solution

13 - Login Integration Test

14 - Test Login using Postman

15 - POST Mistake

16 - Deployment

17 - Testing API

Code

18 - Exercise

19 - Exercise Solution

20 - Outro

React - Login & Registration

1 - Intro

2 - Section Intro

3 - Installing React Router

4 - React Router Routes

5 - Login Page

6 - Styling Right Side of Login Page

7 - Login Form P1

8 - Login Form P2

9 - Login Post Method

10 - React Context

11 - AuthProvider

12 - Using Context

13 - Performing Login

14 - Local Storage

15 - Adding to Local Storage

16 - Redirected After Successful login

17 - Attach Authorization Header to HTTP Requests

18 - Add Password To Create New Customer

19 - Logout

20 - Add Details about Current Logged in Customer

21 - Protected Route

22 - Check Token Expiration with JWT Decode

23 - UseEffect in AuthProvider

24 - Redirect to Dashboard if logged in

25 - Testing when token expires

26 - Login Page Deployment

Code

27 - Exercise

28 - Exercise Solution (Part 1)

29 - Exercise Solution (Part 2)

30 - Deployment for Registration

AWS Load Balancers, Route53, Certificate Manager and SSL/TLS

1 - Intro

2 - Section Overview

3 - Load Balancers Overview

4 - The Need For a Brand New Environment

5 - Create new EB Environment with ALB

6 - Deploy new version with correct DB details

7 - Understanding ALB health checks

8 - Actuator and Health Endpoint

9 - Update Github Secrets

10 - Deploy Actuator Changes

11 - Changing LB Health Endpoint

12 - Route 53 - Register Domain

13 - Create A Record for Load Balancer

14 - SSL and TLS

15 - Issuing Certificate with Certificate Manager

16 - HTTPS Listener

17 - HTTP to HTTPS Redirects

18 - Outro

Code

AWS Amplify - React Deployment

1 - Managed Hosting Services for Web Apps

2 - Installing AWS Amplify

3 - Choosing Repo and Branch

4 - Build Settings (Part 1)

5 - Build Settings (Part 2)

6 - Deployment

7 - Custom Domain

8 - Protect Web App

9 - Previews

10 - Change React UI

11 - Raise PR

12 - Merge PR

Typescript

1 - Intro

2 - Your first Typescript code

3 - Nodejs installation

4 - VS code

5 - Install Typescript

6 - TS-node code runner settings

7 - Comments

8 - Declare variables

9 - String type

10 - Number type

11 - Boolean type

12 - Array type

13 - Object type

14 - Any type

15 - Union type

16 - Alias type

17 - Tuple type

18 - Enum type

19 - Never type

20 - Unknown type

21 - Literal type

22 - Functions

23 - Classes

24 - Class Access Modifiers

25 - Class read-only Access Modifiers

26 - Inheritance

28 - Getters and setters

29 - Static properties and methods

30 - Abstract class

31 - Interfaces I

32 - Interfaces II

33 - Interfaces III

34 - Interface Functions

35 - Interface Optionals

36 - Intro to Generics

37 - Generics Classes and Interfaces

38 - Outro

Getting Started with Angular

1 - Intro

2 - What is Angular

3 - What is a module

4 - Components in Angular

5 - Install Angular CLI

6 - Bootstrap the app with npm

7 - Explain project structure (src folder)

8 - Explain project structure (package.json file)

9 - Explain project structure (angular.json file)

10 - Strip sample application

Basics of Angular

1 - Create a new Angular component

2 - Display and use a component

3 - Data binding

4 - Two-way binding

5 - Event binding

6 - Directives - Conditions - NgIf (Part 1)

7 - Directives - conditions - NgFor (Part 2)

8 - Inputs

9 - Output (Part 1)

9.1 - Output (Part 2)

10 - Services (Part 1)

10.1 - Services (Part 2)

11 - Routing-bootstrapping

12 - Routing - Definition

13 - Routing - Declaring a new route

14 - Routing - Navigating to different routes by template and by injecting router service (programmatically)

Angular - Application Skeleton

1 - Walking through PrimeNG Website

2 - Cleanup the Project

3 - Adding PrimeNG Dependencies

4 - Import PrimeNG Styles

5 - Make Sure the Imports Work

6 - Explaining Login and Register Pages

7 - Explaining the Future Design of the App

8 - Splitting the App into Components

9 - Create the Customer Component

10 - Create Menu Bar Component

11 - Create Menu Item Component

12 - Header Bar Component

13 - Add Create Customer Button

14 - Add the Sidebar

15 - Create Mana-Customer Component (Part 1)

16 - Create Mana-Customer Component (Part 2)

Angular - Login Page

1 - Create Login Component

2 - Exercise 1 - Add Routing for Login Page

3 - Exercise 1 - Solution

4 - Implement Login Page UI (Part 1)

4.1 - Implement Login Page UI (Part 2)

5 - Create the Authentication Service

6 - Create the Authentication Model

7 - Exercise 2 - Bind the Authentication Model to the Login Form

8 - Exercise 2 - Solution

9 - Implement the Login Method

10 - Consume the Login Method and Console Log the Result

11 - Import the HTTP Client Module

12 - Test the Login Method and Analyze the Response

13 - Create Authentication Response Object

14 - Make the Login Method Returns Authentication Response

15 - Catch the Authentication Error and Display the Error Message

16 - Implement Success Login - Store Unauthorized Response and Redirect the User

17 - Why Securing a Route

18 - What is a Guard

19 - Create the Access Guard Service

20 - Use the Access Guard to Secure the Customers Route

21 - Add the Angular-JWT Library

22 - Implement the Access Guard and Secure the Customers Route

Angular - Fetch All Customers

1 - Create Customer Service

2 - Exercise 1 - Find all Customers

3 - Exercise 1 - Solution

4 - Display all Customers (Part 1)

5 - Add the Authorization Header to the Request

6 - Display all customers (Part 2)

7 - Generate Environment Files

8 - Add Application Properties

9 - Update the Services to use the Values from Environment file

10 - Present the Hard Coded JWT Token (problematic)

11 - Create the HTTP Interceptor

12 - Make Angular use the Interceptor

13 - Implement the Interceptor

14 - Create Customer Card Component

15 - Implement Customer Card UI

16 - Exercise 2 - Display Customer Information in the Card component

17 - Exercise 2 - Solution

Angular - Create Customer

1 - Add Customer Registration Object as Input

2 - Create the Customer Registration Request Object

3 - Add Binding to the Form

4 - Exercise 1 - Disable the Submit button if the customer is not valid

5 - Exercise 1 Solution

6 - Exercise 2 - Delegate the Submit Operation to the Parent Component

7 - Exercise 2 - Solution

8 - Consume the Submit Event and Console Log the Customer Information

9 - Create POST Customer Service Method

10 - Exercise 3 - Save and Refresh the Customers List

11 - Exercise 3 - Solution

12 - Add Style to the Displayed Cards

13 - Add Toast Component

14 - Display Success Message after Saving New Customer

15 - Add Dynamic Profile Picture to the Customer Card

Angular - Update customer

1 - Explaining the Update Functionnality

2 - Create Customer Update Request Model

3 - Create Customer Update Methods (service)

4 - Add Operation Input and Manage Fields Display

5 - Display Title Depending on the Operation

6 - Delegate the Update Event to the Parent and Display Customer Information in the Form

7 - Adjust the Create Customer (button) Click Envent

8 - Adjust the Disabling of the Submit Button

9 - Implement Update Customer (Part 1)

10 - Extend the Customer Object and Test the Update Functionality (Part 2)

11 - Correctly Display the Manage Customer Title

12 - Implement Cancel Button

Angular - Finalize the Header Component

1 - Exercise 1 - Display Username and Role in the Header

2 - Exercise 1 - Solution

3 - Logout

Angular - Register New Customer

1 - Exercise - Implement the Registration Functionality

2 - Create Register Component

3 - Add Routing to Register Page

4 - Implement the Register UI (Part 1)

5 - Implement the Register UI (Part 2)

6 - Add Binding to the Customer Registration Request

7 - Register a User and Redirect to Customers Page

Angular - Tidy Up

1 - Redirect Angular

2 - Tidy Up Some Files

3 - Commit Changes

Angular - Deployment Exercise + Solution

1 - Exercise

2 - Product Environment Configuration

3 - AWS Amplify Configuration

4 - Deploying Frontend

5 - Custom Domain With Free SSL Certificate

6 - Access Control

7 - AWS Amplify Continuos Integration

8 - AWS Amplify Continuous Delivery

Angular Outro

Outro

Limit and Pagination

1 - Intro

2 - The Problem and Fix

3 - Outro

File Upload Exercise

The Exercise

S3 File Uploads

1 - Documentation and POM

2 - Create User

3 - Create Access and Secret Keys

4 - Storing Credentials

5 - Amazon S3

6 - S3Client Bean

7 - Implement PutObject Method

8 - Implement GetObject Method

9 - Create S3 Bucket

10 - Testing Uploads and Downloads

11 - Bucket Name as Config

12 - Upload and Download API Endpoints

13 - Implement Service method to upload

14 - Implement Service method to download

15 - ProfileImageId New Column

16 - SQL and JPQL Queries

17 - Include new column in select statements

18 - Storing and Retrieving Profile Image Id from DB

19 - Fixing Compilation and Tests

20 - Test canPutObject

21 - Test canGetObject

22 - Test canGetObject Exception

23 - Test uploadCustomerProfileImage Part 1

24 - Test uploadCustomerProfileImage Part 2

25 - Test uploadCustomerProfileImage Part 3

26 - Test downloadCustomerProfileImage Part 1

27 - Test downloadCustomerProfileImage Part 2

28 - Test downloadCustomerProfileImage Part 3

29 - Exception Handling Documentation

30 - Test JPA Repository Query

31 - Test JPA DAO Implementation

32 - Test JDBC DAO Implementation

33 - Adding Pictures To Test Folder

34 - Picture Upload IT Part 1

35 - Increase Multipart File Size

36 - Download Picture Integration Test

37 - Permit All to Download Picture

38 - FakeS3

39 - FakeS3 PutObject

40 - FakeS3 GetObject

41 - Mock S3

42 - Mock S3 In Action

43 - Roles and Policies

44 - IAM Policy Simulator

Code

Spring Profiles

1 - Different Profiles Per Environment

2 - Working With Profiles

3 - Test Profile Configuration

4 - Deployment

5 - SSH Into EC2

React - File Upload

1 - Intro

2 - React Drop Zone

3 - Using Dropzone

4 - Syling Dropzone

5 - uploadCustomerProfilePicture method

6 - Dropzone Upload FIle

7 - Testing Picture upload

8 - Display Profile Picture

9 - Reload Profile Picture On Upload

10 - MediaType IMAGE_JPEG_VALUE

11 - CI_CD Backend and Frontend

12 - Test Live Application

File Upload Outro

1 - Outro

Secrets Manager

1 - Intro

2 - AWS Secrets Manager

3 - Implementation Overview

4 - Create Secret

5 - Secrets Manager Configuration

6 - AWS CLI

7 - IAM Permission

8 - Deployment

9 - Testing Changes

Code

Social Login

Coming Soon

Few Words

1 - We Built The Building Blocks and Potential Features

2 - Improve Things as You Wish

3 - Secrets Management

Plus Package

Next steps

Outro

Testimonial

Next Steps

Your next step

What our students say

If you have any other questions - please get in touch

If you want to become a Spring Boot Software Developer and are looking for a full course with all essential concepts being applied while building a full-stack app from scratch till the deployment, don't hesitate to enroll in this course from the Amigoscode team (Nelson Djalo). You will learn a lot about Spring Boot, React.js, Maven, Docker, Jib, AWS Elastic Beanstalk, RDS, Spring Data JPA, etc., and apply them in a real project. There are several exercises to tackle yourself as well.

author image

Sarvar

Senior Contracts Management Engineer@UZBEKISTAN GTL

Amigoscode.com has been an invaluable resource in expanding my knowledge of architecture, containerization, orchestration, and various Java technologies such as Spring Boot, JPA, and testing.... Their expertise and guidance have empowered me to delve deeper into these areas, making my learning journey both enriching and insightful. Grateful for the support and wealth of information provided by Amigoscode.com!

author image

Achraf Elbihi

Software Architect@Smartove

Danzel testimonial cover
author image

Danzel

Full Stack Developer

Diako testimonial cover
author image

Diako

Software Developer@byBrick Elevate

Gabriela Camilo testimonial cover
author image

Gabriela Camilo

Back-end Developer@Mercado Livre Brasil

James testimonial cover
author image

James

Junior Software Developer@Syntax IT Group

Joan testimonial cover
author image

Joan

Software Developer@Paramount Commerce

Konrad testimonial cover
author image

Konrad

Java Developer@FSB

Ndudzo testimonial cover
author image

Ndudzo

Student

Ryan testimonial cover
author image

Ryan

Software Engineer

Sai testimonial cover
author image

Sai

Software Engineer@Amazon

Wiktor testimonial cover
author image

Wiktor

Java Developer@Storware

Questions & Answers

What makes Amigoscode programming courses different from others?

Amigoscode offers unique, practical, and industry-relevant programming courses taught by experienced instructors. We focus on real-world applications, giving you the skills you need to excel in your career.

Can I purchase your courses through my company's training budget?

Yes, many of our students purchase our courses through their company's training budget. Our courses are considered a valuable investment in employee skill development, and they can be expensed as part of your company's training and development initiatives.

How can Amigoscode courses help me advance my programming career?

Our courses are designed to bridge the gap between theory and practice. You'll gain hands-on experience, work on real projects, and build a portfolio that will impress employers and clients, opening up new opportunities for career growth.

Do you offer any certifications upon course completion?

Yes, we provide certificates of completion for all our courses. These certificates are recognized in the industry, and they can help you showcase your skills to potential employers or clients.

Can I access the course material at my own pace?

Absolutely! Amigoscode courses are self-paced, allowing you to learn at a speed that suits your schedule. You can revisit the material whenever you need, and you have lifetime access to the course content.

Do I need prior programming experience to enroll in your courses?

No, our courses are designed to accommodate all levels of learners. Whether you're a beginner looking to start your programming journey or an experienced developer wanting to enhance your skills, we have courses suitable for you.

What kind of support do I get during the course?

We provide extensive support to our students through discord. You'll have access to a community of learners and can ask questions, share your progress, and collaborate with fellow students. In addition, our instructors are available to help with any challenges you encounter during the course.

What is your refund policy?

We offer a 15-day refund policy. If you're not satisfied with your course within the first 15 days after purchase, we will provide a full refund, no questions asked. Your satisfaction is our priority.

Featured on

business-insider image
docker-captain image
linkedin image
head-first-java image

Full Stack Professional

Engage in a dynamic and interactive learning experience as you complete exercises and projects.