> For the complete documentation index, see [llms.txt](https://docs.gapvelocity.ai/webmap/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.gapvelocity.ai/webmap/general/frontend/documentation/winforms-angular-components/conventions/application-structure-and-ngmodules.md).

# Application Structure and NgModules

* All of the app's code goes in a folder named **src**.
* All content is one asset per file.

## LIFT (style 04-01)

* Try to be DRY (Don't repeat yourself).
* Struct the app such that you can locate code quickly.

## Locate (style 04-02)

Make locating code intuitive, simple and fast.

## Identify (Style 04-03)

* Name the file such that you instantly know what it contains and represents.
* Avoid files with multiple components, services or mixture.

## Flat (Style 04-04)

* Keep a flat folder structure as long as possible.
* Create sub folder when there are seven or more files.

## T-DRY (Style 04-05)

* Do be DRY.
* Avoid being so DRY that you sacrifice readability.

## Overall structural guidelines (Style 04-07)

* Create folders named for the feature area they represent.
* Create an NgModule for each feature area.

## App root module (Style 04-08)

* Create an NgModule in the app's root folder.
* Consider naming the root module app.module.ts

## Feature modules (Style 04-09)

* Create a NGModule for all distinct feature in an application.
* Place the feature module in the same named folder as the feature area; example app/heroes.
* Name the feature module file reflecting the name of the feature area, and file, for example app/heroes/heroes.module.ts defines HeroesModule.

## Shared feature module (Style 04-10)

* Create a feature module named **SharedModule** in a **shared** folder. For example *app/shared/shared.module.ts* defines **SharedModule**.
* Avoid providing services in Shared modules. Services are usually singletons that are provided once for the entire application or in a particular feature module.
