Feature Inventory

myowjaYOY/ngx-admin

Generated by DocAgent — automated codebase documentation analysis. Based on analysis of 3 screens. Subject matter expert review is recommended before distribution.

April 19, 2026

ngx-admin

Feature Inventory

Document Date: April 2026


1. Overview

Scope

This Feature Inventory catalogs every distinct feature observable from the screen documentation provided for the ngx-admin web application. Features are extracted exclusively from implemented behavior as described in the source documentation for three screens: the Charts shell (/charts), the Chart.js screen (/charts/chartjs), and the D3 screen (/charts/d3). Features that exist on undocumented screens (e.g., /charts/echarts or any screen outside the /charts route hierarchy), planned or unreleased features, and backend-only behaviors not visible in any documented screen are explicitly excluded from this inventory.

Methodology

Features were extracted by systematically scanning each section of the screen documentation — UI layout, user interactions, navigation, routing, error handling, real-time behavior, integration points, security, and accessibility — for distinct, independently valuable capabilities. Each feature is classified using BABOK v3.0 requirements categories (Functional, Non-Functional, Constraint), prioritized using MoSCoW notation where determinable, and assessed for complexity based on the number of UI components, API interactions, and error-handling paths involved. Quality dimensions are assigned per ISO/IEC 25010:2023.

Feature Granularity

A feature is defined as a distinct capability that delivers value to a user role, is independently testable, and can be described in one sentence without using "and" to join unrelated capabilities. Because the three documented screens are all thin shell or presentational components with no business logic, state management, or API calls, the resulting feature set is small. Several features that would normally be cataloged at the child-component level (e.g., individual chart type rendering, data filtering, export) cannot be documented because the child component source files and templates were not provided.

Coverage

This Feature Inventory covers 3 screen(s) of the ngx-admin application:

Screen Name Route
Charts /charts
Chartjs /charts/chartjs
D3 /charts/d3

Features derived from screens not included in the assessed documentation are outside the scope of this document. This document reflects a partial view of the application. The /charts route hierarchy references additional child routes (e.g., /charts/echarts) that are not documented here.

Disclosure

Generated by DocAgent — automated codebase documentation analysis. Subject matter expert review is recommended before distribution.

How to Use This Document


2. Feature Inventory Table

# Feature Name Screen(s) Category Sub-Category User Role(s) Type Status Priority Complexity Description
FEAT-001 Host Child Chart Routes Charts (/charts) Navigation Routing Structure All Authenticated Users Functional Active Must Simple The Charts screen provides an Angular <router-outlet> that dynamically renders the correct child chart component based on the active URL segment beneath /charts.
FEAT-002 Navigate to Chart Sub-Pages Charts (/charts) Navigation Client-Side Routing All Authenticated Users Functional Active Must Simple Users can navigate between chart sub-pages (e.g., /charts/chartjs, /charts/d3) via the application's global navigation, with Angular's router loading the correct child component into the outlet.
FEAT-003 Display Chart.js Visualizations Chartjs (/charts/chartjs) Data Visualization Chart Rendering All Authenticated Users Functional Partial Should Medium The Chart.js screen renders one or more Chart.js-based chart visualizations (e.g., bar, line, pie, doughnut, radar) within a card-based layout for user viewing.
FEAT-004 Display D3 Visualizations D3 (/charts/d3) Data Visualization Chart Rendering All Authenticated Users Functional Partial Should Medium The D3 screen renders one or more D3.js-based data visualizations (e.g., SVG charts, force-directed graphs) within the application's standard page layout for user viewing.
FEAT-005 Enforce Route-Level Access Control Charts (/charts), Chartjs (/charts/chartjs), D3 (/charts/d3) Security Authentication & Authorization All Authenticated Users Non-Functional Partial Must Medium Angular route guards (e.g., CanActivate) are expected to restrict access to the /charts route hierarchy, redirecting unauthorized users to a login or access-denied page.
FEAT-006 Chart.js Native Chart Interactivity Chartjs (/charts/chartjs) Data Visualization User Interaction All Authenticated Users Functional Partial Could Simple Users can interact with Chart.js charts using built-in library behaviors such as hover tooltips and legend toggling, without any custom event handling by the application.

