PROFESSIONAL Full Stack Developer

54h 23m 35s
English
Paid

Course description

Are you ready to level up your coding skills and become a full stack professional? Our new 50+ 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.

Read more about the course

Over the next three months you will learn how to craft stunning, responsive front-end interfaces that flawlessly communicate with robust, scalable back-end servers, all with the use of industry-standard technologies such as:

  • 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

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.

Watch Online

This is a demo lesson (10:00 remaining)

You can watch up to 10 minutes for free. Subscribe to unlock all 760 lessons in this course and access 10,000+ hours of premium content across all courses.

View Pricing

Watch Online PROFESSIONAL Full Stack Developer

0:00
/
#1: Java Master Class

All Course Lessons (760)

#Lesson TitleDurationAccess
1
Java Master Class Demo
02:16
2
The Next Steps
00:59
3
Practise as I teach (TODO's)
01:55
4
Discord
01:10
5
Linkedin
00:38
6
Textbook
02:33
7
Exercises and Textbook
01:36
8
Exercise Solutions
01:06
9
Commit Your Changes
02:10
10
Linux and Terminal
02:36
11
IntelliJ 6 Months
01:36
12
Intellij New Theme
00:59
13
What we are about to cook (Project and Environment Setup)
01:38
14
Spring Initiliazer
02:57
15
Open the project with IntelliJ
02:05
16
pom.xml
02:28
17
Lets clean up few things
02:18
18
JDK
02:48
19
Your first Spring Boot Application (Getting Started with Spring Boot 3)
04:11
20
Embedded Web Server
03:09
21
Configuring Embedded Web Server
04:48
22
Your first API
02:55
23
@SpringBootApplication @RestController and @GetMapping
06:07
24
Spring Web MVC
05:46
25
JSON For Java
07:18
26
Java Objects to JSON Objects
05:26
27
Introduction to HTTP (HTTP, REST and APIs)
04:12
28
The Evolution of HTTP
03:15
29
HTTP Request and Response Messages
03:49
30
HTTP Methods
04:44
31
HTTP Status Codes
06:33
32
URL
09:01
33
API and REST API
03:38
34
Public APIs and Other Types
06:38
35
Why build APIs
02:56
36
Chrome Developer Tools (Developer Tools)
07:07
37
Exploring XHR for our API
04:35
38
Inspecting Instagram Network Activity
09:29
39
Postman
03:50
40
IntelliJ REST Client
05:09
41
CRUD and Section Overview (CRUD - Read)
02:05
42
Customer Model
02:30
43
Fake Database
03:27
44
API Endpoint
05:55
45
@PathVariable
07:57
46
N Tier Architecture (Structure the Backend)
02:02
47
Refactor - Controller Service and DAO
10:40
48
@RestController @Service @Repository @Component
07:03
49
Application Context (Application Context and Beans)
04:58
50
Inspecting beans
05:09
51
Bean Scopes
02:23
52
Creating Beans
07:49
53
We are not handling error the right way (Error Handling)
01:57
54
Custom Exception
05:02
55
@ResponseStatus
02:28
56
Include error Message to Responses
02:04
57
Section Intro (Databases)
00:51
58
Postgres and Docker
02:18
59
Verifying Docker Installation
02:27
60
Postgres DB with Docker compose
04:26
61
Connecting to Database
01:34
62
Connecting to DB using IntelliJ IDEA
03:23
63
Data Source & JPA
02:31
64
Installing PostgreSQL Driver and Spring Data JPA Dependencies
03:00
65
Configuring Datasource Properties
04:49
66
Create Customer Table
04:51
67
Outro
01:22
68
Entity (Spring Data JPA)
03:45
69
Inspecting The Database
02:29
70
Column Contraints
02:32
71
CustomerRepository
02:26
72
CustomerJPADataAccessService class
02:03
73
@Qualifier
02:48
74
Saving Entities
04:32
75
Exploring JPA Methods
03:44
76
Outro
02:04
77
The Problem (Get Customer By Id Exercise)
01:04
78
Exercise Solution
01:42
79
Intro (CRUD - Create)
01:36
80
Changing CustomerDao Interface
00:51
81
Override insert customer
01:28
82
Business Logic for Adding new Customer
08:36
83
Controller @RequestMapping and @RequestBody
02:46
84
Testing POST Request
04:07
85
Exercise (CRUD - Delete (Exercise))
01:40
86
Exercise Solution
02:35
87
Exercise (CRUD - Update (Exercise))
03:23
88
Exercise Solution
05:03
89
Few Words (Let's Pause)
01:18
90
Intro (Datasources, JDBC & Flyway)
01:52
91
JPA and Hibernate under the hood
03:12
92
JDBC and JDBCTemplate
04:44
93
DataSource and Connection Pools
06:37
94
Flyway and Liquibase
03:38
95
Flyway (Flyway)
06:21
96
Installing Flyway
00:49
97
Applying and Understanding Flyway Migrations
11:28
98
Lets Start Again but Right
03:45
99
Create Customer Table
04:23
100
Inspecting the Customer Table
03:19
101
Working with Sequences
06:59
102
Exercise
01:35
103
Exercise Solution
04:33
104
Migrations Documentation
02:45
105
Match Entity Containts schema
04:36
106
Validating Schema With Hibernate
05:28
107
Exercise Solution
06:39
108
Intro (JDBC Template)
01:16
109
CustomerJDBC class
03:47
110
JDBC Template Documentation
02:28
111
Insert Customer
03:53
112
Test Insert Customer
03:49
113
Select All Customers
05:31
114
RowMapper and ResultSet
04:50
115
Refactor Row Mapper
02:22
116
Exercise
00:40
117
Exercise Solution
04:04
118
Exercise
00:46
119
Exercise Solution
08:19
120
Why multiple DAO implementations
04:18
121
More on databases later
01:20
122
When to use JDBC over JPA (Spring JDBC vs JPA)
04:09
123
Would you ? (Important Question)
02:18
124
Intro (Testing - Setup)
02:44
125
Testcontainers
02:57
126
H2
01:26
127
Intalling Testcontainers
03:37
128
Let's Write a test Testcontainers
06:52
129
Inspecting DB created by Testcontainers
08:02
130
Apply migrations with Flyway
05:59
131
@DynamicPropertySource
03:29
132
Don't Use @SpringBootTest for Unit Tests
06:26
133
Abstract Testcontainres Logic
05:22
134
Intro (Testing JDBC Template)
01:27
135
JDBCTeamplate Test Class
04:53
136
Configure JDBC Template
04:50
137
selectAllCustomers Test
06:07
138
selectCustomerById Test
05:18
139
selectCustomerById Test 2
03:20
140
Exercises
01:17
141
Test Coverage
02:14
142
Exercise Solution
06:43
143
Intro (Testing JPA Repositories)
00:50
144
What do we need to test
05:07
145
The Wrong Way
05:07
146
@DataJpaTest and @AutoConfigureTestDatabase
04:58
147
Writing Tests For CustomerRepository
08:27
148
No Need to Test DB Backed by List (DAO Mock Testing)
01:36
149
Mockito
03:50
150
@Mock
03:12
151
Test Select All Customers
03:33
152
Test selectCustomerById
03:21
153
Exercise Solution
02:36
154
Intro (Testing Business Layer)
01:01
155
Create CustomerServiceTest and MockitoExtension
03:03
156
Test GetAllCustomers
01:17
157
Test getCustomer
05:53
158
Test if getCustomer Returns Empty Optional
04:48
159
Test addCustomer
06:23
160
addCustomer Test Code Explanation
04:09
161
Test addCustomer 2
03:59
162
Exercises
02:16
163
Exercise Solution (Part 1)
04:36
164
Exercise Solution (Part 2)
18:51
165
Exercise
00:43
166
Exercise Solution
05:29
167
Intro (Integration Testing)
02:03
168
@SpringBootTest
03:36
169
WebTestClient
03:32
170
The First Integration - canRegisterCustomer - Part 1
07:13
171
Running canRegisterCustomer Integration Test
04:43
172
The First Integration - canRegisterCustomer - Part 2
08:49
173
canDeleteCustomer Integration Test
03:07
174
Exercise Solution
05:41
175
Intro (The Upcoming Sections)
02:55
176
Intro (The Jar file)
01:44
177
Spring Boot Maven Plugin Jar
07:04
178
Running Jar
03:37
179
Intro (Maven & Tests)
00:40
180
Surefire Plugin
04:59
181
Configuring Surefire Plugin
03:47
182
Maven Failsafe Plugin
12:46
183
The Jar File
02:12
184
Section Outro
01:24
185
Intro (DevOps)
00:41
186
What is DevOps
07:54
187
DevOps Key Practices and Benefits
05:04
188
Outro
01:03
189
Intro (Docker)
01:55
190
What is Docker
01:32
191
Docker vs VM
04:35
192
Undestanding Containers
05:57
193
Docker Images and Containers
08:51
194
Docker Architecture
02:41
195
Docker Registries
04:14
196
Docker Login
05:50
197
Outro
01:15
198
Intro (Jib)
00:45
199
What is Jib
02:20
200
Configuring Jib Plugin
08:49
201
Building Docker Image
04:40
202
Pulling Image and Running Container
05:49
203
Container Comunication
04:39
204
Docker Network In Action
06:47
205
Docker Compose
07:05
206
Section Outro
00:55
207
Outro
02:18
208
Intro (AWS)
01:12
209
Infrastructure Components Overview
04:50
210
AWS Free Tier
03:53
211
AWS Console Overview
06:37
212
Elastic Beanstalk
02:47
213
Elastic Beanstalk Key Terms
03:17
214
Generate New Key Pair
04:07
215
Saving Private Key
02:46
216
Getting Started With Elastic Beanstalk (Elastic Beanstalk)
02:26
217
Elastic Container Service
03:38
218
Dockerrun aws json
08:33
219
Configure More Options
09:38
220
Infrastructure Provisioned By EB
03:57
221
Updating DB Host and Inspecting Logs
07:02
222
SSH MAC & LINUX & Windows
04:18
223
Bastions
04:01
224
Create Customer DB
06:06
225
Hooray we deployed the API
02:55
226
Exploring EB
04:22
227
Cloudformation
02:42
228
Infrastructure As Code
02:50
229
Multiple Environments
02:46
230
There Are Many Other Ways To Deploy
02:21
231
Intro (Git and Github)
01:21
232
What We Need To Do
00:41
233
Organizing Folders (Monorepo)
00:52
234
Create Github Repository
01:18
235
Pushing code to Github
06:14
236
Open the new Folder and Run Application
08:05
237
Intro (Github Actions)
03:56
238
Github Actions Overview
04:55
239
Intro (Continuos Integration)
01:31
240
Creating the workfow
03:45
241
Github Actions Services
05:53
242
Checkout Action
03:30
243
Setup Java Action
03:15
244
Run Shell Command
06:08
245
Commit and Push Workflow
01:16
246
New Feature Branch
03:14
247
Triggering the Workflow With Pull Request
05:39
248
Make Build Workflow Fail
04:40
249
Outro
01:31
250
Intro (Continous Delivery)
02:44
251
Create Deploy Workflow
03:04
252
Postgres Service
04:35
253
Setting Working Directory
01:07
254
Clone Java and Login to Docker Hub
04:32
255
Generate Custom Build Number
02:41
256
Build Number Step
02:09
257
Maven Verify Step
05:55
258
SED Command
05:57
259
Step to Replace tag in Dockerrun aws json
02:19
260
The Deployment Process
02:32
261
Create AWS Github Actions User with Programmatic Access
04:51
262
Github Secrets for AWS
03:58
263
AWS Elastic Beanstalk
04:13
264
Commit and Push Dockerrun.aws.json STEP
02:11
265
Continuous Delivery In Action
05:49
266
Outro
03:36
267
Intro (Slack Integration)
01:26
268
Installing Slack
01:08
269
Workspaces
01:34
270
Webhooks
04:13
271
Exercise
05:11
272
Exercise Solution
03:57
273
Deployment In Action With Slack Messaging
06:09
274
Discord Webhooks
02:08
275
Intro (Javascript)
01:14
276
Your First Javascript Code
02:09
277
What is Javacript and How it works
04:00
278
Visual Studio Code (VS Code)
02:18
279
NodeJS and NPM
02:48
280
Running JS with using Node
03:51
281
Code Runner
07:57
282
Comments
03:05
283
Quotes and Colons
04:17
284
Variables
05:22
285
Datatypes
01:59
286
Strings
06:07
287
Objects
06:01
288
Boolean
04:17
289
Arrays
05:09
290
Functions
05:39
291
Built in functions
06:06
292
Loops
04:29
293
Other types of For Loops
04:51
294
While Loop
04:50
295
Comparison Operators
04:09
296
Logical Operator
02:16
297
If Statement
07:16
298
Ternary if statement
03:09
299
Switch Statement
03:37
300
Hoisting
04:45
301
Let Keyword
01:35
302
Const Keyword
06:10
303
When to Use Const vs Let
04:10
304
Type Coercion
04:26
305
Triple Equals
03:48
306
Functions Overview
06:04
307
Arrow Functions
06:09
308
Function Default Parameter
03:29
309
Callbacks
07:48
310
Working with Objects
06:55
311
Object Destructing
05:14
312
Spread Operator on Objects
04:23
313
Working with Arrays
05:18
314
Arrays.Map
03:31
315
Array Destructuring
03:40
316
Default Exports
07:44
317
Name Exports and Imports
07:51
318
Your first Promise
05:00
319
synchronous vs asynchronous code
05:43
320
Async Await
06:15
321
Promise all
07:25
322
Promise base http client
07:52
323
Outro
01:02
324
What is React (React)
01:37
325
Vite
01:29
326
Scaffolding React App with Vite
05:10
327
Application Folder Stucture
03:35
328
SRC folder
04:27
329
Understanding Available Scripts
03:48
330
Clean up code to start fresh
02:35
331
Intro (Basics of React)
00:41
332
JSX
05:30
333
Components
03:03
334
Creating Components
04:13
335
Components and Props
05:50
336
Props Children
03:50
337
Tranformations with Map
08:19
338
UseState hook
04:28
339
UseEffect Hooks
07:00
340
Outro
01:24
341
Intro (React Building Our Web App)
01:32
342
UI Libraries
04:09
343
Installing Chakra
03:22
344
Testing ChakraUI installation
03:29
345
SideBar
06:29
346
Customize The SideBar
05:24
347
Axios and getCustomers method
04:40
348
Vite environement variables
02:57
349
Lets try to fetch data from the server
03:32
350
CORS
03:13
351
Allow CORS on the backend
07:38
352
Render Customers & Loading Spinner
09:08
353
Card Component
03:53
354
Wrap and Wrap Item
03:13
355
Customizing Card
07:30
356
Include sha and commit to CD workflow
04:18
357
Watch CD Workflow Deploy CORS changes
03:42
358
Intro (Backend and React - Gender Exercise (Challenging))
02:10
359
Exercise
03:16
360
Add New Migration (Backend and React - Gender Exercise Solution)
06:45
361
Updating Customer Contructor to Include Gender
05:02
362
Fixing Tests
08:11
363
Fixing Integration Tests
06:10
364
Add Gender and Profile Picture to Frontend
06:14
365
Deployment
07:56
366
Pull Lastest amigoscode-api version
03:47
367
Outro
01:43
368
Intro (React - New Customer Feature)
01:00
369
Create Customer Button
03:36
370
Drawer
05:06
371
Installing Formik and YUP
03:36
372
CreateCustomerForm component
04:42
373
Customise Form (Part 1)
08:27
374
Customise Form (Part 2)
04:46
375
Disable submit button if form not valid
04:14
376
Axios Post
02:10
377
onSubmit
05:48
378
Fetch customers on save
06:50
379
Toasts and Notifications
05:43
380
Using success and error notifications
05:13
381
Exercise (React - Delete Customer Exercise)
01:08
382
Exercise Solution
12:23
383
Exercise (React - Update Customer Exercise)
00:42
384
Exercise Solution
17:11
385
Final Touches
05:52
386
Intro (Dockerise React App and Docker Compose)
01:07
387
Dockerfile react frontend
07:34
388
Building React Frontend Docker Image
04:10
389
Running React Frontend Container
05:18
390
Looking inside the container
04:02
391
Adding react service to docker compose
04:47
392
Intro (React Frontend Deployment)
01:10
393
Docker Build Args
07:11
394
React Frontend Container Definition
07:05
395
Deploying
04:04
396
AWS Security Group and Rules
08:15
397
Adding Security Group Rule
05:24
398
Outro
02:58
399
Exercise (AWS - Exercise)
02:33
400
Exercise Solution
21:25
401
Intro (Security & JWT Overview)
01:34
402
The Problem
01:34
403
Spring Security
01:44
404
Exploring Spring Security Documentation
02:55
405
Introduction to JWT
03:52
406
The Structure of JWT
05:12
407
How We Are Going to Secure Our Endpoints
01:51
408
Installing Dependencies (Implementing Security)
05:15
409
Starting the server
03:02
410
Generate JWT Token
05:01
411
Generate JWT Token - Signing
06:31
412
Important
01:01
413
Send Signed Token to Client
04:09
414
Allow Only POST Requests to Register Customers
06:50
415
Inspecting JWT Token
02:13
416
Security FIlter Chain
06:36
417
The Next Steps
01:43
418
UserDetails
03:21
419
Implement UserDetails
06:55
420
Fixing Tests
08:34
421
UserDetailsService
07:10
422
Password Encoder and BCrypt
07:42
423
Hashed Passowords In Action
07:36
424
Authentication Provider
03:24
425
DaoAuthenticationProvider
05:58
426
JWT Token Validation Overview
02:10
427
JWT Auth Filter and Extract Token
04:50
428
Extract Subject From Token
03:08
429
Validate Token and Set Authentication
09:07
430
Registering The Filter
03:31
431
Attatching JWT to Requests
04:46
432
Fixing CustomerRepositoryTest
03:12
433
Lets Pause
01:17
434
Spring Security Architecture Explained
13:05
435
Outro
01:02
436
Intro (DTO Pattern)
01:46
437
DTO Pattern
16:01
438
Fixing canRegisterCustomer Integration Test (Implementing Security PART 2)
09:00
439
We Have A Problem With Spring Security
03:44
440
Authentication Entrypoint
05:14
441
@ControllerAdvice and @ExceptionHandler
08:17
442
Handle InsufficientAuthenticationException and Exception
04:15
443
Exercise
00:48
444
Exercise Solution canDeleteCustomer
05:02
445
Exercise Solution canUpdateCustomer
05:26
446
CORS Issue Again
02:39
447
Spring Security CORS
07:02
448
Login Exercise
01:28
449
Login Exercise Solution
14:12
450
Login Integration Test
12:17
451
Test Login using Postman
03:41
452
POST Mistake
01:59
453
Deployment
07:47
454
Testing API
03:08
455
Exercise
00:24
456
Exercise Solution
02:49
457
Outro
00:55
458
Intro (React - Login & Registration)
00:38
459
Section Intro
01:55
460
Installing React Router
03:39
461
React Router Routes
04:39
462
Login Page
03:45
463
Syling Right Side of Login Page
04:34
464
Login Form P1
06:51
465
Login Form P2
07:38
466
Login Post Method
02:02
467
React Context
02:55
468
AuthProvider
08:05
469
Using Context
07:39
470
Performing Login
05:35
471
Local Storage
04:07
472
Adding to Local Storage
03:19
473
Redirected After Successful login
02:54
474
Attach Authorization Header to HTTP Requests
05:23
475
Add Password To Create New Customer
05:08
476
Logout
05:59
477
Add Details about Current Logged in Customer
06:01
478
Protected Route
06:19
479
Check Token Expiration with JWT Decode
06:28
480
UseEffect in AuthProvider
08:10
481
Redirect to Dashboard if logged in
02:20
482
Testing when token expires
03:48
483
Login Page Deployment
07:31
484
Exercise
01:01
485
Exercise Solution (Part 1)
08:07
486
Exercise Solution (Part 2)
11:42
487
Deployment for Registration
04:52
488
Intro (AWS Load Balancers, Route53, Certificate Manager and SSL/TLS)
03:56
489
Section Overview
04:40
490
Load Balancers Overview
03:55
491
The Need For a Brand New Environment
02:10
492
Create new EB Environment with ALB
10:38
493
Deploy new version with correct DB details
05:05
494
Understanding ALB health checks
07:49
495
Actuator and Health Endpoint
07:48
496
Update Github Secrets
02:05
497
Deploy Actuator Changes
07:16
498
Changing LB Health Endpoint
06:49
499
Route 53 - Register Domain
02:27
500
Create A Record for Load Balancer
04:42
501
SSL and TLS
02:29
502
Issuing Certificate with Certificate Manager
03:13
503
HTTPS Listener
06:31
504
HTTP to HTTPS Redirects
03:42
505
Outro
01:44
506
Managed Hosting Services for Web Apps (AWS Amplify - React Deployment)
05:30
507
Installing AWS Amplify
04:20
508
Choosing Repo and Branch
01:55
509
Build Settings (Part 1)
04:15
510
Build Settings (Part 2)
06:34
511
Deployment
05:00
512
Custom Domain
07:14
513
Protect Web App
01:49
514
Previews
02:40
515
Change React UI
13:03
516
Raise PR
06:34
517
Merge PR
03:07
518
Intro (Typescript)
00:43
519
Your first Typescript code
01:49
520
Nodejs installation
00:44
521
VS code
00:59
522
Install Typescript
01:44
523
TS-node code runner settings
05:12
524
Comments
03:37
525
Declare variables
06:47
526
String type
04:59
527
Number type
03:04
528
Boolean type
01:54
529
Array type
05:03
530
Object type
04:16
531
Any type
03:22
532
Union type
04:15
533
Alias type
04:25
534
Tuple type
03:00
535
Enum type
05:35
536
Never type
04:06
537
Unknown type
05:10
538
Literal type
05:56
539
Functions
14:01
540
Classes
04:11
541
Class Access Modifiers
06:45
542
Class read only Access Modifiers
01:49
543
Inheritance
07:12
544
Getters and setters
07:07
545
Static properties and methods
05:52
546
Abstract class
07:03
547
Interfaces I
05:47
548
Interfaces II
03:37
549
Interfaces III
04:53
550
Interface Functions
02:37
551
Interface Optionals
01:56
552
Intro to Generics
10:14
553
Generics Classes and Interfaces
11:57
554
Outro
00:19
555
Intro (Getting Started with Angular)
00:44
556
What is angular
01:37
557
What is a module
02:09
558
Components in angular
04:35
559
Install angular cli
04:32
560
Bootstrap the app with npm
03:09
561
Explain project structure (src folder)
07:04
562
Explain project structure (package json file)
03:44
563
Explain project structure (angular json file)
08:30
564
Strip sample application
05:19
565
Create a new angular component (Basics of Angular)
04:42
566
Display and use a component
02:57
567
Data binding
05:43
568
Two ways binding
03:38
569
Event binding
03:48
570
Directives - Conditions - Nglf (Part 1)
09:09
571
Directives - conditions - Ngfor (Part 2)
06:26
572
Inputs
06:07
573
Output (Part 1)
08:04
574
Output (Part 2)
06:20
575
Services (Part 1)
08:09
576
Services (Part 2)
08:44
577
Routing-bootstrapping
03:15
578
Routing - Definition
03:54
579
Routing - Declaring a new route
07:47
580
Routing - Navigating to different routes by template and by injecting
06:51
581
Walking through PrimeNG Website (Angular - Application Skeleton)
06:21
582
Cleanup the Project
03:17
583
Adding PrimeNG Dependencies
04:16
584
Import PrimeNG Styles
03:14
585
Make Sure the Imports Work
01:35
586
Explaining Login and Register Pages
01:23
587
Explaining the Future Design of the App
04:12
588
Splitting the App into Components
03:34
589
Create the Customer Component
10:15
590
Create Menu Bar Component
09:44
591
Create Menu Item Component
06:34
592
Header Bar Component
16:42
593
Add Create Customer Button
02:06
594
Add the Sidebar
06:36
595
Create Mana-Customer Component (Part 1)
07:09
596
Create Mana-Customer Component (Part 2)
05:24
597
Create Login Component (Angular - Login Page)
00:47
598
Exercise 1 - Add Routing for Login Page
00:32
599
Exercise 1 - Solution
01:24
600
Implement Login Page UI (Part 1)
06:58
601
Implement Login Page UI (Part 2)
08:49
602
Create the Authentication Service
01:57
603
Create the Authentication Model
02:55
604
Exercise 2 - Bind the Authentication Model to the Login Form
00:28
605
Exercise 2 - Solution
02:43
606
Implement the Login Method
04:17
607
Consume the Login Method and Console Log the Result
03:16
608
Import the HTTP Client Module
01:47
609
Test the Login Method and Analyse the Response
02:15
610
Create Authentication Response Object
05:31
611
Make the Login Method Returns Authentication Response
01:29
612
Catch the Authentication Error and Display the Error Message
06:11
613
Implement Success Login - Store Unauthorised Response and Redirect the User
03:50
614
Why Securing a Route
01:02
615
What is a Guard
01:51
616
Create the Access Guard Service
01:43
617
Use the Access Guard to Secure the Customers Route
02:04
618
Add the Angular-JWT Library
02:28
619
Implement the Access Guard and Secure the Customers Route
06:29
620
Create Customer Service (Angular - Fetch All Customers)
00:54
621
Exercise 1 - Find all Customers
00:23
622
Exercise 1 - Solution
01:23
623
Display all Customers (Part 1)
04:08
624
Ddd the Authorisation Header to the Request
02:53
625
Display all customers (Part 2)
01:14
626
Generate Environments Files
03:17
627
Add Application Properties
04:15
628
Update the Services to use the Values from Environment file
04:40
629
Present the Hard Coded JWT Token (problematic)
02:40
630
Create the HTTP Interceptor
02:00
631
Make Angular use the Interceptor
03:02
632
Implement the Interceptor
03:25
633
Create Customer Card Component
01:40
634
Implement Customer Card UI
12:13
635
Exercise 2 - Display Customer Information in the Card component
00:12
636
Exercise 2 - Solution
04:08
637
Add Customer Registration Object as Input (Angular - Create Customer)
02:07
638
Create the Customer Registration Request Object
01:45
639
Add Binding to the Form
02:18
640
Exercise 1 - Disable the Submit button if the customer is not valid
00:30
641
Exercise 1 Solution
05:12
642
Exercise 2 - Delegate the Submit Operation to the Parent Component
00:34
643
Exercise 2 - Solution
02:06
644
Consume the Submit Event and Console Log the Customer Information
03:09
645
Create POST Customer Service Method
02:00
646
Exercise 3 - Save and Refresh the Customers List
00:29
647
Exercise 3 - Solution
05:20
648
Add Style to the Displayed Cards
02:13
649
Add Toast Component
02:05
650
Display Succes Message after Saving New Customer
03:38
651
Add Dynamic Profile Picture to the Customer Card
05:15
652
Exercise - Implement the Delete Functionality (including the confirm dialogue)
01:39
653
Delegate the Delete Event to the Parent and Console Log the Customer DTO
02:59
654
Add the Confirmation Dialogue Component
02:20
655
Display the Confirmation Dialogue and Console Log the Confirm Delete Action
04:31
656
Create Delete Customer Method (HTTP)
01:35
657
Perform Delete Action and Refresh the Customers List
01:54
658
Explaining the Update Functionnality (Angular - Update customer)
00:55
659
Create Customer Update Request Model
01:18
660
Create Customer Update Methods (service)
01:48
661
Add Operation Input and Manage Fields Display
04:11
662
Display Title Depending on the Operation
03:13
663
Delegate the Update Event to the Parent and Display Customer Information in the Form
05:27
664
Adjust the Create Customer (button) Click Envent
02:13
665
Adjust the Disabling of the Submit Button
03:13
666
Implement Update Customer (Part 1)
04:29
667
Extend the Customer Object and Test the Update Functionality (Part 2)
04:04
668
Correctly Display the Manage Customer Title
03:39
669
Implement Cancel Button
04:09
670
Exercise 1 - Display Username and Role in the Header
02:01
671
Exercise 1 - Soluion
03:28
672
Logout
04:43
673
Exercise - Implement the Registration Functionality (Angular - Register New Customer)
01:37
674
Create Register Component
00:59
675
Add Routing to Register Page
02:08
676
Implement the Register UI (Part 1)
03:56
677
Implement the Register UI (Part 2)
04:41
678
Add Binding to the Customer Registration Request
01:36
679
Register a User and Redirect to Customers Page
06:57
680
Redirect Angular (Angular - Tidy Up)
02:20
681
Tidy Up Some Files
02:57
682
Commit Changes
01:57
683
Exercise (Angular - Deployment Exercise + Solution)
00:49
684
Product Environment Configuration
03:46
685
AWS Amplify Configuration
04:34
686
Deploying Frontend
03:33
687
Custom Domain With Free SSL Certificate
04:16
688
Access Control
01:51
689
AWS Amplify Continuos Integration
05:34
690
AWS Amplify Continuos Delivery
05:34
691
Outro (Angular Outro)
01:22
692
Intro (Limit and Pagination)
01:47
693
The Problem and Fix
12:53
694
Outro
00:45
695
The Exercise (File Upload Exercise)
02:23
696
Documentation and POM (S3 File Uploads)
04:08
697
Create User
04:37
698
Create Access and Secret Keys
02:33
699
Storing Credentials
03:58
700
Amazon S3
02:38
701
S3Client Bean
05:16
702
Implement PutObject Method
04:21
703
Implement GetObject Method
03:26
704
Create S3 Bucket
02:43
705
Testing Uploads and Downloads
08:46
706
Bucket Name as Config
04:46
707
Upload and Download API Endpoints
05:17
708
Implement Service method to upload
06:03
709
Implement Service method to download
05:01
710
ProfileImageId New Column
08:07
711
SQL and JPQL Queries
06:57
712
Include new coloum in select statements
02:38
713
Stroring and Retrieving Profile Image Id from DBNew Lesson
05:03
714
Fixing Compilation and Tests
06:18
715
Test canPutObject
11:56
716
Test canGetObject
05:52
717
Test canGetObject Exception
04:33
718
Test uploadCustomerProfileImage Part 1
11:18
719
Test uploadCustomerProfileImage Part 2
06:01
720
Test uploadCustomerProfileImage Part 3
04:15
721
Test downloadCustomerProfileImage Part 1
05:25
722
Test downloadCustomerProfileImage Part 2
05:46
723
Test downloadCustomerProfileImage Part 3
02:40
724
Exception Handling Documentation
04:30
725
Test JPA Repository Query
06:48
726
Test JPA DAO Implementation
02:24
727
Test JDBC DAO Implementation
02:49
728
Adding Pictures To Test Folder
05:07
729
Picture Upload IT Part 1
07:46
730
Increase Multipart File Size
07:55
731
Download Picture Integration Test
06:55
732
Permit All to Download Picture
03:11
733
FakeS3
03:44
734
FakeS3 PutObject
06:38
735
FakeS3 GetObject
02:15
736
Mock S3
02:04
737
Mock S3 In Action
04:13
738
Roles and Policies
06:09
739
IAM Policy Simulator
07:41
740
Different Profiles Per Environment (Spring Profiles)
02:12
741
Working With Profiles
05:33
742
Test Profile Configuration
05:34
743
Deployment
02:39
744
SSH Into EC2
03:47
745
React Drop Zone (React - File Upload)
01:20
746
Syling Dropzone
04:05
747
Using Dropzone
04:36
748
Dropzone Upload FIle
04:53
749
Testing Picture upload
03:37
750
Reload Profile Picture On Upload
02:24
751
Display Profile Picture
02:25
752
MediaType IMAGE_JPEG_VALUE
02:09
753
CI_CD Backend and Frontend
05:12
754
Test Live Application
03:20
755
Outro (File Upload Outro)
02:32
756
We Built The Building Blocks and Potential Features (Few Words)
03:03
757
Improve Things as you Wish
01:25
758
Secrets Management
02:11
759
Next steps
01:06
760
Testimonial
01:54

Unlock unlimited learning

Get instant access to all 759 lessons in this course, plus thousands of other premium courses. One subscription, unlimited knowledge.

Learn more about subscription

Comments

0 comments

Want to join the conversation?

Sign in to comment

Similar courses

Demystifying Reactivity with Angular Signals

Demystifying Reactivity with Angular Signals

Sources: fullstack.io
Welcome to an insightful journey into building modern Angular applications with signals. This article aims to shed light on the relatively untapped potential of signals in Angul...
1 hour 44 minutes 15 seconds
NgRx (with NgRx Data) - The Complete Guide (FREE E-Book)

NgRx (with NgRx Data) - The Complete Guide (FREE E-Book)

Sources: udemy
This course is a complete guide to the new NgRx Ecosystem, including NgRx Data, Store, Effects, Router Store, NgRx Entity, and DevTools, and comes with a running Github repo.
6 hours 11 minutes 19 seconds
Complete Angular Developer in 2023 Zero to Mastery

Complete Angular Developer in 2023 Zero to Mastery

Sources: zerotomastery.io
Learn Angular from a senior industry professional. This is the only Angular course you need to learn Angular, build enterprise-level applications from scratch & get hired as an ...
27 hours 28 minutes 36 seconds
Complete Angular Developer in 2025 Zero to Mastery

Complete Angular Developer in 2025 Zero to Mastery

Sources: zerotomastery.io
Learn Angular from a senior industry professional. This is the only Angular course you need to learn Angular, build enterprise-level applications from scratc...
52 hours 28 minutes 39 seconds