NgModule
NgModule is a decorator in Angular that defines a module, a cohesive block of code dedicated to a workload or feature. An NgModule is a class decorated with @NgModule, and the class itself typically contains no logic. The module aggregates related components, directives, pipes, and services and provides a context for compilation and runtime.
The NgModule metadata includes several properties. Declarations list the components, directives, and pipes that belong to
NgModules influence the Angular dependency injection system and the compiler. The root module bootstraps the application,