Saltar al contenido principal

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