Skip to content

Frontend App Roster

Complete reference for all 13 frontend applications in the MFE-Apps workspace.


Application Table

#App (Nx name)Dev PortBase HrefPurposeMFE RoleDeployment Target
1dashboard4200/Host shell — Module Federation container, navigation, layoutHostAzure Blob Storage ($web)
2bussinessOwners4301/bussiness-owners/Business Owner portal — tenant management, overview, approvalsRemoteAzure Static Web Apps (SWA)
3erpHome4401/erp/ERP home dashboard — module selector, announcementsRemoteAzure Blob Storage ($web)
4accounting4402/accounting/Accounting module — chart of accounts, journals, GL reportsRemoteAzure Blob Storage ($web)
5hr4403/hr/HR module — employees, payroll, leaves, contractsRemoteAzure Blob Storage ($web)
6finance4404/finance/Finance module — bank accounts, fund transfers, finance reportsRemoteAzure Blob Storage ($web)
7sales4405/sales/Sales module — orders, customers, invoicing, quotationsRemoteAzure Blob Storage ($web)
8purchase4406/purchase/Purchase module — suppliers, POs, goods receiptRemoteAzure Blob Storage ($web)
9inventory4407/inventory/Inventory module — warehouses, stock, items, transfersRemoteAzure Blob Storage ($web)
10distribution4408/distribution/Distribution module — routes, deliveries, van salesRemoteAzure Blob Storage ($web)
11fixedAssets4409/fixed-assets/Fixed assets — asset register, depreciation, disposalsRemoteAzure Blob Storage ($web)
12templates4410/templates/Templates — printable invoice templates, report designerRemoteAzure Blob Storage ($web)
13adminportalvaries/adminportal/Admin portal — internal admin tool for platform managementRemoteAzure Blob Storage ($web)

Keycloak Realm by App

AppKeycloak RealmWhy
bussinessOwnersbusinessownerSeparate identity space for Business Owners
All other appsmicrotecSingle shared ERP realm for tenants

Realm detection is automatic — the Keycloak init factory reads the URL path at startup (/bussiness-owners path triggers businessowner realm).


App Details

dashboard (Host Shell)

  • Port: 4200
  • Role: Module Federation host — loads all remote modules
  • Responsibilities:
    • Top-level navigation (sidebar, header)
    • Keycloak initialization and token management
    • Cross-module routing (dev: port-based URLs; prod: relative paths)
    • Layout theme and global styles
  • Backend: calls bussinessOwners API for tenant/user context

bussinessOwners

  • Port: 4301
  • Role: Remote + standalone (can run independently)
  • Responsibilities:
    • Tenant registration and onboarding
    • Subscription and licensing management
    • App/module activation per tenant
    • Company profile
  • Backend: BusinessOwners.Apis via /bo-apis/
  • Deployment: Azure Static Web Apps (SWA) — separate from other apps
  • Realm: businessowner

Spelling

The app is intentionally named bussinessOwners (double s) throughout the codebase and Azure infrastructure. Do not correct this.

erpHome

  • Port: 4401
  • Role: Remote
  • Responsibilities: ERP landing page after login — module cards, recent activity, system announcements
  • Backend: AppsPortal.Apis via /erp-apis/

accounting

  • Port: 4402
  • Role: Remote
  • Responsibilities: Full accounting lifecycle — chart of accounts, journal entries, general ledger, trial balance, income statement, balance sheet
  • Backend: AppsPortal.Apis via /erp-apis/

hr

  • Port: 4403
  • Role: Remote
  • Responsibilities: Human resources — employee directory, departments, contracts, leaves, payroll, loans
  • Backend: HR.Apis via /hr-apis/

finance

  • Port: 4404
  • Role: Remote
  • Responsibilities: Finance — bank accounts, cheques, fund transfers, financial reports
  • Backend: AppsPortal.Apis via /erp-apis/

sales

  • Port: 4405
  • Role: Remote
  • Responsibilities: Sales cycle — customers, price lists, quotations, sales orders, invoices, ZATCA e-invoicing QR
  • Backend: AppsPortal.Apis via /erp-apis/

purchase

  • Port: 4406
  • Role: Remote
  • Responsibilities: Procurement — suppliers, purchase orders, goods receipt notes, purchase invoices
  • Backend: AppsPortal.Apis via /erp-apis/

inventory

  • Port: 4407
  • Role: Remote
  • Responsibilities: Inventory — items catalogue, units of measure, warehouses, stock movements, inventory count
  • Backend: Inventory.Apis via /inventory-apis/

distribution

  • Port: 4408
  • Role: Remote
  • Responsibilities: Distribution — delivery routes, van sales, dispatch management
  • Backend: AppsPortal.Apis via /erp-apis/

fixedAssets

  • Port: 4409
  • Role: Remote
  • Responsibilities: Fixed asset register — asset categories, acquisition, depreciation schedules, disposals
  • Backend: AppsPortal.Apis via /erp-apis/

templates

  • Port: 4410
  • Role: Remote
  • Responsibilities:
    • Printable templates — custom HTML invoice templates per company (API: template-apis)
    • Report templates — full report designer with pre-built invoice variants
  • Backend: Template.Apis via /template-apis/
  • License gated: Modules.Templates

adminportal

  • Port: varies (not a fixed dev port)
  • Role: Remote
  • Responsibilities: Internal admin tool for platform operators — tenant management, database explorer, Seq viewer, terminal, key generation
  • Backend: BusinessOwners.AdminPortal (Blazor API)
  • Access: restricted to Microtec platform administrators only

Development Port Mapping

The sidebar uses a static port map for development navigation. This is defined in libs/shared-lib/src/lib/modules/layout/layout-sidebar/layout-sidebar.component.ts:

typescript
const MODULE_DEV_PORTS: Record<string, number> = {
  'bussiness-owners': 4301,
  'erp':              4401,
  'accounting':       4402,
  'hr':               4403,
  'finance':          4404,
  'sales':            4405,
  'purchase':         4406,
  'inventory':        4407,
  'distribution':     4408,
  'fixed-assets':     4409,
};

In production, relative paths are used (isDevelopment: false) and routing is handled by the reverse proxy / CDN.


Deployment Architecture

  • Azure Blob Storage ($web container, static website enabled) hosts the dashboard and all ERP remote apps.
  • Azure Static Web Apps (SWA) hosts bussinessOwners for its SWA-specific routing rules and authentication providers.
  • Azure CDN routes traffic to the correct origin based on the URL path.

Internal Documentation — Microtec Platform Team