Skip to content

Latest commit

 

History

History
95 lines (59 loc) · 3.71 KB

File metadata and controls

95 lines (59 loc) · 3.71 KB
graph LR
    UserProfileComponent["UserProfileComponent"]
    SaveQueryComponent["SaveQueryComponent"]
    LoadQueryComponent["LoadQueryComponent"]
    SavedQueriesTableComponent["SavedQueriesTableComponent"]
    QueryService["QueryService"]
    UserPreferencesService["UserPreferencesService"]
    AuthService["AuthService"]
    StateService["StateService"]
    HttpClient["HttpClient"]
    LocalStorageService["LocalStorageService"]
    UserProfileComponent -- "depends on" --> UserPreferencesService
    UserProfileComponent -- "uses" --> StateService
    SaveQueryComponent -- "depends on" --> QueryService
    LoadQueryComponent -- "depends on" --> QueryService
    SavedQueriesTableComponent -- "depends on" --> QueryService
    UserPreferencesService -- "depends on" --> AuthService
    UserPreferencesService -- "uses" --> StateService
    QueryService -- "depends on" --> AuthService
    QueryService -- "uses" --> StateService
    AuthService -- "depends on" --> HttpClient
    AuthService -- "depends on" --> LocalStorageService
    StateService -- "depends on" --> HttpClient
Loading

CodeBoardingDemoContact

Details

The gpfjs project's user and query management subsystem is designed around a service-oriented architecture, typical for Angular applications. User interface components like UserProfileComponent, SaveQueryComponent, LoadQueryComponent, and SavedQueriesTableComponent serve as the entry points for user interaction, delegating complex operations to specialized services. The QueryService centralizes all operations related to saved user queries, while UserPreferencesService handles user profile settings. Both these domain-specific services depend on the AuthService to ensure authenticated access to backend resources and leverage the StateService for managing application-wide persistent data. All external communication with the backend is abstracted through the HttpClient, and LocalStorageService provides client-side data persistence, particularly for authentication tokens managed by the AuthService. This structure promotes modularity, reusability, and maintainability by clearly defining responsibilities and interaction patterns.

UserProfileComponent

Manages the user interface for profile settings.

Related Classes/Methods: None

SaveQueryComponent

Manages the UI and logic for saving user-defined queries.

Related Classes/Methods: None

LoadQueryComponent

Manages the UI and logic for loading saved queries.

Related Classes/Methods: None

SavedQueriesTableComponent

Displays saved queries in a tabular format.

Related Classes/Methods: None

QueryService

Handles all CRUD operations for saved user queries.

Related Classes/Methods: None

UserPreferencesService

Encapsulates business logic for user preferences.

Related Classes/Methods: None

AuthService

Manages user authentication and authorization.

Related Classes/Methods: None

StateService

Provides centralized management for the application's persistent state.

Related Classes/Methods: None

HttpClient

Facilitates all HTTP communications with the backend.

Related Classes/Methods: None

LocalStorageService

Manages client-side data storage.

Related Classes/Methods: None