Skip to content

Project Structure Overview

Folder Structure

app
├── common
│   └── { App Container, Common Module, e.g. Data Object }
├── constant
│   └── { Constant Variable, e.g. DI Types }
├── controller
│   └── { Controllers, e.g. TodoController }
├── locale
│   └── { Locale Releated Resources }
├── middleware
│   └── { Middlewares, e.g. LocaleMiddleware }
├── repositories
│   └── { Repositories , e.g. TodoRepository}
├── server.ts
├── service
│   └── { Services, e.g. TodoService }
└── utils
    └── { Utitlities, e.g. MongoConnection }

Relationship between modules

Global Scope

graph LR id1[server.ts]-->id2[Setup Project Modules] id1-->id3[Setup Global Middleware] id2-->id4[Controller] id2-->id5[Service] id2-->id6[Repository] id2-->id7[Middleware] id3-->id8[CORS] id3-->id9[Helmet] id3-->id10[Logger]

Domain Scope

graph TB a[User Request]-->id0[Middleware] id0-->id1[Controller] id1-->|Uses|id2[Service] id2-->|Result|id1 id2-->|Uses|id3[Repository] id2-->|Uses|id4[Utility] id3-->|Query|id5[Persistence Data] id4-->|Interact|id6[Thrid-party Data]