Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/AllianceBioversityCIAT/alliance-research-indicators-client/llms.txt

Use this file to discover all available pages before exploring further.

Before you set up a local environment for the Alliance Research Indicators client, make sure you have the following tools and credentials in place. The application is an Angular 19 SPA that communicates with three backend services and authenticates through AWS Cognito, so each dependency here is load-bearing.

Runtime: Node.js and npm

The SPA is built with Angular 19, which requires a modern LTS release of Node.js.
RequirementVersionWhy
Node.js20.xAngular 19 build tooling and the Angular CLI require Node 18+ at minimum; 20.x is the version pinned in the Dockerfile build stage (see below)
npm10.xShips with Node 20; used for all dependency installs and npm script invocations
The Dockerfile build stage is declared as FROM node:20-alpine. Running a different Node major version locally can cause subtle differences in build output or dependency resolution. Use a version manager such as nvm or fnm and select Node 20 before installing dependencies.
You do not need to install the Angular CLI globally — all Angular CLI commands are invoked through the local ng binary via the npm scripts in package.json.

Backend service access

The application talks to three independent backend services. Their base URLs are read from the environment files at build time (src/environments/environment.ts and src/environments/environment.dev.ts). You need reachable instances of each before the app will function beyond the login screen.
Environment variableServiceOwner
mainApiUrlPrimary REST API (NestJS) — results, indicators, users, CLARISA controlled lists, dashboards, and all core business logicMain API team
textMiningUrlAI/NLP text-mining microservice — auto-fill and content extraction for result fieldsText-mining team
fileManagerUrlEvidence file upload and serving — multipart upload endpoint that returns persistent URLs attached to resultsFile-manager team
Contact the respective backend team for staging or development URLs. Do not point a local client at a production API unless you are performing an intentional production deployment test.

AWS Cognito credentials

Authentication is handled exclusively by AWS Cognito (PRD constraint C-2 — no alternative identity providers). The client initiates an OAuth-style redirect to Cognito, receives a token, and exchanges it at POST /authorization/login on the main API. You need:
  • Cognito user-pool ID and region — typically configured as environment variables in src/environments/environment*.ts.
  • A valid Cognito user account in the appropriate user pool — either a personal account provisioned by your team’s identity administrator or a shared development account.
  • Network access to the Cognito endpoint — no VPN or IP restriction is applied to Cognito itself, but the main API may enforce network policies.
You do not need AWS CLI credentials or any AWS SDK setup. The client only performs browser-to-Cognito redirects and then exchanges the resulting token through the main API. All AWS SDK calls happen server-side.

Optional tooling

The following tools are not strictly required but improve day-to-day development:
ToolPurpose
Docker / Docker ComposeRun the full application in a containerized environment (see Build and run with Docker)
stylelintRun SCSS linting locally (npm run s-lint). Installed as a dev dependency, so no global install needed
A WebSocket-capable browser DevToolsInspect real-time notifications and presence events on the /room route

Build docs developers (and LLMs) love