Skip to main content

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