🎨 Frontend & UI

Angular Module Architecture

Understanding the Angular frontend module organization.

Overview

The Gauzy frontend is built with Angular, organized into lazy-loaded feature modules:

Diagram; its source is available below
Diagram source
graph TB
    App[AppModule] --> Core[CoreModule]
    App --> Shared[SharedModule]
    App --> Pages[PagesModule]
    Pages --> Dashboard[DashboardModule]
    Pages --> TimeTracking[TimeTrackingModule]
    Pages --> Tasks[TasksModule]
    Pages --> Projects[ProjectsModule]
    Pages --> Invoices[InvoicesModule]
    Pages --> Employees[EmployeesModule]
    Pages --> Contacts[ContactsModule]
    Pages --> Settings[SettingsModule]

Module Types

TypeDescriptionExample
CoreSingleton services, guardsCoreModule
SharedReusable components, pipesSharedModule
FeatureLazy-loaded page modulesTasksModule
LayoutLayout components (sidebar, nav)LayoutModule

Core Module

Provides application-wide singletons:

  • Authentication service
  • HTTP interceptors
  • Route guards
  • Error handling service
  • Store services
@NgModule({
  providers: [AuthService, AuthGuard, ServerConnectionService, Store],
})
export class CoreModule {}

Shared Module

Reusable components used across feature modules:

  • Date pickers
  • Data tables
  • Form controls
  • Modal dialogs
  • Status badges
  • User avatar components

Feature Modules

Each feature is a lazy-loaded module:

// app-routing.module.ts
const routes: Routes = [
  {
    path: "tasks",
    loadChildren: () =>
      import("./tasks/tasks.module").then((m) => m.TasksModule),
  },
  {
    path: "employees",
    loadChildren: () =>
      import("./employees/employees.module").then((m) => m.EmployeesModule),
  },
];

Edit this page

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