Перейти к основному содержимому

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