# Context: Module Summary

Tight summary of what each module/package does. Use to avoid reading source for routine routing decisions.

## Apps

| App                | Stack                                                  | Port | Owns                                                |
| ------------------ | ------------------------------------------------------ | ---- | --------------------------------------------------- |
| `apps/web-angular` | Angular 19 + Signals + Tailwind + Material + Transloco | 4200 | Primary frontend                                    |
| `apps/web-next`    | Next.js 15 App Router + next-intl                      | 3000 | Secondary frontend (marketing + SSR surfaces)       |
| `apps/api-nest`    | NestJS 11 + pino + Throttler + Swagger                 | 3001 | Secondary backend (queue producer, websockets, BFF) |
| `apps/worker-nest` | NestJS standalone + BullMQ                             | n/a  | Queue consumer (audit + notifications)              |
| `dotnet/`          | .NET 9 Clean Architecture + MediatR + EF Core          | 5080 | Primary backend (canonical)                         |

## Shared packages

| Package                      | Purpose                                               |
| ---------------------------- | ----------------------------------------------------- |
| `@loma-portal/tsconfig`      | TS preset configs (base/node/react/angular/library)   |
| `@loma-portal/eslint-config` | ESLint flat-config presets                            |
| `@loma-portal/design-tokens` | DTCG tokens → CSS vars + Tailwind preset + TS exports |
| `@loma-portal/ui-angular`    | Angular component lib (skeleton)                      |
| `@loma-portal/ui-react`      | React component lib (skeleton)                        |
| `@loma-portal/api-contracts` | Zod schemas + types shared across FE+BE               |

## Enterprise modules

| Module                          | Role                                                              |
| ------------------------------- | ----------------------------------------------------------------- |
| `@loma-portal/em-auth`          | JWT verification (jose) + JwtAuthGuard + @Public()                |
| `@loma-portal/em-rbac`          | Pure-TS policy + RbacGuard + @RequirePermissions/@RequireRoles    |
| `@loma-portal/em-audit`         | AuditDispatcher (producer) + PrismaAuditSink (worker) over BullMQ |
| `@loma-portal/em-notifications` | NotificationDispatcher + SMTP/FCM/noop-SMS channels               |
| `@loma-portal/em-file-storage`  | S3-compatible storage with signed URLs                            |
