Go to file
Konstantina Galouni 1559af58cf Merge remote-tracking branch 'origin/recommendations-and-nl-search' into angular-18 2024-11-05 13:49:05 +02:00
e2e Adding code files (sources & assets) 2023-09-22 10:08:25 +03:00
src Updating openaireLibrary 2024-11-05 13:48:56 +02:00
.gitignore Updated to angular 16 2023-09-22 14:39:43 +03:00
.gitmodules Adding code files (sources & assets) 2023-09-22 10:08:25 +03:00
CHANGELOG.md [main | DONE | CHANGED] CHANGELOG.md: Added content in CHANGELOG.md file. 2023-11-27 18:59:29 +02:00
LICENSE Initial commit 2023-09-22 00:47:15 +02:00
README.md [main | DONE | CHANGED] README.md: Updated documentation at README.md file and added architecture.png image in assets. 2023-11-27 18:49:43 +02:00
angular.json [angular-17 | WIP] upgrade angular core and cli to v17 2024-07-09 12:59:13 +03:00
package.json [angular-18 | DONE | CHANGED] update to recaptcha-2, update submodules 2024-09-24 14:44:06 +03:00
prometheus.ts [angular-18 | DONE | FIXED]: Fixed server side rendering, changed "@types/node" version from "^12.11.1" to "^18.19.1" and updated prometheus routes (not fully correct, but no KPIs have been requested so far). 2024-09-17 16:24:27 +03:00
server.ts [angular-18 | DONE | FIXED]: server.ts: Added missing configuration in commonEngine.render: inlineCriticalCss: false. 2024-09-23 21:23:25 +03:00
tsconfig.json Updated to angular 16 2023-09-22 14:39:43 +03:00

README.md

RDGraph Portal Documentation

Introduction

The RDGraph portal is built with Angular, a popular open-source web application framework for building dynamic, single-page applications (SPAs). The current version of Angular in this application is version 16.

Angular Server-Side Rendering (SSR), also known as Angular Universal, is used in this application, which allows rendering on the server, sending pre-rendered HTML to the client's browser.

System Architecture

Users can access the RDGraph portal via the https://beta.rdgraph.openaire.eu domain and browse the contents of the EOSC Research Discovery Graph (RDGraph) or search by keywords and persistent identifiers.
The search results can be sorted by relevance, date or a variety of impact-based indicators, such as citation count, popularity, influence and impact.
Additionally, simple or advanced filters on multiple metadata fields can be applied to further narrow down the search results.
The searchable entities within the RDGraph portal are research products (publications, research data, research software, other research products), projects, services (including data sources) and organizations.

The RDGraph Portal portal also serves detailed pages for specific research products, providing an overview of all the metadata available in RDGraph and the relationships among the entities of the graph, such as related research, supplementary research, funding projects, related organizations and data sources. Users can navigate through the different entities of RDGraph by following the relationships.

Metrics, indicators and charts, calculated by OpenAIRE or external tools, are also available in the detailed pages of the RDGraph portal.

Building

Run npm install to build the application. A folder node-modules containing all the dependent libraries will be created.

Build - CSR

Use the npm run build-dev for a development build.
Use the npm run build-beta for a beta build.
Use the npm run build-prod for a production build.

Build - SSR

Use the npm run build:ssr-dev for a development build.
Use the npm run build:ssr-beta for a beta build.
Use the npm run build:ssr-prod for a production build.

Deployment

Development server

Run npm start for a dev server. Navigate to http://localhost:5200/. The app will automatically reload if you change any of the source files.

Run SSR

npm run serve:ssr will run the last server build.

Installation

The application can be deployed in a machine with installed Node.js and NPM (Node Package Manager) by simply running the commands of the Building and Deployment sections.
Current versions of the production deployment are version 16.20.2 for Node.js and version 8.19.4 for NPM.

The production deployment is managed with PM2 (Process Manager 2), version 5.3.0, which is a popular and widely used process manager for Node.js applications.
PM2 supports zero-downtime application reloads by gracefully switching to the new version without interrupting user requests and runs the application in the background. The start, stop, restart and managing processes of the application are simplified by the following commands:
  • pm2 list: view all the currently running applications managed with PM2 and their statuses.
  • pm2 log {{app_name}}: view the logs of the application {{app_name}}.
  • pm2 start/ stop/ restart {{app_name}}: start/ stop/ restart the application {{app_name}}.

The source code of the project can be found in this repository.

Configuration

An Angular application has several configuration files that help define and manage various aspects of the application. These files are important for project setup, development, and deployment.

  • package.json: Specifies the dependencies required for the Angular application and contains scripts that define various tasks, such as commands for starting a development server and building the application.The port used when running the application in client side rendering mode is defined here.
  • angular.json: The angular.json file is the primary configuration file for the application. It defines build and project configuration, including build options, assets, and development server settings.
  • tsconfig.json: The tsconfig.json file is the TypeScript configuration file for the Angular application.
  • environment.ts, environment.beta.ts, environment.prod.ts: These TypeScript files are used to define environment-specific variables and configuration settings. environment.ts is for development, while environment.prod.ts is for production.
  • .gitignore: The .gitignore file specifies files and directories that should be ignored by version control systems like Git. It helps prevent unnecessary or sensitive files from being committed to the repository.
  • .gitmodules: This file includes a reference to other libraries which are used as submodues. The source code of this application consists of the local source code files and assets, as well as of three submodules (libraries).
  • server.ts: This is a file used for server-side rendering (SSR) to render the Angular components and templates on the server. The port used when running the application in server side rendering mode is defined here.
  • The colors and styling of the user interface are customized in the eosc-custom.less file.

    Changelog

    CHANGELOG file