Angular – 12 Week Extended Syllabus
Week 1: Getting Started
- Introduction to Angular Framework
- Installing Node.js, Angular CLI & Project Setup
- Angular Project Structure & Modules
- Creating First Component & Template
- Data Binding (Interpolation, Property, Event, Two-way Binding)
Week 2: Components & Directives
- Component Interaction (Input, Output, EventEmitter)
- Structural Directives (*ngIf, *ngFor, ngSwitch)
- Attribute Directives (ngStyle, ngClass)
- Creating Custom Directives
- Lab: Build a reusable component library
Week 3: Pipes & Forms (Template-driven)
- Built-in Pipes (date, currency, uppercase, lowercase, slice, async)
- Creating Custom Pipes
- Template-driven Forms & Validation
- Binding Form Data & Error Messages
- Lab: Simple Registration Form
Week 4: Services & Dependency Injection
- Creating and Using Services
- Dependency Injection (DI) Hierarchical Injectors
- Singleton Services
- Using Services for State Sharing
- Lab: Build a service-driven application
Week 5: Routing & Navigation
- Angular Router Basics
- RouterOutlet, RouterLink, Route Parameters
- Nested Routes & Child Routes
- Route Guards (AuthGuard, CanActivate, CanDeactivate)
- Lab: Build a multi-page application with routing
Week 6: HTTP & RxJS Basics
- Angular HTTP Client Module
- Making GET, POST, PUT, DELETE API Calls
- Observables & RxJS Basics (subscribe, map, filter)
- Async Pipe Usage
- Error Handling with HTTP Interceptors
Week 7: Reactive Forms & Dynamic Controls
- Introduction to Reactive Forms
- FormGroup, FormControl, FormBuilder
- Form Arrays & Nested Forms
- Custom Validators & Async Validators
- Dynamic Form Controls (runtime generated)
- Lab: Advanced Multi-step Form
Week 8: Component Lifecycle & Advanced UI
- Component Lifecycle Hooks (ngOnInit, ngOnChanges, etc.)
- ViewChild & ContentChild Decorators
- Angular Animations Basics
- Introduction to Angular Material
- Using Material Components (Buttons, Dialogs, Tables, Forms)
Week 9: Advanced RxJS & State Management
- RxJS Operators (mergeMap, switchMap, concatMap, debounceTime, distinctUntilChanged)
- Subjects, BehaviorSubjects, ReplaySubjects
- State Management with Services
- Introduction to NgRx (Store, Actions, Reducers)
- Lab: Build an NgRx-powered shopping cart
Week 10: Performance & Optimization
- Lazy Loading Modules
- Preloading Strategies
- Change Detection Strategy (Default vs OnPush)
- TrackBy in *ngFor
- Optimizing Angular Applications (bundle size, AOT, Tree Shaking)
Week 11: Advanced Angular Topics
- Authentication & Authorization (JWT)
- Deployment (Firebase Hosting / Vercel / Netlify)
Week 12: Testing & Final Project
- Unit Testing with Jasmine & Karma (Components, Services, Pipes)
- End-to-End Testing with Protractor / Cypress
- Debugging Angular Applications
- Mini Project: Build a Full-featured Angular App (e.g., Blog, E-Commerce, or Task Manager)
- Final Assessment, Best Practices & Project Presentation
