🎨 Frontend & UI

Routing & Modules

Angular routing and lazy-loaded module architecture.

Top-Level Routes

PathModuleDescription
/authAuthModuleLogin, register
/pagesPagesModuleMain app shell
/pages/dashboardDashboardModuleDashboard
/pages/employeesEmployeesModuleEmployee management
/pages/projectsProjectsModuleProject management
/pages/tasksTasksModuleTask management
/pages/time-trackerTimeTrackerModuleTime tracking
/pages/invoicesInvoicesModuleInvoicing
/pages/expensesExpensesModuleExpenses
/pages/settingsSettingsModuleOrganization settings

Lazy Loading

All feature modules are lazy-loaded:

const routes: Routes = [
  {
    path: "employees",
    loadChildren: () =>
      import("./employees/employees.module").then((m) => m.EmployeesModule),
    canActivate: [AuthGuard, RoleGuard],
    data: { permissions: ["ORG_EMPLOYEES_VIEW"] },
  },
];

Route Guards

GuardPurpose
AuthGuardRequires authenticated user
RoleGuardRequires specific role/permission
OrganizationGuardRequires active organization
TenantGuardRequires active tenant

Module Pattern

Each feature module follows:

feature/
├── feature.module.ts         # Module declaration
├── feature-routing.module.ts # Routes
├── feature.component.ts      # Container component
├── components/               # Child components
├── services/                 # Feature services
└── models/                   # Feature interfaces

Edit this page

Copyright © 2023-Present Ever Co. LTD.Docs by Sourcey