3. Feature Detail Cards


FEAT-001: Host Child Chart Routes

Category: Navigation > Routing Structure Screen(s): Charts (/charts) User Role(s): All Authenticated Users Type: Functional Status: Active Priority: Must Complexity: Simple

Description: The Charts screen acts as a structural shell that hosts Angular's <router-outlet> directive, enabling the application to dynamically render child chart screens (such as /charts/chartjs and /charts/d3) within the same layout context. Without this shell, child chart routes cannot be rendered. This is a foundational routing feature that enables the entire charts section of the application.

User Interaction: The user does not interact with this feature directly. When a user navigates to any URL beneath /charts, Angular's router matches the child route and inserts the corresponding component into the outlet automatically. The user perceives this as arriving at a chart page; the shell is invisible.

Acceptance Criteria:

Technical Components:

Error Handling: No error handling is implemented at this component level. Unmatched child routes are handled by Angular's router wildcard configuration, which is defined in the routing module (not documented here).

Quality Dimensions (ISO 25010):

Known Limitations: The ChartsComponent does not specify ChangeDetectionStrategy.OnPush, which is a minor best-practice deviation for a stateless shell component. The component uses NgModule-based architecture rather than Angular's standalone component pattern, which may represent a future migration opportunity.

Source Evidence: Charts (/charts)

Related Features: FEAT-002, FEAT-003, FEAT-004


FEAT-002: Navigate to Chart Sub-Pages

Category: Navigation > Client-Side Routing Screen(s): Charts (/charts) User Role(s): All Authenticated Users Type: Functional Status: Active Priority: Must Complexity: Simple

Description: Users can move between the different chart sub-pages within the /charts section of the application by using the application's global navigation menu or sidebar. Angular's router handles the URL change and renders the appropriate child component into the <router-outlet> of the Charts shell without a full browser page reload.

User Interaction: The user clicks a navigation link (e.g., in the application sidebar or top menu) that targets a chart sub-page URL such as /charts/chartjs or /charts/d3. Angular intercepts the navigation event, matches the route, and renders the corresponding child component. The user sees the new chart page appear in the content area.

Acceptance Criteria:

[Not documented — WHO: Engineering lead; WHAT: Is there a default redirect configured for the bare /charts route (e.g., redirect to /charts/chartjs)? WHERE: Insert in AC-3 of FEAT-002 and in FGAP-01]

Technical Components:

Error Handling: No error handling is implemented within the ChartsComponent. Navigation failures (e.g., route guard rejection) are handled by the router guard configuration in the routing module.

Quality Dimensions (ISO 25010):

Known Limitations: The navigation menu that triggers this feature is defined outside the documented screens and cannot be fully specified here. The full child route configuration (including any lazy-loading setup) is in charts-routing.module.ts, which was not provided.

Source Evidence: Charts (/charts)

Related Features: FEAT-001, FEAT-003, FEAT-004


FEAT-003: Display Chart.js Visualizations

Category: Data Visualization > Chart Rendering Screen(s): Chartjs (/charts/chartjs) User Role(s): All Authenticated Users Type: Functional Status: Partial Priority: Should Complexity: Medium

Description: The Chart.js screen presents users with one or more Chart.js-based chart visualizations arranged in a card-based layout. Users can view these charts to understand the data being represented. The screen serves as either a data visualization dashboard or a demonstration of available Chart.js chart types integrated into the application.

User Interaction: The user navigates to /charts/chartjs via the application's navigation. The screen renders automatically upon arrival, displaying chart visualizations without requiring any user input. The user views the charts in a read-only capacity.

Acceptance Criteria:

(Acceptance criteria are partially inferred from technology conventions — verify against the chartjs.component.html template and child chart component definitions.)

