Ten ready-to-ship modules, each a bounded context with its own DbContext, contracts assembly, and feature folders. Pick one to dive into.
- 01/10
Identity module
JWT bearer + refresh tokens, ASP.NET Identity with roles + permissions, user groups, operator impersonation, two-factor TOTP, sessions, and password-policy enforcement.
- 02/10
Multitenancy module
Finbuckle-driven tenant resolution (claim, header, query), distributed-cache store, per-tenant connection strings, theme customisation, and an async provisioning state machine.
- 03/10
Auditing module
Entity-change capture via SaveChanges interceptor, HTTP middleware for request/response audit, security events, exception capture, JSON masking, and a retention purge job.
- 04/10
Files module
Presigned-URL file lifecycle with pluggable per-OwnerType access policies, soft delete + retention purge, optional scanner hook, and S3 / MinIO storage.
- 05/10
Chat module
Slack-style messaging — named channels, 1:1 + group DMs, @mentions, thread replies, reactions, message pinning, full-text search, typing indicators, and SignalR realtime over Valkey.
- 06/10
Notifications module
Per-user inbox driven by integration events from other modules — denormalized rows, real-time SignalR push, idempotent mark-read.
- 07/10
Webhooks module
Tenant-scoped webhook subscriptions, open-generic event fan-out, HMAC-signed delivery, Hangfire dispatch with exponential backoff, and a delivery audit log.
- 08/10
Billing module
Subscription plans, invoice lifecycle, and usage metering for multi-tenant SaaS — all wired through a monthly Hangfire job.
- 09/10
Catalog module
Production-grade product catalogue — brands, hierarchical categories, products with multi-image support, price + stock domain events, and soft delete.
- 10/10
Tickets module
A complete support-ticket workflow — auto-numbered tickets, status state machine (Open → InProgress → Resolved → Closed), comments, assignment, priority, and soft delete.