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
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.
Manages the user interface for profile settings.
Related Classes/Methods: None
Manages the UI and logic for saving user-defined queries.
Related Classes/Methods: None
Manages the UI and logic for loading saved queries.
Related Classes/Methods: None
Displays saved queries in a tabular format.
Related Classes/Methods: None
Handles all CRUD operations for saved user queries.
Related Classes/Methods: None
Encapsulates business logic for user preferences.
Related Classes/Methods: None
Manages user authentication and authorization.
Related Classes/Methods: None
Provides centralized management for the application's persistent state.
Related Classes/Methods: None
Facilitates all HTTP communications with the backend.
Related Classes/Methods: None
Manages client-side data storage.
Related Classes/Methods: None