[Not documented — WHO: Product owner; WHAT: What specific chart types (bar, line, pie, doughnut, radar, etc.) are required to be displayed on this screen?; WHERE: Insert in AC-2 of FEAT-003 and in the Description field]

[Not documented — WHO: Product owner; WHAT: Is this screen a static demo/showcase or does it display live/dynamic application data?; WHERE: Insert in the Description field of FEAT-003 and in FGAP-06]

Technical Components:

Error Handling: No error handling is implemented in ChartjsComponent. If Chart.js fails to render (e.g., invalid data or missing canvas context), the error surfaces as an unhandled JavaScript runtime error in the browser console.

Quality Dimensions (ISO 25010):

Known Limitations: All chart configuration and data is (inferred from the stateless component pattern — verify against chartjs.component.html) hardcoded in the HTML template, making it difficult to maintain, test, or make data-driven. No error state, loading state, or empty state is handled by the component. Accessibility for <canvas> elements is not documented and represents a known gap.

Source Evidence: Chartjs (/charts/chartjs)

Related Features: FEAT-001, FEAT-006


FEAT-004: Display D3 Visualizations

Category: Data Visualization > Chart Rendering Screen(s): D3 (/charts/d3) User Role(s): All Authenticated Users Type: Functional Status: Partial Priority: Should Complexity: Medium

Description: The D3 screen presents users with one or more D3.js-based data visualizations, such as SVG charts, force-directed graphs, or tree diagrams. Users can view these visualizations within the application's standard page layout. The screen acts as a host for D3-powered child components that perform the actual rendering.

User Interaction: The user navigates to /charts/d3 via the application's navigation. The screen renders automatically upon arrival, displaying D3 visualizations without requiring any user input at the parent component level. The user views the visualizations in a read-only capacity (any interactive D3 behaviors such as zoom or pan are handled within child components).

Acceptance Criteria:

(Acceptance criteria are partially inferred from technology conventions — verify against the d3.component.html template and child D3 component definitions.)

[Not documented — WHO: Product owner; WHAT: What specific D3 visualization types (force-directed graph, bar chart, tree diagram, etc.) are required on this screen?; WHERE: Insert in AC-1 of FEAT-004 and in the Description field]

[Not documented — WHO: Engineering lead; WHAT: Is the d3.component.html template substantive or a placeholder stub? The component class is entirely empty.; WHERE: Insert in the Status field of FEAT-004 and in FGAP-01]

Technical Components:

Error Handling: No error handling is implemented in D3Component. Rendering failures within D3 child components would surface as unhandled JavaScript errors in the browser console.

Quality Dimensions (ISO 25010):

Known Limitations: The D3Component class body is entirely empty, which may indicate this component is a stub or placeholder that was never fully implemented. The template file (d3.component.html) was not provided, so the actual rendered content cannot be confirmed. Accessibility for SVG elements is not documented. The ChangeDetectionStrategy.OnPush is not set, which is a minor best-practice deviation.

Source Evidence: D3 (/charts/d3)

Related Features: FEAT-001


FEAT-005: Enforce Route-Level Access Control

Category: Security > Authentication & Authorization Screen(s): Charts (/charts), Chartjs (/charts/chartjs), D3 (/charts/d3) User Role(s): All Authenticated Users Type: Non-Functional Status: Partial Priority: Must Complexity: Medium

Description: Access to the /charts route hierarchy is expected to be restricted to authorized users via Angular route guards (e.g., CanActivate). Unauthorized users attempting to access any chart screen are expected to be redirected to a login page or an access-denied page before the chart component is instantiated.

User Interaction: This feature is transparent to authorized users — they navigate to chart screens without interruption. Unauthorized users are redirected away from the chart screens automatically by the router guard before any chart content is displayed.

Acceptance Criteria:

(AC-3 is inferred from common Angular route guard patterns — verify against the routing module and AuthGuard/RoleGuard implementation to confirm whether role-based restrictions beyond authentication are enforced.)

