This directory contains specific guidance for AI assistants to follow when working with this codebase, but also serve as a great reference for developers.
When responding start by reading the relevant instructions from these areas.
It is EXTREMELY important that you follow the instructions in the rule files very carefully.
When making changes to both the frontend and backend, build the backend by running dotnet build
in the application directory to generate the Open API JSON contract. Then run npm run build
from the application directory to trigger openapi-typescript
to generate the API contract used by the frontend.
When we learn new things that deviate from the existing rules, suggest making changes to the rules files or creating new rules files. When creating new rules files, always make sure to add them to the relevant README.md file.
This is a mono repository with multiple self-contained systems (SCS), each being a small monolith. All SCSs follow the same structure. Use this overview to gain an understanding of the codebase structure.
- .github: GitHub workflows and other GitHub artifacts
- application: Contains application code
- account-management: A SCS for tenant and user management
- back-office: An empty SCS, that will be used to create tools for Support and System Admins
- AppHost: .NET Aspire project for orchestrating SCSs and Docker containers **
- AppGateway: Main entry point using .NET YARP as reverse proxy for all SCSs
- shared-kernel: Reusable .NET Backend shared by all SCSs
- shared-webapp: Reusable frontend shared by all SCSs
- cloud-infrastructure: Bash and Azure Bicep scripts (IaC)
- developer-cli: A .NET CLI tool for automating common developer tasks
** The AppHost project is the entry point. Do NOT RUN THIS as it's likely already running in watch mode.