Angular
Angular 
 Advanced
Course Outline 🔗Outline
Software Installation 🔗Angular Setup Guide
Reading Material
Useful References
DayModulesSharing
1
  • From NgModules to Standalone architecture
  • From RxJS-heavy to Signals-first model
  • From Zone.js to zoneless Angular
  • Angular 21 key features and direction
  • Standalone components, directives, and pipes
  • bootstrapApplication and app configuration
  • Route-based architecture design
  • Feature-based folder structure
  • signal(), computed(), effect()
  • Dependency tracking and reactivity model
  • Signal lifecycle and updates
  • Signals vs Observables (usage strategy)
  • @if, @for, @switch syntax
  • @defer for lazy UI loading
  • Signal binding in templates
  • Rendering performance considerations
Notes: Slides: Lab Exercises for Angular Project:
  1. 🏋️Setup TypeScript Environment
  2. 🏋️Your first Angular Project
  3. 🏋️Your First Standalone Component
  4. 🏋️Component Templates & Interaction
  5. 🏋️Introducing Signals
  6. 🏋️Computed Signals
  7. 🏋️Effects Signals
  8. 🏋️Angular Material and Header Setup
  9. 🏋️Products Grid with Angular Material
  10. 🏋️Rendering Lists with Signals and @for
  11. 🏋️Passing Data to Child Components with input()
  12. 🏋️Conditional Rendering with @if and @else
  13. 🏋️Writable Signals for Search State
  14. 🏋️Filtering Products with Computed Signals
  15. 🏋️Add to Cart with output()
  16. 🏋️Creating a Cart Service
  17. 🏋️Cart Badge with Computed Signals

Your Challenge:

By referring to the SVG project:

  • 🏋️Angular SVG as Template
  • Try change the project by adding signals to control the length of the bars on SVG chart

    2
    • Local vs shared state
    • Service-based signal stores
    • Derived state with computed()
    • Managing side effects using effect()
    • When to use Signals vs Observables?
    • Interop: toSignal(), toObservable()
    • Handling async data and streams
    • Lightweight store using Signals
    • Immutable update strategies
    • Domain-based state organization
    • Data flow design
    • Overview of NgRx Signals Store
    • Signal selectors and computed state
    • Handling async operations
    • Migration from traditional NgRx
    Notes: Pipes: Routing: Forms: State Management:

    Your Challenge:

    Create a member registration form using Signal Form to capture following member information:

    • Name
    • Age
    • Gender
    • EMail
    • Password
    You need to perform the following task:
    • You should consider suitable validations for each of these fileds
    • You also need to create a service to keep every sucessful new member registration
    • Create a route to view all the registered members
    • Optional: Create another version of this project by using NgRx signal store instead of signal service

    3
    • Removing Zone.js
    • Manual vs reactive updates
    • Performance implications
    • Signals vs traditional change detection
    • Minimizing re-renders
    • Component design for performance
    • Memoization using computed()
    • @defer strategies
    • Route-level lazy loading
    • Component-level lazy loading
    • Progressive rendering
    • Angular DevTools (Signals debugging)
    • Identifying bottlenecks
    • Optimizing large component trees
    Notes: Testing: Performance:

    Your Challenge:

    Use DevTools to analyse project#17 "Cart Badge with Computed Signals" from Day 1

    4
    • Angular SSR architecture
    • Hydration and pre-rendering
    • Signals behavior in SSR
    • Avoiding SSR pitfalls
    • HTTP integration with Signals
    • Interceptors (auth, logging, errors)
    • Error handling strategies
    • Caching and retry patterns
    • Angular Elements with standalone components
    • Using Signals in Web Components
    • Integration with non-Angular systems
    • Feature-based architecture
    • Domain boundaries and separation
    • Code reuse and shared libraries
    • Optional: Nx monorepo strategy
    • Optional: Microfrontend concepts
    Notes: SSR: HTTP Client:

    Your Challenge:

    Complete the store project from day 1 (Continue from exercises #17).
    The complete application should perform the following

    1. All the products are from database system (MySQL for example)
    2. Allow user to add item to cart
    3. Allow user to delete item from cart
    4. Allow user to visit the cart before commit perchasing
    5. Allow user to clear the cart
    6. Up on commit sucessful purchasing, the inventory in product will be updated (Ignore transactional handling issue at the moment)
    Design routing to handle each of these tasks

    Recommanded Books
    TitleModern Angular: Also covers signals, standalone, SSR, zoneless, and more
    ISBN978-1-633-43692-3
    AuthorArmen Vardanyan
    Year2025
    Publisher Manning Publications
    TitleReactive Patterns with RxJS and Angular Signals: Elevate your Angular 18 applications with RxJS Observables, subjects, operators, and Angular Signals
    ISBN978-1-835-08770-1
    AuthorLamis Chebbi
    Year2024
    Publisher Packt Publishing