[Not documented — WHO: Engineering lead; WHAT: Which specific route guard(s) (e.g., AuthGuard, RoleGuard) are applied to the /charts route and its children? Is the guard applied at the parent /charts level or individually on each child route?; WHERE: Insert in the Technical Components section of FEAT-005]

[Not documented — WHO: Product owner; WHAT: Are there role-based restrictions on chart access (e.g., only admins or analysts can view charts), or is access granted to all authenticated users?; WHERE: Insert in the User Role(s) field of FEAT-005 and in the Feature-Role Matrix]

Technical Components:

Error Handling: Unauthorized access is handled by the route guard, which redirects the user rather than displaying an error within the chart component. The specific redirect target (login page, 403 page) is defined in the routing module.

Quality Dimensions (ISO 25010):

Known Limitations: The route guard implementation is not included in the provided source documentation. It cannot be confirmed whether a guard is actually applied, which guard class is used, or whether role-based (as opposed to authentication-only) restrictions are enforced. This feature is marked Partial because the guard's existence is referenced in the documentation but its implementation is unverified.

Source Evidence: Charts (/charts), Chartjs (/charts/chartjs), D3 (/charts/d3)

Related Features: FEAT-001, FEAT-002


FEAT-006: Chart.js Native Chart Interactivity

Category: Data Visualization > User Interaction Screen(s): Chartjs (/charts/chartjs) User Role(s): All Authenticated Users Type: Functional Status: Partial Priority: Could Complexity: Simple

Description: Users can interact with Chart.js charts on the /charts/chartjs screen using Chart.js's built-in interaction behaviors, including hover tooltips that display data point values and legend item toggling to show or hide individual datasets. These interactions are provided natively by the Chart.js library and require no custom event handling by the application.

User Interaction: The user hovers over a data point or bar on a chart to see a tooltip displaying the value. The user clicks a legend item to toggle the visibility of the corresponding dataset on the chart. No form submission or application-level event handling is involved.

Acceptance Criteria:

(Acceptance criteria are inferred from Chart.js default behavior — verify against the chart configuration options defined in chartjs.component.html or child chart components to confirm tooltips and legend toggling are not disabled.)

Technical Components:

Error Handling: No application-level error handling. Chart.js manages its own internal interaction state. If a chart fails to render, interactions are unavailable and no error message is displayed to the user.

Quality Dimensions (ISO 25010):

Known Limitations: Interactivity is entirely dependent on Chart.js library defaults. The application does not implement custom keyboard navigation, screen reader announcements, or ARIA live regions for tooltip content. The specific Chart.js configuration (which may enable or disable certain interactions) is defined in the template file, which was not provided.

Source Evidence: Chartjs (/charts/chartjs)

Related Features: FEAT-003


4. Feature-Screen Matrix

Feature Charts (/charts) Chartjs (/charts/chartjs) D3 (/charts/d3)
FEAT-001: Host Child Chart Routes Primary Supporting Supporting
FEAT-002: Navigate to Chart Sub-Pages Primary
FEAT-003: Display Chart.js Visualizations Primary
FEAT-004: Display D3 Visualizations Primary
FEAT-005: Enforce Route-Level Access Control Primary Supporting Supporting
FEAT-006: Chart.js Native Chart Interactivity Primary

5. Feature-Role Matrix

[Not documented — WHO: Product owner; WHAT: What named user roles exist in the application (e.g., Admin, Analyst, Viewer, Guest)? The source documentation does not define specific roles for the charts section.; WHERE: Replace "All Authenticated Users" throughout this matrix with the specific role names once confirmed]

Feature All Authenticated Users Unauthenticated Users
FEAT-001: Host Child Chart Routes Full
FEAT-002: Navigate to Chart Sub-Pages Full
FEAT-003: Display Chart.js Visualizations Read-only
FEAT-004: Display D3 Visualizations Read-only
FEAT-005: Enforce Route-Level Access Control Conditional
FEAT-006: Chart.js Native Chart Interactivity Full

