How the-builder-s-circle/culturesync-api works
1. Purpose and runtime entry point
CultureSync is a .NET backend for multi-tenant HR/workplace management: tenant onboarding, organization setup, authentication, authorization, audit logging, and domain areas including employees, goals, leave, attendance, appraisals, and performance cycles. The HTTP host starts at src/CultureSync.Api/Program.cs; container deployment is supported by src/CultureSync.Api/Dockerfile.
2. Layered architecture and dependency boundary
The repository follows a Clean Architecture/CQRS shape:
• API exposes HTTP controllers and translates requests/results.
• Application owns commands, queries, validation, pipeline behavior, and use-case orchestration.
• Domain owns entities, contracts, events, and shared business types.
• Infrastructure implements persistence, identity, mail, authorization, audit, templates, and external integrations.
Key boundaries are represented by src/CultureSync.Domain/Contracts/Repositories/IUnitOfWork.cs, src/CultureSync.Domain/Contracts/Services/IIdentityService.cs, and src/CultureSync.Infrastructure/Extensions/ServiceCollectionExtension.cs.
3. API request and error flow
Controllers are the public entry points for authentication and tenant lifecycle operations: src/CultureSync.Api/Controllers/AuthController.cs and src/CultureSync.Api/Controllers/TenantController.cs. Requests enter the ASP.NET Core pipeline configured in src/CultureSync.Api/Program.cs, are subject to tenant/header API documentation support in src/CultureSync.Api/Filters/TenantHeaderOperationFilter.cs, then dispatch into application commands or queries. Validation and application/infrastructure exceptions are converted to API error responses through src/CultureSync.Application/Middlewares/ExceptionHandlingMiddleware.cs and src/CultureSync.Infrastructure/Middleware/ExceptionMiddleware.cs.
4. CQRS use-case pipeline
Application operations use command/query abstractions, separating mutations from reads: src/CultureSync.Application/Abstractions/Messaging/ICommand.cs and src/CultureSync.Application/Abstractions/Messaging/IQuery.cs. Validation is centrally applied by src/CultureSync.Application/Wrapper/ValidationBehavior.cs; auditable mutations can flow through src/CultureSync.Application/Behaviors/AuditLoggingBehavior.cs. Core implemented use cases include login (src/CultureSync.Application/Commands/Auth/LoginCommand/LoginCommandHandler.cs), tenant-admin signup (src/CultureSync.Application/Commands/Tenant/SignUpOrganizationAdminCommand/SignUpOrganizationAdminCommandHandler.cs), organization setup, verification, and setup lookup reads.
5. Tenant lifecycle and isolation
Tenant onboarding is a primary business flow: admin registration, verification, and organization-profile setup are represented by the command folders under src/CultureSync.Application/Commands/Tenant. Tenant context is initialized at the infrastructure boundary by src/CultureSync.Infrastructure/Middleware/TenantInitializationMiddleware.cs, while persistence access is specialized by src/CultureSync.Infrastructure/Repositories/TenantRepository.cs. Domain tenant state and lifecycle events reside in src/CultureSync.Domain/Entities/Tenant.cs and src/CultureSync.Domain/Tenants/Events/TenantRegisteredDomainEvent.cs; application event handling includes tenant registration auditing.
6. Persistence, identity, and authorization
Entity Framework Core persistence centers on src/CultureSync.Infrastructure/Context/CultureSyncContext.cs, with schema evolution under src/CultureSync.Infrastructure/Migrations. Repositories and transactional coordination are implemented by src/CultureSync.Infrastructure/Repositories/BaseRepository.cs and src/CultureSync.Infrastructure/Repositories/UnitOfWork.cs. Identity/user operations are abstracted by src/CultureSync.Domain/Contracts/Services/IIdentityService.cs and implemented in src/CultureSync.Infrastructure/Services/IdentityService.cs. Permission-based authorization is enforced through src/CultureSync.Infrastructure/Authorization/PermissionAuthorizationHandler.cs and src/CultureSync.Infrastructure/Authorization/PermissionPolicyProvider.cs.
7. External services and extensibility
Email delivery and Razor-based email rendering cross infrastructure adapters: src/CultureSync.Infrastructure/Messaging/MailSender.cs, src/CultureSync.Infrastructure/Services/MailService.cs, and src/CultureSync.Infrastructure/TemplateEngine/RazorEngine.cs; the API includes the OTP mail view at src/CultureSync.Api/Views/SendOTPVerificationMail.cshtml. Media storage is abstracted through src/CultureSync.Domain/Contracts/Services/ICloudinaryService.cs and implemented by src/CultureSync.Infrastructure/Services/CloudinaryService.cs. Domain entities and enum state models in src/CultureSync.Domain/Entities provide the expansion surface for the broader HR modules.
Main entry points: SignUpOrganizationAdminCommandHandler.cs Tenant onboarding · ValidationBehavior.cs Validation & audit pipeline · AuthController.cs Auth & tenant controllers · Program.cs ASP.NET Core host
Components 22
API Host
- ASP.NET Core host · Configures HTTP pipeline and dependency injection.
src/CultureSync.Api/Program.cs - Auth & tenant controllers
src/CultureSync.Api/Controllers/AuthController.cs - Tenant header support
src/CultureSync.Api/Filters/TenantHeaderOperationFilter.cs
Application / CQRS
- Commands
src/CultureSync.Application/Abstractions/Messaging/ICommand.cs - Queries
src/CultureSync.Application/Abstractions/Messaging/IQuery.cs - Validation & audit pipeline · Validates requests and audits applicable mutations.
src/CultureSync.Application/Wrapper/ValidationBehavior.cs - Login use case
src/CultureSync.Application/Commands/Auth/LoginCommand/LoginCommandHandler.cs - Tenant onboarding · Registers the organization administrator and begins tenant setup.
src/CultureSync.Application/Commands/Tenant/SignUpOrganizationAdminCommand/SignUpOrganizationAdminCommandHandler.cs - Application error handling
src/CultureSync.Application/Middlewares/ExceptionHandlingMiddleware.cs
Domain
- Tenant aggregate · Owns tenant lifecycle state.
src/CultureSync.Domain/Entities/Tenant.cs - Tenant registered event
src/CultureSync.Domain/Tenants/Events/TenantRegisteredDomainEvent.cs - Unit of work contract
src/CultureSync.Domain/Contracts/Repositories/IUnitOfWork.cs - Identity contract
src/CultureSync.Domain/Contracts/Services/IIdentityService.cs
Infrastructure
- Tenant initialization · Establishes tenant context at the infrastructure boundary.
src/CultureSync.Infrastructure/Middleware/TenantInitializationMiddleware.cs - EF Core context · Central database access and schema mapping.
src/CultureSync.Infrastructure/Context/CultureSyncContext.cs - Repositories & unit of work
src/CultureSync.Infrastructure/Repositories/UnitOfWork.cs - Identity service
src/CultureSync.Infrastructure/Services/IdentityService.cs - Permission authorization
src/CultureSync.Infrastructure/Authorization/PermissionAuthorizationHandler.cs - Email delivery · Renders and sends verification mail.
src/CultureSync.Infrastructure/Services/MailService.cs - Cloud media storage
src/CultureSync.Infrastructure/Services/CloudinaryService.cs - Infrastructure error handling
src/CultureSync.Infrastructure/Middleware/ExceptionMiddleware.cs - Infrastructure registration
src/CultureSync.Infrastructure/Extensions/ServiceCollectionExtension.cs
Connections 24
- ASP.NET Core host → Infrastructure registration: registers adapters
- ASP.NET Core host → Tenant initialization: HTTP pipeline
- ASP.NET Core host → Infrastructure error handling: handles errors
- ASP.NET Core host → Auth & tenant controllers: routes requests
- Tenant header support → Auth & tenant controllers: documents tenant header
- Tenant initialization → Auth & tenant controllers: tenant-scoped request
- Auth & tenant controllers → Commands: dispatches mutations
- Auth & tenant controllers → Queries: dispatches reads
- Commands → Validation & audit pipeline: passes through
- Queries → Validation & audit pipeline: passes through
- Validation & audit pipeline → Login use case: login
- Validation & audit pipeline → Tenant onboarding: tenant signup
- Validation & audit pipeline → Application error handling: maps application failures
- Login use case → Identity contract: authenticates via
- Tenant onboarding → Tenant aggregate: creates
- Tenant aggregate → Tenant registered event: raises
- Tenant onboarding → Unit of work contract: persists through
- Tenant onboarding → Identity contract: provisions admin
- Tenant onboarding → Email delivery: sends verification
- Repositories & unit of work → Unit of work contract: implements
- Repositories & unit of work → EF Core context: uses
- Identity service → Identity contract: implements
- Permission authorization → Identity service: checks permissions
- Cloud media storage → EF Core context: stores media references