Angular and spring Boot: Course Topics
Module 1: HTML
- HTML Syntax
- Create a basic HTML file following correct HTML syntax, including essential elements like <!DOCTYPE html>, <html>, <head>, and <body>.
- Structure a web page using HTML elements such as <header>, <nav>, <main>, <footer>, and <aside>
- Include head elements such as <meta>, <title><link>, and <style> in the HTML <head> section.
- Create paragraphs of text using the <p> element and emphasize text using <strong> and <em> elements.
- Create both ordered and unordered lists using <ul> and <ol> elements, along with list items <li>.
- Create anchor links using the <a> element and specify the href attribute for redirection.
- Design and implement buttons using the <button> element and style them using CSS.
- Insert images into a webpage using the <img> element and specify attributes like src and alt.
- Section and Div Element
- Design a form using the <form> element and incorporate various input elements like <input>, <textarea>, and <select>.
- Create a simple form submission mechanism using the <form> element and the method and action attributes.
- Introduction to CSS Framework
Module 2: CSS
- About Cascade Styling
- CSS Syntax
- Integrating CSS to HTML Documents
- Use CSS properties like border, background, border-radius, box-shadow, font, margin, and padding to style HTML elements.
- Experiment with different unit values like pixels, percentages, ems, and rems to style HTML elements.
- Set the width and height of HTML elements using CSS properties like width and height.
- Margin & Padding Properties
- Unit Values
- Width & Height Properties
- Box-sizing Property
- Float Property
- Layouts with Flexbox
- Layouts with Grid
Module 3: Angular
- Why Angular
- Introduction to Single Page Application
- Setting up the Development Environment.
- Angular Application Architecture
- Angular Template Syntax
- Event Binding Syntax
- Property Binding Syntax
- Interpolation Syntax
- Tracking Input State
- Tracking Additional Properties
- Handling Text Input
- Structural Directives
- Parent-Child Component Communication
- Understanding Structural Directives
- NgClass Directive
- NgFor
- NgIf
- Multiple Directives with Ng-Container
- NgSwitch
- Custom Directives
- Structural Directives
- Inter-component Communication (@Input/@Output, Event Emitter)
- Template variables (ViewChild/ContentChild)
- Lifecycle hooks
- Lazy Loading with Modules
- Template Driven Forms
- Reactive forms
- Form Validations
- Custom Synchronous form validations
- Custom Asynchronous form validations
- Routing and Navigation Between Pages
- Working with Child Navigation Routes
- Child Component Routing
- Matching Exact Routing Paths
- Child routes
- Route params
- Route Guards - CanActivate, CanActivateChild, CanDeactivate
- Lazy loading implementation
- Overview of Angular Services.
- HttpClient, HttpHeaders
- Observables with Operators
- map operator
- subscribe
- catch, retry .
- Subjects
- Sharing Data across Components using Service
- Http Client
- Handling Data and HTTP Request
- Escaping HTML Characters
- XSS Attacks
- Adding Title Links
- CSS Gotcha
- Restricting Routing with Guards
- Notes on RxJs
- Observable
- Implementing the Processing Pipeline
- Adding an Observer
- Operators and Operator Groups
- Low Level Observables
- Alternative Observer Syntax
- Unicast Observables
- Multicast Observables
- Hot vs Cold Observables
- RxJs Terminology
- The API Server
- Contacting the Backend API
- Cookie Based Authentication
- Username and Password Validation
- Async Validators
- Handling Errors from validation
Module 4: TypeScript Programming
- Intro to TypeScript.
- Basic Types.
- Type Inference
- Why TypeScript at All When you JavaScript work?
- Function in TypeScript
- Objects
- Classes and Properties
- Interface
- Arrow Functions
- Modules
- fetch API
- async / await.
- Public and Private Properties and Functions
- Property Assignment Shortcut
- Decorators
- Strict Mode
- Combining Interfaces and Classes
- Class Generics
- Working with Generics Classes and Functions
Module 5: Spring Boot
- What is Spring Boot?
- Creating a Project with Spring Boot Initializr.
- Develop a REST API Controller with Spring Boot
- Explore the Spring Boot Project Structure
- Leverage Spring Boot Starters - A Curated List of Dependencies
- Inherit Defaults with Spring Boot Starter Parents
- Automatically Restart with Spring Boot Dev Tools
- Add DevOps functionality with Spring Boot Actuator Endpoints
- Secure Spring Boot Actuator Endpoints
- Run Spring Boot apps from the Command-Line
- Use the Spring Boot Maven Plugin to package and run Spring Boot apps.
- Inject custom application properties into a Spring Boot REST Controller
- Maven
- Spring core
- Hibernate
- Spring Form Validation
- Spring MVC
- Spring Data JPA
- Spring Data Rest
- Spring REST API
- AOP: Aspect Oriented Programming
Module 6: Spring Security
- Secure your REST APIs and web applications with Spring Boot Security
- Set up your Maven pom.xml file with Spring Boot Security starter.
- Configure Spring Boot Security with all Java configuration (no xml)
- Create custom Spring Boot Security login pages with Bootstrap CSS
- Add logout support using default features of Spring Boot Security
- Leverage Spring Boot Security support for Cross Site Request Forgery (CSRF)
- Define users and roles for authentication
- Display user login info and role using Spring Boot Security tags.
- Restrict access to URLs based on user role.
- Hide and Display content based on user role.
- Add JDBC authentication, store user accounts and passwords in the database.
- Store encrypted passwords in the database using bcrypt.
- Register new users and encrypt passwords using Java code.
- Create a Spring Security Real-Time Project using authorization, authentication and database encryption.