Note on FEAT-005: "Conditional" indicates that authenticated users with appropriate permissions are granted access, while those without are redirected. The specific conditions are not documented in the source — verify against the route guard implementation.


6. Feature Dependencies

Feature Depends On Relationship Description
FEAT-002 FEAT-001 Requires Navigation to chart sub-pages requires the <router-outlet> in ChartsComponent to be present; without it, child routes cannot render.
FEAT-003 FEAT-001 Requires The Chart.js screen is a child route rendered inside the ChartsComponent outlet; the outlet must exist for the screen to load.
FEAT-004 FEAT-001 Requires The D3 screen is a child route rendered inside the ChartsComponent outlet; the outlet must exist for the screen to load.
FEAT-005 FEAT-001 Enhances Route-level access control protects the Charts shell and all its children; FEAT-001 functions structurally without FEAT-005, but FEAT-005 is required for secure operation.
FEAT-006 FEAT-003 Requires Chart.js native interactivity (tooltips, legend toggling) requires Chart.js charts to be rendered; FEAT-006 cannot function if FEAT-003 fails to render.
FEAT-003 FEAT-005 Shares Data Both features operate on the user's authenticated session state — FEAT-005 gates access, FEAT-003 is the protected resource.
FEAT-004 FEAT-005 Shares Data Both features operate on the user's authenticated session state — FEAT-005 gates access, FEAT-004 is the protected resource.

7. Coverage Gap Analysis


FGAP-01: Undocumented Child Chart Screens

Type: Undocumented Screen Affected Feature(s): FEAT-001, FEAT-002 Risk Level: High

Description: The source documentation for the Charts shell (/charts) explicitly references child routes beneath /charts (e.g., /charts/echarts, /charts/chartjs, /charts/d3). Only two child screens (/charts/chartjs and /charts/d3) are included in the provided documentation. Additional child screens — most notably /charts/echarts — are referenced by name in the documentation but not documented. The full child route configuration in charts-routing.module.ts was not provided, so the complete list of child routes is unknown. Additionally, the D3Component class is entirely empty, raising the possibility that /charts/d3 is itself a stub or placeholder screen.

Recommendation: Obtain and document the charts-routing.module.ts file to enumerate all registered child routes. Document each child screen (especially /charts/echarts) using the same screen documentation format. Verify with the engineering lead whether d3.component.html contains substantive content or is a placeholder.


FGAP-02: Missing ECharts Screen Documentation

Type: Undocumented Screen Affected Feature(s): FEAT-001, FEAT-002 Risk Level: High

Description: The ECharts screen (likely at /charts/echarts) is referenced by name in the Charts shell documentation as an example child route but is not included in the provided screen documentation. ECharts (Apache ECharts) is a major charting library, and a dedicated screen for it would likely contain a significant number of features comparable to or exceeding those on the Chart.js screen. Its absence means this inventory is materially incomplete with respect to the charts section.

Recommendation: Request screen documentation for /charts/echarts (and any other undocumented chart library screens) from the engineering team. Add corresponding features to this inventory once documentation is available.


FGAP-03: Accessibility — Canvas and SVG Chart Elements

Type: Accessibility Affected Feature(s): FEAT-003, FEAT-004, FEAT-006 Risk Level: High

Description: Chart.js renders charts onto HTML <canvas> elements, which are inherently inaccessible to screen readers because canvas content is not part of the browser's accessibility tree. D3.js renders charts as SVG elements, which can be made accessible but require explicit role, aria-label, and tabindex attributes applied through D3's imperative DOM manipulation. Neither the ChartjsComponent nor the D3Component documentation describes any accessibility implementation. The template files — where ARIA attributes would be applied — were not provided. This represents a potential WCAG 2.1 AA compliance gap across all chart screens.

