Project Structure
A repository (aka Solution) for an insights+ module should contain the following projects:
- Front End project
- Front End tests
- Back End project
- Back End tests
- Db Up project (if it has a module-specific database)
Backend Project Folder Structure
We prefer keeping a project self-contained, rather than extracting layers into different projects. This is only a guideline, and may be ignored if necessary.
General folder structure. Sub-folders are allowed:
- BusinessLogic – Logic classes
- Data – Data access classes
- EntityFramework – Database Context
- Entities – The entities for the context
- EntityFramework – Database Context
- Endpoints – API endpoints if the project is a Web App.
- Exceptions – Custom exceptions
- Extensions – Extension classes
- Functions – The Azure Function classes if the project is an Azure Function app. Separate API versions.
- API
- V1, V2, etc.
- ServiceBus, Queue, Timer, etc. Based on trigger type.
- API
- Helpers – Static helper classes.
- Middleware – Middleware for project startup
- Models – Other types of objects like DTOs, enums, etc. Feel free to subfolder these items.
Leave a Reply