|
|
||
|---|---|---|
| .kilo | ||
| .vscode | ||
| NOTE | ||
| docs | ||
| images | ||
| public | ||
| src | ||
| task | ||
| .editorconfig | ||
| .gitignore | ||
| .nvmrc | ||
| AGENTS.md | ||
| CHANGELOG.md | ||
| CITATION.cff | ||
| FUNDING.md | ||
| LICENSE.md | ||
| PROJECT_SPECIFICATIONS.md | ||
| README-Angular.md | ||
| README.md | ||
| TEST-CHECKLIST.md | ||
| angular.json | ||
| deploy.md | ||
| isgui.d4science.org.json | ||
| jenkinsfile | ||
| llm.txt | ||
| mkdocs.yml | ||
| package-lock.json | ||
| package.json | ||
| proxy.conf.json | ||
| tsconfig.app.json | ||
| tsconfig.json | ||
| tsconfig.spec.json | ||
README.md
is-gui
This project is an Angular and TypeScript application designed to serve as a Graphical User Interface (GUI) for the Information System (IS). It facilitates the monitoring and configuration of resources within the gCube framework. The application integrates with Keycloak for authentication and authorization and communicates with a REST API backend to manage and display resource information.
Table of contents
Overview
Structure of the project
- This is an Angular project. Key folders include:
src/app/: Contains the application components, services, and modules.src/app/dynamic-viewer/: The DynamicEntityViewer framework, aliased as@dv.src/assets/: For static assets like images and fonts.src/environments/: For environment-specific configuration files (development and production).
PROJECT_SPECIFICATIONS.md: Contains detailed project requirements and feature tracking.appunti.md: Contains development notes and brainstorming.
Built With
- Angular - The web application framework used
- Angular CLI - Command line interface for Angular
- TypeScript - Superset of JavaScript that compiles to plain JavaScript
- Bootstrap 5 (via ng-bootstrap) - For UI components and styling
- Keycloak - For authentication and authorization (via
keycloak-angularandkeycloak-js)
Key Features (from PROJECT_SPECIFICATIONS.md and appunti.md)
- Authentication & Authorization:
- Keycloak integration for user login/logout.
- Role-based authorization (IS-Manager, Infrastructure-Manager).
- User profile page.
- Silent Single Sign-On (SSO).
- Resource Management:
- Context Management: Listing, selection, and search of contexts.
- Resource Type Management:
- Tree view of resource types.
- Listing instances of a selected type.
- Detailed view of type instances (UUID, associated facets).
- Creation, modification, and deletion of type instances.
- Management of associated facets, including relationships and custom fields.
- Use of
QueryTemplateto define tabular views.
- Basket Functionality: Allows users to select and set aside objects for later consultation (similar to a monitor).
- Dynamic Visualization Engine (DynamicEntityViewer -
@dv):- A decoupled framework for rendering entities using various view modes (Table, List, Tree, JSON).
- Injected domain configuration for inheritance and custom views.
- Automatic view scoping (Item vs. Collection).
- Interactive navigation stack management.
- API Interaction:
RegistryApiClientServicefor communication with the Resource Registry REST API.- Automatic inclusion of Keycloak token in API calls.
- TypeScript interfaces for API data models.
Continuous Deployment (CD)
The project follows a branch-based deployment strategy. Merging code into the following branches triggers the Continuous Deployment (CD) for the corresponding environments:
isgui-dev: Triggers deployment to the Development (DEV) environment.isgui-pre: Triggers deployment to the Pre-production (PRE) environment.isgui-prod: Triggers deployment to the Production (PROD) environment.
To deploy changes, simply merge your development branch into the target environment branch.
Documentation
Registry Application
- Project Specifications: PROJECT_SPECIFICATIONS.md
- Development Notes: appunti.md
- Application Configuration
- Data Modeling & Resources
- Authentication Setup
- Service Implementation
- gCube Facet Based Resource Model Wiki: https://gcube.wiki.gcube-system.org/gcube/Facet_Based_Resource_Model
Core Framework
This project utilizes the DynamicEntityViewer Framework, a decoupled visualization engine located in src/app/dynamic-viewer/.
Changelog
See CHANGELOG.md.
Authors
- Alfredo Oliviero as Architect, Developer (ORCID)
How to Cite
If you use this software, please cite it using the metadata in CITATION.cff
License
This project is licensed under the terms specified in the LICENSE.md file.
About gCube
This software is part of the gCube Framework: an open-source software toolkit used for building and operating Hybrid Data Infrastructures enabling the dynamic deployment of Virtual Research Environments by favouring the realisation of reuse oriented policies. The gCube Framework supports the development and operation of the D4Science Infrastructure.
Funding
See FUNDING.md