Recommendation: Review chartjs.component.html and d3.component.html (and all child chart component templates) for the presence of role="img", aria-label, fallback text within <canvas> tags, and keyboard navigation support. If absent, implement WCAG 2.1 AA-compliant accessibility patterns for all chart elements. Conduct an accessibility audit with assistive technology (e.g., NVDA, VoiceOver) before release.


FGAP-04: Missing Error States for Chart Rendering Failures

Type: Error State Affected Feature(s): FEAT-003, FEAT-004, FEAT-006 Risk Level: Medium

Description: Neither the ChartjsComponent nor the D3Component implements any error handling for chart rendering failures. If Chart.js fails to render (e.g., due to an invalid dataset, a missing canvas context, or a library load failure), or if a D3 visualization fails (e.g., due to malformed SVG data or a D3 computation error), the failure surfaces only as an unhandled JavaScript runtime error in the browser console. No user-facing error message, fallback content, or retry mechanism is documented for any chart screen.

Recommendation: Define and implement user-facing error states for chart rendering failures on both the Chart.js and D3 screens. At minimum, display a visible error message within the chart card when a chart fails to render. Consider implementing Angular's ErrorHandler or a try/catch wrapper in child chart components.


FGAP-05: No Documented User Roles or Access Control Policy

Type: Missing NFR Affected Feature(s): FEAT-005 Risk Level: Critical

Description: The source documentation for all three screens acknowledges that route guards are expected to enforce access control but explicitly states that the routing module (where guards are configured) was not provided. As a result, it cannot be confirmed whether any route guard is actually applied to the /charts route hierarchy, which guard class is used, what authentication mechanism it relies on, or whether role-based restrictions (beyond simple authentication) are enforced. The user roles for the application are entirely undocumented in the provided source.

Recommendation: Provide the charts-routing.module.ts and app-routing.module.ts files for review. Document the specific CanActivate guard(s) applied to the /charts route, the authentication mechanism used, and any role-based access rules. Update the Feature-Role Matrix in this document once roles are confirmed.


FGAP-06: Chart Data Source and CRUD Coverage

Type: Missing CRUD Affected Feature(s): FEAT-003, FEAT-004 Risk Level: Medium

Description: Both the Chart.js and D3 screens are documented as stateless presentational components with no API calls and no data-fetching logic. It is unclear whether the chart data displayed is: (a) entirely static/hardcoded in the HTML templates (a demo/showcase), (b) sourced from child components that fetch data from an API, or (c) intended to be connected to live application data in a future iteration. If the charts are intended to visualize real application data, the Read operation is the only CRUD operation present, and Create, Update, and Delete operations on the underlying data entities are entirely absent from the documented screens.

Recommendation: Clarify with the product owner whether the chart screens display static demo data or live application data. If live data is intended, document the data entities, API endpoints, and any planned data management features (filtering, date range selection, export) for inclusion in this inventory.


FGAP-07: Missing Non-Functional Requirements — Performance and Export

Type: Missing NFR Affected Feature(s): FEAT-003, FEAT-004 Risk Level: Low

Description: No non-functional requirements related to chart rendering performance (e.g., maximum acceptable render time for large datasets), data export (e.g., exporting chart images as PNG or data as CSV), or print support are documented for any chart screen. For a data visualization section of an application, these are commonly expected capabilities that are absent from the current documentation.

Recommendation: Confirm with the product owner whether chart image export, data export (CSV/XLSX), and performance benchmarks are in scope for the charts section. If so, add corresponding features to this inventory and define acceptance criteria.


8. Glossary

Feature Terms

