Service Layer medium complexity Shared Component backend
0
Dependencies
0
Dependents
0
Entities
0
Integrations

Description

Service that maintains the registry of feature modules enabled for a given organization and user role. It exposes the active module set at runtime so dashboard screens mount only the widgets that are licensed and enabled. Serves as the authoritative source for module-driven navigation across the entire application.

Feature: Role-Specific Home Dashboard

module-registry-service

Sources & reasoning

Line 293 names role-specific home content as a screen. Line 240 classifies home-navigation as always-on core, making this non-deferrable. Line 322 confirms MVP scope includes both Peer Mentor and Coordinator roles. Line 308 ties the home surface directly to the module registry, confirming MVP target release.

  • docs/source/likeperson.md · line 293
    Role-specific home content (peer mentor vs coordinator variants)
  • docs/source/likeperson.md · line 240
    **Mobile App:** `authentication-access-control`, `home-navigation`, `accessibility`, `help-support`, `profile-management`.
  • docs/source/likeperson.md · line 322
    2 mobilrolle-profiler: Peer Mentor, Coordinator (Organization Admins logger på som Coordinator i app-konteksten)
  • docs/source/likeperson.md · line 308
    Module registry - the app's navigation, home surfaces, and entry points are assembled at runtime from the enabled module set

Responsibilities

  • Return the set of enabled modules for a given organization and user role
  • Resolve which dashboard widgets are eligible for mounting based on the active module set
  • Provide the ordered navigation structure derived from enabled modules
  • Invalidate module registry cache when organization settings change

Interfaces

getEnabledModules(orgId: string, role: UserRole): Module[]
getEnabledWidgets(orgId: string, role: UserRole): Widget[]
getNavigationStructure(orgId: string, role: UserRole): NavItem[]
invalidateCache(orgId: string): void