Our website uses cookies to give you the best and most relevant experience. By clicking on accept, you give your consent to the use of cookies as per our privacy policy.
Deny
Accept
Show Sidebar
Autoplay
Autocomplete
Previous Lesson
Complete and Continue
Angular 4: Beginner to Pro
Getting Started (30m)
1- Introduction (2:51)
2- What is Angular (2:00)
3- Architecture of Angular Apps (3:48)
4- Setting Up the Development Environment (2:40)
5- Your First Angular App (2:25)
6- Structure of Angular Projects (6:54)
7- Webpack (3:15)
8- Angular Version History (3:34)
9- Course Structure (3:46)
10- Making a Promise (0:48)
11- Follow Me Around
12- Learning Paths
TypeScript and Object-oriented Programming Fundamentals (1h)
1- Introduction (0:41)
2- What is TypeScript (2:24)
3- Your First TypeScript Program (3:00)
4- Declaring Variables (4:49)
5- Types (5:43)
6- Type Assertions (2:47)
7- Arrow Functions (1:44)
8- Interfaces (3:54)
9- Classes (4:31)
10- Objects (4:09)
11- Constructors (2:52)
12- Access Modifiers (2:56)
13- Access Modifiers in Constructor Parameters (1:41)
14- Properties (5:18)
15- Modules (4:31)
16- Exercise
17- Solution (8:48)
Angular Fundamentals (45m)
1- Introduction (0:19)
2- Building Blocks of Angular Apps (3:41)
3- Creating Components (9:38)
4- Creating Components Using Angular CLI (4:42)
5- Templates (2:28)
6- Directives (3:27)
7- Services (4:29)
8- Dependency Injection (7:20)
9- Generating Services Using Angular CLI (2:11)
10- Exercise- Authors (0:32)
11- Solution (6:17)
A Quick Note
Displaying Data and Handling Events (1h5m)
1- Introduction (0:24)
2- Property Binding (3:16)
3- Attribute Binding (3:35)
4- Adding Bootstrap (4:53)
5- Class Binding (1:47)
6- Style Binding (1:19)
7- Event Binding (4:30)
8- Event Filtering (1:50)
9- Template Variables (1:53)
10- Two-way Binding (8:06)
11- Pipes (6:38)
12- Custom Pipes (6:16)
13- Exercise- Favorite Component (1:22)
14- Solution- Favorite Component (5:05)
15- Exercise- TitleCase (1:17)
16- Solution- Title Case (10:25)
Building Re-usable Components (1h)
1- Introduction (0:26)
2- Component API (4:22)
3- Input Properties (4:45)
4- Aliasing Input Properties (4:22)
5- Output Properties (3:22)
6- Passing Event Data (5:51)
7- Aliasing Output Properties (2:05)
8- Templates (2:41)
9- Styles (5:10)
10- View Encapsulation (9:11)
11- ngContent (4:56)
12- ngContainer (2:34)
13- Exercise- LikeComponent (1:38)
14- Solution- LikeComponent (4:51)
A Quick Note
Directives (1h)
1- Introduction (0:31)
2- ngIf (6:11)
3- Hidden Property (3:25)
4- ngSwitchCase (6:36)
5- ngFor (4:18)
6- ngFor and Change Detection (3:28)
7- ngFor and TrackBy (5:47)
8- The Leading Asterisk (1:47)
9- ngClass (1:51)
10- ngStyle (2:31)
11- Safe Traversal Operator (2:45)
12- Creating Custom Directives (9:53)
13- Exercise- Zippy (1:06)
14- Solution- Zippy (7:56)
Template-driven Forms (1h)
1- Introduction (0:26)
2- Building a Basic Bootstrap Form (4:05)
3- Types of Forms (3:21)
4- ngModel (5:30)
5- Adding Validation (3:17)
6- Specific Validation Errors (4:20)
7- Styling Invalid Input Fields (1:26)
8- Cleaner Templates (1:52)
9- ngForm (5:05)
10- ngModelGroup (2:38)
11- Control Classes and Directives (1:47)
12- Disabling the Submit Button (1:08)
13- Working with Check Boxes (2:18)
14- Working with Drop-down Lists (6:02)
15- Working with Radio Buttons (2:55)
16- Exercise- Create Course Form (1:08)
17- Solution- Course Form (11:34)
Reactive Forms (1h15m)
1- Introduction (1:15)
2- Building a Bootstrap Form (0:50)
3- Creating Controls Programatically (6:14)
4- Adding Validation (7:07)
5- Specific Validation Errors (2:33)
6- Implementing Custom Validation (7:01)
7- Async Operations (5:13)
8- Async Validators (8:04)
9- Displaying a Loader Image (1:37)
10- Validating Upon Submitting the Form (4:58)
11- Nested FormGroups (2:40)
12- FormArray (8:43)
13- FormBuilder (3:59)
14- Quick Recap (1:16)
15- Exercise- Change Password Form (1:27)
16- Solution- Change Password Form (15:17)
Consuming HTTP Services (1h50m)
1- Introduction (1:03)
2- JSONPlaceHolder (1:52)
3- Getting Data (8:17)
4- Creating Data (7:59)
5- Updating Data (5:05)
6- Deleting Data (1:59)
7- OnInit Interface (3:54)
8- Separation of Concerns (3:41)
9- Extracting a Service (7:09)
10- Handling Errors (3:21)
11- Handling Unexpected Errors (2:27)
12- Handling Expected Errors (4:28)
13- Throwing Application-specific Errors (8:32)
14- Code Review (2:59)
15- Importing Observable Operators and Factory Methods (3:08)
16- Global Error Handling+ (7:03)
17- Extracting a Reusable Error Handling Method (3:35)
18- Extracting a Reusable Data Service (7:40)
19- The Map Operator (4:27)
20- Optimistic vs Pessimistic Updates (6:25)
21- Observables vs Promises (6:44)
22- Exercise (1:15)
23- Solution (5:31)
Routing and Navigation (1h5m)
1- Introduction (0:30)
2- Routing in a Nutshell (1:04)
3- Configuring Routes (6:47)
4- RouterOutlet (2:29)
5- RouterLink (5:41)
6- RouterLinkActive (1:52)
7- Accessing Route Parameters (5:23)
8- Why Route Parameters Are Observables (8:57)
9- Routes with Multiple Parameters (1:48)
10- Query Parameters (4:28)
11- Subscribing to Multiple Observables (4:45)
12- The SwitchMap Operator (7:59)
13- Programmatic Navigation (2:16)
14- Exercise-Blog Archives (2:01)
15- Solution (8:23)
Authentication and Authorization (1h)
1- Introduction (0:46)
2- Application Overview (2:29)
3- Architecture (3:02)
4- JSON Web Tokens (5:47)
5- The Starter Code (8:02)
6- Implementing the Login (6:08)
7- Implementing the Logout (1:47)
8- Showing : Hiding Elements (6:41)
9- Showing - Hiding Elements Based on the User's Role (4:15)
10- Getting the Current User (0:49)
11- CanActivate Interface (5:35)
12- Redirecting the Users After Logging In (4:34)
13- Protecting Routes Based on the User's Role (5:45)
14- Accessing Protected API Resources (7:27)
15- Quick Recap (1:54)
Deployment (1h12m)
1- Introduction (0:36)
2- Preparing for Deployment (5:36)
3- JIT vs AOT Compilation (5:29)
4- Angular Compiler in Action (3:34)
5- Building Applications with Angular CLI (6:40)
6- Environments (4:27)
7- Adding a Custom Environment (3:10)
8- Linting with Angular CLI (4:45)
9- Linting in VSCode (1:59)
10- Other Deployment Options (3:59)
11- Deploying to GitHub Pages (7:29)
12- Deploying to Firebase (7:03)
13- Heroku (1:44)
14- Deploying to Heroku (8:04)
15- Engines (1:28)
16- Exercise (0:20)
Building Real-time Apps with Firebase (56m)
1- Introduction (1:16)
2- What is Firebase? (2:20)
3- Your First Firebase Project (0:41)
4- Working with Firebase Databases (4:59)
5- Installing Firebase (5:08)
6- Reading Lists (7:17)
7- A Real-time Database (1:32)
8- Observables and Memory Leaks (2:53)
9- Unsubscribing from Subscriptions (4:08)
10- Async Pipe (2:40)
11- Reading an Object (3:26)
12- As Keyword (2:21)
13- Adding an Object (8:00)
14- Updating an Object (5:06)
15- Deleting an Object (2:12)
16- Additional Resources (2:49)
Angular Animations (1h30m)
1- Introduction (0:44)
2- Examples of Animations (2:23)
3- Different Ways to Create Animations (4:33)
4- Angular Animations (4:08)
5- Importing Animations Module and Polyfill (2:44)
6- Implementing a fadeIn Animation (7:11)
7- Implementing a fadeOut Animation (1:58)
8- States (3:12)
9- Transitions (2:10)
10- Creating Re-usable Triggers (2:12)
11- Exercise- Slide Animation (0:52)
12- Solution (3:42)
13- Easings (5:34)
14- Keyframes (5:27)
15- Creating Re-usable Animations (7:53)
16- Parameterizing Re-usable Animations (8:12)
17- Animation Callbacks (2:45)
18- Querying Child Elements (5:32)
19- Animating Child Elements (3:02)
20- Running Parallel Animations (3:01)
21- Staggering Animations (7:24)
22- Working with Custom States (10:01)
23- Multi-step Animations (2:16)
24- Separation of Concerns (3:31)
Angular Material (2h30m)
1- Introduction (0:42)
2- What is Angular Material (4:31)
3- Installing Angular Material (7:30)
4- CheckBoxes (4:28)
5- RadioButtons (5:43)
6- Selects (5:07)
7- Inputs (7:31)
8- Text Areas (1:49)
9- DatePickers (9:37)
10- Icons (3:40)
11- Buttons (4:50)
12- Chips (5:45)
13- Progress Spinner (7:31)
14- Tooltips (2:18)
15- Tabs (2:24)
16- Dialogs (8:39)
17- Passing Data to Dialogs (10:47)
18- Other Components
19- Creating a Reusable Module (5:51)
20- Themes (4:20)
21- SASS (8:46)
22- Creating a Custom Theme (9:10)
23- Using Angular Material's Typography (3:01)
24- Customizing Typography (6:31)
25- An Important Note
Redux (1h19m)
01- Introduction (0:34)
02- What is Redux (6:33)
03- Building Blocks of Redux (3:29)
04- Pure Functions (4:13)
05- Installing Redux (6:26)
06- Working with Actions (7:56)
07- The Select Pattern (6:31)
08- Avoiding Object Mutations (5:03)
09- Using Immutable Objects (5:41)
10- Exercise (1:52)
11- Redux DevTools (8:45)
12- Calling APIs (9:06)
13- Refactoring Fat Case Statements (2:33)
14- Dealing with Complex Domains (8:56)
Unit Testing (1h)
01- Introduction (1:12)
02- What is Automated Testing (7:27)
03- Types of Tests (6:04)
04- Unit Testing Fundamentals (7:44)
05- Working with Strings and Arrays (3:14)
06- Setup and Tear Down (6:05)
07- Working with Forms (3:30)
08- Working with Event Emitters (2:51)
09- Working with Spies (6:56)
10- Interaction Testing (6:26)
11- Working with Confirmation Boxes (3:09)
12- Limitations of Unit Tests (1:31)
13- Code Coverage (3:30)
Integration Testing (1h20m)
01- Introduction - Integration Testing (0:44)
02- The Setup Code (4:41)
03- Genertaing the Setup Code (4:53)
04- Testing Property and Class Bindings (7:55)
05- Testing Event Bindings (4:59)
06- Providing Dependencies (2:37)
07- Getting the Dependencies (5:48)
08- Providing Stubs (7:11)
09- Testing the Navigation (4:02)
10- Dealing with Route Params (6:33)
11- Testing RouterOutlet Components (7:05)
12- Shallow Component Tests (4:54)
13- Testing Attribute Directives (4:30)
14- Dealing with Asynchronous Operations (5:41)
Project: Set Up (1h5m)
1- Introduction (4:58)
2- Accesing the Source Code
3- Challenge (2:41)
4- Creating a New Project (5:16)
5- Installing Bootstrap (4:54)
6- Extracting a NavBar Component (1:59)
7- Defining the Routes (7:51)
8- Adding a Drop-down Menu (6:44)
9- Cleaning Up the NavBar (2:26)
10- Fixing a Few Minor Issues (3:02)
11- Deployment (2:51)
Project: Authentication and Authorization (1h7m)
1- Introduction (2:06)
2- Implementing Google Login (8:27)
3- Implementing the Logout (3:12)
4- Displaying the Current User (2:20)
5- Using the Async Pipe (4:42)
6- Extracting a Service (7:57)
7- Protecting Routes (6:25)
8- Redirecting the Users After Login (8:27)
9- Storing Users in Database (5:51)
10- Defining Roles (5:47)
11- Protecting the Admin Routes (11:13)
12- Showing or Hiding the Admin Links (8:05)
13- Fixing a Bug (1:32)
Project: Product Management (1h35m)
1- Introduction (2:00)
2- Building a Bootstrap Form (7:35)
3- Populating Categories Drop-down List (8:57)
4- Saving a Product in Firebase (7:24)
5- Implementing Validation (5:32)
6- Adding Custom Validation (4:42)
7- Adding a Bootstrap Card (7:10)
8- Rendering the List of Products (4:05)
9- Editing a Product (10:30)
10- Updating a Product (4:09)
11- Deleting a Product (3:59)
12- Searching for Products (9:26)
13- Extracting an Interface (1:20)
14- Adding a Data Table Component (5:07)
15- Configuring the Data Table (4:32)
16- Feeding the Data Table (8:04)
17- Filtering with the Data Table (3:18)
18- Fixing a Bug with Redirecting Users (2:52)
19- Cleaning Up the Product Form (1:36)
Project: Product Catalog (50m)
1- Introduction (1:20)
2- Displaying All the Products (7:54)
3- Displaying the Categories (3:37)
4- Filtering Products by Category (8:09)
5- Dealing with Multiple Asynchronous Operations (4:54)
6- Refactoring- Extracting ProductFilterComponent (7:54)
7- Refactoring- Extracting ProductCardComponent (8:32)
8- Improving the Product Card (2:31)
9- Making Categories Sticky (2:24)
10- Wrap Up (0:36)
Project: Shopping Cart (2h)
1- Introduction (2:59)
2- Creating a Shopping Cart (8:59)
3- Refactoring- Moving the Responsibility to the Service (7:38)
4- Adding a Product to Shopping Cart (7:28)
5- Refactoring the addToCart Method (6:10)
6- Displaying the Quantity (9:41)
7- Improving the Card Footer (4:36)
8- Implement the Change Quantity Buttons (6:59)
9- Displaying the Number of Shopping Cart Items in Navbar (9:10)
10- Refactoring: Creating a Rich Model (9:03)
11- Building a Simple Shopping Cart Page (6:11)
12- Fixing a Design Issue (4:56)
13- Displaying the Total Price (5:43)
14- Refactoring: Extracting ProductQuantityComponent (8:33)
15- Discovering a Design Issue (6:18)
16- Flattening Shopping Cart Items (8:40)
17- Better Object Initialization (4:47)
18- Clearing the Shopping Cart (3:21)
19- Fixing a Bug with Updating Quantity (1:36)
20- Improving the Layout (2:41)
21- Adding a Thumbnail (3:20)
22- More Refactoring (8:11)
Project: Check Out Module (1h30m)
1- Introduction (2:00)
2- Adding the Check Out Button (2:43)
3- Building a Shipping Form (1:14)
4- Saving the Order in Firebase (8:39)
5- Associating the Order with the Current User (2:10)
6- Refactoring- Extracting a Rich Model (4:29)
7- Redirecting the User (2:54)
8- Clearing the Shopping Cart (2:52)
9- Transactions
10- Adding an Order Summary Widget (8:47)
11- Refactoring (9:15)
12- Displaying the Orders (3:07)
13- Fixing a Bug (1:11)
14- Processing the Payments
Project: Modularization and Final Improvements (1h)
1- Introduction (1:02)
2- Modules (5:54)
3- Essential TypeScript Plugins (4:12)
4- Moving Files and Folders (5:35)
5- Creating the Shared Module (5:55)
6- Creating the Admin Module (9:27)
7- Creating the Shopping Module (4:52)
8- Creating the Core Module (5:26)
9- Importing and Exporting Modules (6:22)
10- Adding Icons (2:29)
11- Aligning the NavBar Items (3:34)
12- Defining a Theme (5:38)
Wrap Up
04- Testing Property and Class Bindings
Lesson content locked
If you're already enrolled,
you'll need to login
.
Enroll in Course to Unlock