[Last updated 11/2023] Learn to build an e-commerce app with .Net Core and Angular (Udemy – Engsub)
About Course
Views
What you’ll learn:
.Net Core
Angular
C# Generics
Repository and Unit of Work Pattern
Specification Pattern
Caching
Angular Lazy loading
Angular Routing
Angular Reactive Forms
Angular Creating a MultiStep form wizard
Accepting payments using Stripe
Angular Re-usable form components
Angular validation and async validation
Link gốc:
https://www.udemy.com/course/learn-to-build-an-e-commerce-app-with-net-core-and-angular/
Time Course:
34.5 hours (317 Lectures + Documents)
Instructor
: Neil Cummings
Total Weight:
17 GB
** Note
:
Chú ý:
Course Content
14 – Client – Basket
-
001 Introduction.mp4
01:12 -
002 Creating the basket module.mp4
04:11 -
003 Creating the basket types.mp4
04:09 -
004 Basket service methods.mp4
05:02 -
005 Adding an item to the basket service method.mp4
09:36 -
006 Adding the add item to basket in the component method.mp4
03:22 -
007 Persisting the basket on startup.mp4
02:44 -
008 Displaying the basket item count in the nav bar.mp4
04:58 -
009 Styling the basket page.mp4
11:09 -
010 Adding the basket totals to the service.mp4
05:11 -
011 Creating the order summary component.mp4
07:58 -
012 Adding the increment and decrement functionality.mp4
08:30 -
013 Adding the basket component functions.mp4
04:40 -
014 Hooking up the product detail component to the basket.mp4
15:01 -
015 Adding the checkout module.mp4
04:45 -
016 Summary of section 14.mp4
00:38
27 – Legacy – Publishing to a LAMP server using MySQL (.Net Core 3.1 only)
-
001 Installing MySQL – Legacy.mp4
04:22 -
002 Switching DB Servers – Legacy.mp4
10:27 -
003 Switching to the production database – Legacy.mp4
14:39 -
004 Pre deployment work – Legacy.mp4
13:31 -
005 Setting up a linux server part 1 – Legacy.mp4
16:14 -
006 Setting up a linux server part 2 – Legacy.mp4
17:37 -
007 Getting an HTTPS certificate from Lets Encrypt – Legacy.mp4
08:14
26 – Bonus – Updating project to .Net 7, Angular 15 and Bootstrap 5
-
001 Updating the .Net projects to .Net 7.mp4
06:48 -
002 Update to .Net 7 Minimal hosting model.mp4
14:29 -
003 Update to Angular 15.mp4
16:28 -
004 Update to Bootstrap 5.mp4
11:01 -
005 Basket Service Improvements – section 14 onwards.mp4
11:06 -
006 Basket component update – section 14-19.mp4
08:54 -
007 Basket component update – section 19 onwards.mp4
20:43 -
008 Product-Details component update.mp4
11:16 -
009 Enabling strict mode in Angular (optional).mp4
09:59
25 – Bonus – Updating project to .Net 6, Angular 12 and Bootstrap 5
-
001 Updating .Net project from .Net 5 to .Net 6.mp4
14:08 -
002 .Net 6 Project changes and new features.mp4
17:21 -
003 Updating from Angular 11 to Angular 12.mp4
08:58 -
004 Updating from Bootstrap 4 to Bootstrap 5.mp4
12:44
24 – Bonus – Updating project to .Net 5 and Angular 11
-
001 Updating .Net project from .Net Core 3.1 to .Net 5.0.mp4
09:05 -
002 Updating Angular project from Angular v9 to Angular v11.mp4
12:38
23 – Publishing
-
001 Introduction.mp4
01:58 -
002 Angular build configuration.mp4
11:42 -
003 Creating Angular production build.mp4
06:46 -
004 Installing PostgreSQL.mp4
06:33 -
005 Switching DB Servers.mp4
05:54 -
006 Switching to the production database.mp4
05:16 -
007 Pre deployment work.mp4
08:08 -
008 Deploying app to Linux server part 1.mp4
15:47 -
009 Deploying app to Linux part 2.mp4
14:25 -
010 Getting an HTTPS certificate from Lets encrypt.mp4
13:04 -
011 End of course summary.mp4
06:56
22 – Performance
-
001 Introduction.mp4
01:59 -
002 Setting up caching on the API.mp4
08:55 -
003 Creating a cache attribute class.mp4
11:27 -
004 Testing the caching.mp4
06:22 -
005 Caching on the client part 1.mp4
08:08 -
006 Caching on the client part 2.mp4
08:25 -
007 Caching on the client part 3.mp4
19:17 -
008 Pre-publishing adjustments.mp4
05:46 -
009 Summary of section 22.mp4
01:52
21 – Taking Payments
-
013 Displaying card validation errors.mp4
03:59 -
025 Summary of section 21.mp4
03:14 -
024 Testing our webhooks with the stripe CLI.mp4
07:42 -
023 Updating the payments service.mp4
06:25 -
022 Webhooks.mp4
08:08 -
021 Stripe validation.mp4
06:46 -
020 Enabling linear mode.mp4
07:27 -
019 Loading indicators.mp4
04:04 -
018 Making the submission a better experience.mp4
12:02 -
017 Tying the payment intent to the order.mp4
09:09 -
016 Testing card failures.mp4
07:02 -
015 Submitting the payment.mp4
06:32 -
014 Using the app stepper as an input property.mp4
03:12 -
001 Introduction.mp4
03:15 -
012 Adding stripe elements to the components.mp4
07:11 -
011 Implementing stripe elements.mp4
06:59 -
010 Persisting the shipping price.mp4
06:40 -
009 Adding the payment intent function.mp4
05:19 -
008 Updating the client basket.mp4
06:33 -
007 Creating the payment controller.mp4
08:47 -
006 Implementing the payment intent.mp4
13:55 -
005 Creating the payment service and interface.mp4
04:07 -
004 Setting up stripe.mp4
03:41 -
003 Strong Customer Authentication.mp4
07:14 -
002 PCI DSS.mp4
04:56
20 – Client – Order Module
-
001 Introduction.mp4
05:21
19 – Client – Checkout
-
011 Making the basket summary shared.mp4
10:01 -
021 Summary of section 19.mp4
01:05 -
020 Problem solution and redirect to success.mp4
07:30 -
019 Order submission.mp4
09:19 -
018 Creating the order interface.mp4
02:32 -
017 Updating the shipping price.mp4
04:13 -
016 Letting the user save the address.mp4
05:17 -
015 Populating the address form from API.mp4
06:52 -
014 Using the form status to mark the step complete.mp4
03:41 -
013 Adding the forward back buttons for the stepper.mp4
04:50 -
012 Checkout review component.mp4
06:15 -
001 Introduction.mp4
01:47 -
010 Using the Http interceptor to send the token.mp4
05:34 -
009 Delivery method template.mp4
05:11 -
008 Creating the delivery form.mp4
04:28 -
007 Creating the address form.mp4
05:31 -
006 Adding the checkout form.mp4
03:48 -
005 Creating the checkout components.mp4
02:25 -
004 Setting up the stepper component.mp4
09:58 -
003 Creating a stepper component.mp4
04:15 -
002 Checkout page layout.mp4
02:33
18 – API – Orders
-
012 Implementing the Unit of work.mp4
09:37 -
022 Summary of section 18.mp4
01:33 -
021 Another AutoMapper value resolver.mp4
05:14 -
020 AutoMapper config for orders.mp4
03:03 -
019 Shaping the order data.mp4
09:36 -
018 Testing the order controller get methods.mp4
03:19 -
017 Order controller get methods.mp4
04:14 -
016 Implementing the Order get methods.mp4
07:32 -
015 Using the debugger to view the order creation.mp4
04:34 -
014 Refactoring the Order service to use the Unit of work.mp4
06:04 -
013 Updating the generic repository.mp4
04:38 -
001 Introduction.mp4
01:39 -
011 Introducing the Unit of work.mp4
05:39 -
010 Debugging the order method.mp4
10:33 -
009 Creating the order controller.mp4
10:25 -
008 Implementing the create order method.mp4
10:38 -
007 Creating an order service.mp4
05:15 -
006 Creating the order migration.mp4
04:23 -
005 Store context update and seeding delivery methods.mp4
02:50 -
004 Configuring the order entities.mp4
06:34 -
003 Creating the order aggregate part 2.mp4
07:26 -
002 Creating the order aggregate part 1.mp4
08:52
17 – Client – Identity
-
011 Form Validation in Angular.mp4
05:09 -
021 Summary of section 17.mp4
01:52 -
020 Using the replay subject.mp4
07:33 -
019 Creating an auth guard.mp4
09:34 -
018 Improving the async validator.mp4
08:04 -
017 Async validation.mp4
06:08 -
016 Dealing with modelstate errors.mp4
03:39 -
015 Creating a register form.mp4
08:17 -
014 Reusable text input template.mp4
06:34 -
013 Creating a reusable text input.mp4
06:06 -
012 Displaying validation errors.mp4
03:41 -
001 Introduction.mp4
02:34 -
010 Adding a dropdown to the navbar.mp4
08:30 -
009 Persisting the login.mp4
07:50 -
008 Updating the nav bar for the logged in user.mp4
03:17 -
007 Submitting data to the server.mp4
02:54 -
006 Using reactive forms in Angular.mp4
04:55 -
005 Angular forms introduction.mp4
03:50 -
004 Creating the login form.mp4
03:10 -
003 Creating the account service methods.mp4
05:20 -
002 Creating the account module.mp4
06:08
16 – API – Validation
-
001 Introduction.mp4
01:03 -
002 .Net core error responses.mp4
04:51 -
003 Model validation.mp4
04:42 -
004 Checking for duplicate email addresses.mp4
08:24 -
005 Validating the basket.mp4
08:58 -
006 Updating swagger config for identity.mp4
08:36 -
007 Summary of section 16.mp4
00:55
15 – API – Identity
-
010 Registering a user.mp4
06:30 -
018 Summary of section 15.mp4
00:44 -
017 Adding another Dto for the user.mp4
09:36 -
016 Adding user manager extension methods.mp4
08:01 -
015 Adding additional account methods.mp4
09:33 -
014 Troubleshooting auth issues.mp4
11:21 -
013 Testing the token.mp4
08:24 -
012 Setting up identity to use the token.mp4
04:10 -
011 Adding a token generation service.mp4
10:03 -
001 Introduction.mp4
02:37 -
009 Adding an Account controller.mp4
11:52 -
008 Adding identity to program class.mp4
04:08 -
007 Adding the Startup services for identity.mp4
03:23 -
006 Seeding identity data.mp4
04:46 -
005 Adding a new migration.mp4
04:59 -
004 Adding the IdentityDbContext.mp4
06:09 -
003 Setting up the identity classes.mp4
06:29 -
002 Setting up the identity packages.mp4
05:27
01 – Introduction
-
06:09
-
04:01
-
003 Setting up VS Code for C# development.mp4
07:38 -
004 Where to get the source code and course assets.mp4
01:38
13 – API – Basket
-
001 Introduction.mp4
07:06 -
002 Setting up Redis.mp4
03:34 -
003 Setting up the basket class.mp4
03:51 -
004 Creating a basket repository interface.mp4
03:30 -
005 Implementing the basket repository.mp4
08:24 -
006 Adding the basket controller.mp4
06:14 -
007 Installing Redis with Docker.mp4
07:03 -
008 Installing Redis on a Mac.mp4
04:12 -
009 Installing Redis on Windows.mp4
06:07 -
010 Testing the basket functionality.mp4
03:35 -
011 Summary of section 13.mp4
01:04
12 – Client – Pazzazz
-
001 Introduction.mp4
01:11 -
002 Adding a section header.mp4
04:31 -
003 Adding breadcrumbs.mp4
04:39 -
004 Using the breadcrumb service.mp4
04:26 -
005 Setting the section header title from the breadcrumb service.mp4
06:37 -
006 Styling the product items.mp4
08:39 -
007 Changing the bootstrap theme.mp4
05:11 -
008 Adding loading indicators.mp4
11:35 -
009 Cleaning up loading issues.mp4
04:13 -
010 Adding the home page content.mp4
06:04 -
011 Summary of section 12.mp4
01:47
11 – Client – Error handling
-
001 Introduction.mp4
01:48 -
002 Creating an error component for testing the error responses.mp4
12:35 -
003 Creating additional error components.mp4
02:30 -
004 Using the Http Interceptor to catch errors.mp4
07:15 -
005 Adding toast notifications.mp4
06:53 -
006 Handling validation errrors.mp4
04:12 -
007 Improving the internal server error component.mp4
09:26 -
008 Summary of section 11.mp4
01:27
10 – Client – Routing
-
001 Introduction.mp4
02:36 -
002 Creating additional components to route to.mp4
03:05 -
003 Creating the routes.mp4
05:37 -
004 Setting up the nav links.mp4
04:14 -
005 Making the links active.mp4
06:13 -
006 Getting an individual product.mp4
06:27 -
007 Adding the product detail page.mp4
05:50 -
008 Lazy loading angular modules.mp4
07:11 -
009 Summary of section 10.mp4
00:47
09 – Client – Building the UI for our shop
-
011 Adding the sort functionality.mp4
04:31 -
020 Summary of section 9.mp4
01:24 -
019 Resolving the Bug!.mp4
03:10 -
018 Adding the search functionality.mp4
07:25 -
017 Pagination and Output properties.mp4
07:46 -
016 Making the pagination component a shared component.mp4
05:24 -
015 Adding a pagination header.mp4
06:00 -
014 Adding the pagination functionality part 3.mp4
03:53 -
013 Adding the pagination functionality part 2.mp4
07:10 -
012 Adding the pagination functionality.mp4
05:37 -
001 Introduction.mp4
05:09 -
010 Hooking up the filter to the HTML.mp4
03:10 -
009 Adding the filter functionality.mp4
05:33 -
008 Adding the product filters.mp4
05:06 -
007 Passing down data to child components.mp4
08:19 -
006 Adding a child component for the product items.mp4
02:41 -
005 Designing the shop page.mp4
08:17 -
004 Consuming services in the component.mp4
05:34 -
003 Intro to Angular services.mp4
04:48 -
002 Organising our files and folders.mp4
09:55
08 – Client – Angular Basics
-
001 Introduction.mp4
02:11 -
002 Adding a Nav Bar component.mp4
04:44 -
003 Adding the NavBar HTML code.mp4
07:31 -
004 Styling the nav bar.mp4
05:25 -
005 Intro to the Http Client Module.mp4
12:43 -
006 Observables.mp4
06:49 -
007 Intro to Typescript.mp4
07:58 -
008 Typescript Demo.mp4
11:47 -
009 Creating a products interface.mp4
06:51 -
010 Summary of section 8.mp4
03:20
07 – Client – Angular setup
-
001 Introduction.mp4
05:41 -
002 Setting up the developer environment for Angular.mp4
07:45 -
003 Creating the Angular project.mp4
02:44 -
004 Reviewing the Angular project files in the template.mp4
07:34 -
005 Setting up Angular to use HTTPS.mp4
06:14 -
006 Adding bootstrap and font-awesome.mp4
09:58 -
007 Adding VS Code extensions for Angular.mp4
02:12
06 – API Paging, Filtering, Sorting & Searching
-
001 Introduction.mp4
05:12 -
002 Adding a sorting specification class.mp4
05:15 -
003 Adding a sorting specification part 2.mp4
05:17 -
004 Working around the decimal problem in Sqlite.mp4
06:13 -
005 Adding filtering functionality.mp4
05:33 -
006 Adding Pagination Part 1.mp4
04:20 -
007 Adding Pagination Part 2.mp4
10:40 -
008 Adding Pagination Part 3.mp4
09:52 -
009 Adding the search functionality.mp4
05:10 -
010 Adding CORS Support to the API.mp4
05:02 -
011 Summary of section 6.mp4
01:02
05 – API Error Handling
-
001 Introduction.mp4
04:02 -
002 Creating a test controller for errors.mp4
10:27 -
003 Creating a consistent error response from the API.mp4
06:20 -
004 Adding a not found endpoint error handler.mp4
04:20 -
005 Creating Exception handler middleware.mp4
13:00 -
006 Improving the validation error responses.mp4
06:45 -
007 Adding Swagger for documenting our API.mp4
06:13 -
008 Improving the swagger documentation.mp4
05:30 -
009 Cleaning up the Startup class.mp4
05:48 -
010 Summary of section 5.mp4
01:00
04 – API Generic Repository
-
001 Introduction.mp4
08:05 -
002 Creating a Generic repository and interface.mp4
06:02 -
003 Implementing the methods in the Generic repository.mp4
09:10 -
004 Introduction to the specification pattern.mp4
06:03 -
005 Creating a specification class.mp4
11:32 -
006 Creating a specification evaluator.mp4
06:54 -
007 Implementing the repository with specification methods.mp4
06:31 -
008 Using the specification methods in the controller.mp4
08:06 -
009 Getting a single product with specification.mp4
08:43 -
010 Using the Debugger to view the spec pattern in action.mp4
08:31 -
011 Shaping the data to return with DTOs.mp4
08:06 -
012 Adding AutoMapper to the API project.mp4
05:41 -
013 Configuring AutoMapper profiles.mp4
05:58 -
014 Adding a Custom Value Resolver for AutoMapper.mp4
08:18 -
015 Serving static content from the API.mp4
03:35 -
016 Summary of section 4.mp4
02:35
03 – API Architecture
-
001 Introduction.mp4
03:15 -
002 The Repository Pattern.mp4
06:26 -
003 Adding a Repository and Interface.mp4
06:41 -
004 Adding the repository methods.mp4
05:29 -
005 Extending the products entity and creating related entities.mp4
05:19 -
006 Creating a new migration for the entities.mp4
05:10 -
007 Configuring the migrations.mp4
11:36 -
008 Applying the migrations and creating the Database at app startup.mp4
06:15 -
009 Adding Seed data.mp4
09:27 -
010 Adding the code to get the product brands and types.mp4
08:38 -
011 Eager loading of navigation properties.mp4
05:49 -
012 Summary of section 3.mp4
02:30
02 – API Basics
-
001 Introduction.mp4
04:44 -
002 Creating the Web API project.mp4
07:26 -
003 Running the API using the DotNet CLI.mp4
08:36 -
004 Reviewing the Web API startup files.mp4
11:16 -
005 Adding our first API Controller.mp4
11:13 -
006 Adding a C# Entity class.mp4
03:34 -
007 Setting up Entity Framework.mp4
07:31 -
008 Adding a connection string.mp4
04:37 -
009 Adding an Entity Framework migration.mp4
05:19 -
010 Updating the database.mp4
03:53 -
011 Reading the data from the Database in the API.mp4
09:59 -
012 Postman Collections.mp4
03:45 -
013 Creating the additional projects.mp4
09:31 -
014 Saving our project into source control using Git and GitHub.mp4
06:56 -
015 Summary of section 2.mp4
04:21
Student Ratings & Reviews
No Review Yet