Angular (Full App) with Angular Material, Angularfire & NgRx
Use Angular, Angular Material, Angularfire (+ Firebase with Firestore) and NgRx to build a real Angular App
Start courseAngular is an amazing frontend JavaScript & TypeScript framework with which you can build powerful web applications.
There are a lot of courses that dive deeply into Angular but sometimes you just want to build an entire app and see how it all works in practice. And you want to use all these great third-party packages that can add a lot of awesome functionalities to your Angular app!
course covers exactly that!
We'll build an entire, realistic app which looks absolutely beautiful, uses Google's Material Design and is extremely fast! Thanks to Firebase and Angularfire, we'll add real-time database functionalities and see our updates almost before we make them!
Behind the scenes, NgRx will be used - a Redux-inspired state management solution that can greatly enhance your Angular app.
What are you waiting for, this is what you'll get in detail:
- A brief refresher on Angular, just in case you forgot how it works (or never learned it)
- A detailed introduction into Angular Material, its docs and its usage
- A realistic app that uses many Angular Material components
- Examples for components like Datepickers, Sidenavs or the Material Data Table (incl. sorting, filtering and live updating!)
- A real-time database connection powered by Firebase (using Firestore) and Angularfire
- A better understanding of RxJS observables
- State-of-the-art state management with the help of NgRx
- And so much more!
This course is for you if you want to practice Angular, want to see it in action or want to learn it with the help of a 100% practical project!
Who this course is for:
- Students who want to dive deeper into Angular and who want to build a real app with it
- Students who want to practice Angular
- Students who want a practical guide towards building Angular apps
- Students interested in using Firebase, NgRx and/ or Angular Material
Course content
Section 1Getting Started
- Welcome & Introduction2:12
- What's Inside the Course?2:24
- Join our Online Learning Community1:00
- How To Get The Most Out Of This Course2:15
- Planning the App1:37
Section 2A Brief Angular Refresher (OPTIONAL)
- Module IntroductionPremium0:46
- What is Angular?Premium4:22
- MUST READ: Angular CLI - Latest VersionPremium1:00
- Project Setup with the Angular CLIPremium4:23
- How an Angular App Starts and WorksPremium5:39
- Adding ComponentsPremium5:46
- Template SyntaxPremium7:00
- Using Directives like ngFor and ngIfPremium4:22
- Custom Property & Event BindingPremium7:13
- FormsPremium4:17
- Understanding Services & Dependency InjectionPremium11:10
- Angular RoutingPremium6:52
- Where to Dive DeeperPremium0:30
- Useful Resources & LinksPremium1:00
Section 3Angular Material
- Module IntroductionPremium3:17
- Understanding Angular Material ComponentsPremium3:03
- Adding Angular Material to a ProjectPremium13:13
- Stay Up To Date!Premium0:52
- Our First Angular Material Component - The ButtonPremium10:11
- Why Do We Have To Import Everything Separately?Premium1:00
- Creating the Course App StructurePremium7:54
- Working on The Signup FormPremium5:04
- Flexbox - A Quick RefresherPremium9:43
- Controlling the Layout with @angular/flex-layoutPremium6:05
- Adding & Configuring the Submit ButtonPremium5:06
- Implementing Hints and Validation Errors (on Forms)Premium9:38
- Adding a DatepickerPremium9:17
- Restricting Pickable DatesPremium3:27
- Adding a CheckboxPremium4:28
- Finishing the Form with StylePremium2:31
- Assignment - Angular Material (Problem)Premium1:34
- Assignment - Angular Material (Solution)Premium11:03
- Wrap UpPremium1:26
- Useful Resources & LinksPremium1:00
Section 4Diving Deeper into Angular Material
- Module IntroductionPremium0:39
- Adding Navigation & a SidenavPremium9:13
- Working on the Sidenav and ToolbarPremium5:13
- Styling the SidenavPremium9:08
- Making the Page ResponsivePremium5:08
- Adding Navigation ItemsPremium9:39
- Splitting the Navigation Into ComponentsPremium9:39
- Working on the Welcome ScreenPremium4:37
- Adding a Tabs ComponentPremium4:40
- Adding some "Cards"Premium6:20
- Adding a Dropdown MenuPremium6:00
- Adding a Spinner to the Training ScreenPremium9:16
- Adding a Nice Exercise TimerPremium3:21
- Adding a Cancel Dialog ScreenPremium6:11
- Passing Data to the DialogPremium6:34
- Adding "Exit" and "Continue" OptionsPremium3:07
- Wrap UpPremium1:12
- Useful Resources & LinksPremium1:00
Section 5Working with Data and Angular Material
- Module IntroductionPremium0:47
- Important: RxJS 6Premium1:11
- IMPORTANT: Install rxjs-compatPremium1:00
- Code without rxjs-compatPremium1:00
- Implementing AuthenticationPremium18:37
- Assignment - Angular Material & Data (Problem)Premium0:34
- Assignment - Angular Material & Data (Solution)Premium3:20
- Routing & AuthenticationPremium4:38
- Route ProtectionPremium6:54
- Preparing the Exercise DataPremium4:12
- Injecting & Using the Training ServicePremium4:34
- Setting an Active ExercisePremium3:14
- Controlling the Active ExercisePremium4:35
- Adding a Form to the Training ComponentPremium3:21
- Handling the Active Training via a ServicePremium4:53
- RxJS 6 UpdatePremium1:00
- Handling "Complete" and "Cancel" EventsPremium6:10
- Adding the Angular Material Data TablePremium14:07
- Adding Sorting to the Data TablePremium6:08
- Adding Filtering to the Data TablePremium5:20
- Data Table Filtering++Premium1:00
- Adding Pagination to the Data TablePremium5:33
- Wrap UpPremium0:51
- Useful Resources & LinksPremium1:00
Section 6Using Angularfire & Firebase
- Module IntroductionPremium0:59
- What is Firebase?Premium4:40
- Getting Started with FirebasePremium2:26
- What is Angularfire?Premium2:07
- RxJS Observables RefresherPremium6:24
- Diving into FirebasePremium7:35
- Connecting the App with AngularFirePremium12:23
- Operators & RxJS 6Premium1:00
- Listening to Snapshot Changes (of Firestore, incl. Metadata)Premium7:21
- Restructuring the CodePremium6:27
- How Firebase Manages SubscriptionsPremium2:52
- Storing Completed Exercises on FirestorePremium3:56
- Connecting the Data Table to FirestorePremium7:35
- Working with DocumentsPremium5:03
- Adding Real Authentication (Sign Up)Premium5:38
- Adding User LoginPremium1:51
- Understanding Authentication in SPAsPremium4:02
- Configuring Firestore Security RulesPremium4:15
- Managing Firestore SubscriptionsPremium5:31
- Reorganizing the CodePremium4:22
- Wrap UpPremium1:02
- Useful Resources & LinksPremium1:00
Section 7Optimizing the App
- Module IntroductionPremium0:50
- Style Improvements & Error HandlingPremium5:26
- Adding a SpinnerPremium10:28
- Assignment - Optimizations (Problem)Premium0:49
- Assignment - Optimizations (Solution)Premium5:23
- Adding a Re-Usable Snackbar (Notification)Premium3:05
- Improving Error HandlingPremium6:07
- Splitting the App Into ModulesPremium7:00
- Assignment - Modules (Problem)Premium0:42
- Assignment - Modules (Solution)Premium5:17
- Optimizing SubscriptionsPremium3:26
- Creating a SharedModulePremium4:40
- Splitting Up RoutesPremium3:33
- Loading a Module LazilyPremium10:19
- Moving the Auth GuardPremium2:37
- Wrap UpPremium1:58
- Useful Resources & LinksPremium1:00
Section 8Using NgRx for State Management
- Module IntroductionPremium4:04
- What is Redux - An OverviewPremium1:59
- NgRx Core Concepts - A First ExamplePremium14:39
- Working with Multiple Reducers & ActionsPremium12:35
- Dispatching Actions & Selecting State SlicesPremium4:37
- Assignment - NgRx (Problem)Premium0:54
- Assignment - NgRx (Solution)Premium9:04
- What's Up with the RxJS Import Syntax?Premium1:00
- Adding an Auth Reducer (and Actions)Premium9:51
- Adding Auth SubscriptionsPremium8:09
- Adding the Training Reducer and Actions with PayloadsPremium12:14
- Lazy Loaded StatePremium4:34
- Dispatching Training ActionsPremium5:16
- Selecting Training StatePremium6:33
- Selecting Single Values CorrectlyPremium7:30
- Connecting the Data TablePremium3:14
- Cleaning the Project UpPremium3:40
- Adding a small BugfixPremium0:54
- Wrap UpPremium1:02
- Useful Resources & LinksPremium1:00
Section 9Deploying the App
- Introduction & PreparationPremium1:43
- Deploying the App to Firebase HostingPremium4:10
- Useful Resources & LinksPremium1:00
Section 10BONUS: Angular Material Themes
- Module IntroductionPremium0:23
- Understanding Angular Material ThemesPremium1:38
- Adding the Theme with Angular 6Premium1:00
- Customising an Angular Material ThemePremium5:48
- Useful Resources & LinksPremium1:00
Section 11Round Up
- Course RoundupPremium0:49
Course instructor
Maximilian Schwarzmüller
As a self-taught professional I really know the hard parts and the difficult topics when learning new or improving on already-known languages. This background and experience enable me to focus on the most relevant key concepts and topics. My track record of many 5-star rated courses, more than 1,000,000 students worldwide as well as a successful YouTube channel is the best proof for that.
The most rewarding experience for me is to see how people find new, better jobs, build awesome web applications, work on amazing projects or simply enjoy their hobby with the help of my content. That's why, together with Manuel Lorenz, I founded Academind to offer the best possible learning experience and to share the pleasure of learning with our students.