Inside the core-apis folder, we have the src where the main app code will reside.

<aside> ⚡ We will call the following folders - controllers, services, repositories, common - project folders for the sake of the rest of this doc.

</aside>

<aside> ⚡ Use kebab-case for all package, folder, and file names. Each filename follows the naming standard - name.type.ts. Eg: user.model.ts, user.service.ts, user.controller.ts. Note, the type might not be possible in all cases like setup.ts

</aside>

The bootstrapper files have code that gets executed on application startup. They generally have code around configuration and scaffolding. There is one file at the root level and then each project folder level has its own bootstrapper for project folder-level configuration.

Each bootstrapper file exposes a public method called initialize. On application startup, after all the code related to Express startup is executed, we call the initialize method of the root bootstrapper file which does root-level configuration, and then calls the initialize method of the bootstrapper file in each project folder.

PAYLOADS

Payloads are classes (just public properties and no methods) for transferring data between the APIs and Clients. DTOs will reside in the shared folder of the monorepo and will be shared between the CoreAPIs project and client projects.