Term Definition
Functional (BABOK Type) A feature that describes what the system does — a behavior, capability, or action the system performs in response to user or system input.
Non-Functional (BABOK Type) A feature that describes a quality attribute of the system — how well it performs a function (e.g., security, performance, accessibility, reliability).
Constraint (BABOK Type) A restriction on the design or implementation of the system that limits the solution space (e.g., must use a specific technology, must comply with a regulation).
Acceptance Criteria Testable conditions that must be satisfied for a feature to be considered complete and correct. Written in Given/When/Then format where possible.
Must (MoSCoW) The feature is a core requirement; the system cannot function correctly without it.
Should (MoSCoW) The feature is important and expected, but the system can function without it in the short term.
Could (MoSCoW) The feature is a nice-to-have that adds value but is not critical; it can be deferred without significant impact.
N/A (MoSCoW) Priority cannot be determined from the available documentation.
Active (Status) The feature is fully implemented and functional as documented.
Partial (Status) The feature is implemented but has documented limitations, missing error handling, unconfirmed behavior, or relies on undocumented components.
Planned (Status) The feature is not yet implemented but is referenced in documentation as intended.
Simple (Complexity) The feature involves a single interaction or display, fewer than 3 components, no asynchronous behavior, and minimal error handling.
Medium (Complexity) The feature involves multiple steps or display elements, 3–7 components, and may include asynchronous behavior or error handling.
Complex (Complexity) The feature involves multi-step workflows, 7+ components, significant asynchronous behavior, and comprehensive error handling.

Domain Terms

Term Definition
<router-outlet> An Angular directive that acts as a placeholder in the DOM where the router renders the component matched by the current URL. Child route components are dynamically inserted and removed here as navigation occurs.
Shell Component An Angular component whose sole purpose is to provide a routing structure (via <router-outlet>) for child routes, containing no business logic or UI of its own. ChartsComponent is an example of this pattern.
Child Route A route defined as a nested entry under a parent path (e.g., /charts) in the routing module. These routes render their components inside the <router-outlet> of the parent shell component.
Leaf Route A route that has no child routes — it is a terminal destination in the application's routing tree. /charts/chartjs and /charts/d3 are leaf routes.
Feature Module An Angular NgModule that encapsulates a related set of components, services, and routes for a specific application feature — in this case, the charts feature.
Presentational Component An Angular component that contains no business logic, no state management, and no service dependencies — it only renders its template. ChartjsComponent is a presentational component.
CanActivate Guard An Angular router interface used to protect routes from unauthorized access. Implementing classes return true to allow navigation or false/a UrlTree to block or redirect it.
Chart.js An open-source JavaScript charting library that renders charts onto HTML5 <canvas> elements. It is the underlying visualization engine for the /charts/chartjs screen.
D3 (D3.js) Data-Driven Documents — a JavaScript library for producing dynamic, interactive data visualizations in web browsers using SVG, Canvas, and HTML. It is the underlying visualization engine for the /charts/d3 screen.
Canvas Element The HTML <canvas> element used by Chart.js to draw chart graphics programmatically via the browser's 2D rendering context. Canvas content is not natively accessible to screen readers.
SVG Scalable Vector Graphics — the DOM-based rendering target most commonly used by D3.js to draw charts, graphs, and other visualizations. SVG elements can be made accessible with explicit ARIA attributes.
Nebular / NGX A customizable Angular UI framework (@nebular/theme) that provides layout components (cards, grids, sidebars) used to structure the application's screens. Identified by the ngx- component selector prefix.
ngx- prefix A naming convention used in this codebase for component selectors, derived from the Nebular UI framework (@nebular/theme) or a similar Angular component library.
Lazy Loading An Angular router feature where a feature module's JavaScript bundle is only downloaded when the user first navigates to that module's route, improving initial load performance.
ChangeDetectionStrategy.OnPush An Angular optimization setting that limits a component's change detection cycle to run only when its @Input references change or an event originates from within the component, rather than on every application-wide change detection cycle.
Standalone Component An Angular component that declares its own dependencies directly (without an NgModule), introduced as a modern alternative to the NgModule-based architecture used in this codebase.

Roles

Role Definition
All Authenticated Users Any user who has successfully authenticated with the application. The specific named roles within this group (e.g., Admin, Analyst, Viewer) are not documented in the provided source and require confirmation from the product owner. See FGAP-05.
Unauthenticated Users Users who have not authenticated with the application. Based on the expected route guard behavior, these users are redirected away from chart screens before any content is displayed.