Skip to main content

Overview

Learnille is architected as a modular, package-decoupled digital learning platform. It isolates backend REST API logic, real-time sync, background job workers, OpenSearch indexing, media storage, and frontend client applications into focused packages. Production uses Dokploy and managed data providers where documented in the deployment guide.

🏗 Architecture Components


🛠 Technology Stack Breakdown


📌 Architectural Guarantees & Guardrails

  1. Package Separation: Type definitions cannot be cross-imported between child package folders. Types must be defined within their respective package or shared via explicit boundaries.
  2. Database Naming: PostgreSQL entities use snake_case column naming transformations.
  3. Controller Security: All controllers are protected by JwtAuthGuard. Authenticated user context is accessed exclusively via @CurrentUser().
  4. Validation Enforcement: All incoming payload data must be validated using explicit DTOs with ValidationPipe.