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.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.
Runtime: Node.js and npm
The SPA is built with Angular 19, which requires a modern LTS release of Node.js.| Requirement | Version | Why |
|---|---|---|
| Node.js | 20.x | Angular 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) |
| npm | 10.x | Ships 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.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 variable | Service | Owner |
|---|---|---|
mainApiUrl | Primary REST API (NestJS) — results, indicators, users, CLARISA controlled lists, dashboards, and all core business logic | Main API team |
textMiningUrl | AI/NLP text-mining microservice — auto-fill and content extraction for result fields | Text-mining team |
fileManagerUrl | Evidence file upload and serving — multipart upload endpoint that returns persistent URLs attached to results | File-manager team |
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 atPOST /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.
Optional tooling
The following tools are not strictly required but improve day-to-day development:| Tool | Purpose |
|---|---|
| Docker / Docker Compose | Run the full application in a containerized environment (see Build and run with Docker) |
stylelint | Run SCSS linting locally (npm run s-lint). Installed as a dev dependency, so no global install needed |
| A WebSocket-capable browser DevTools | Inspect real-time notifications and presence events on the /room route |