The integrated frontend for the GEF Small Grants Programme Knowledge and Learning Platform. This repository contains the public journeys, grants explorer, portfolio dashboard, Innovation Library, stories, role-aware workspaces, administration, localized routing, and the shared AI assistant experience. A temporary SQLite backend supports connected end-to-end testing.
The application is a React and TypeScript single-page application built with Vite. All data and media required by the static public experience are committed in this repository. The temporary Node backend is used locally for workflow, file, account, support, administration, content, search and AI integration testing; GitHub Pages still deploys the static frontend only.
- Repository:
UNDP-Data/sgp-platform - Deployment target:
https://undp-data.github.io/sgp-platform/ - Runtime route catalogue: 99 patterns
- Locales: English, Portuguese, French, Spanish, Russian, Chinese, and Arabic
- Node.js: 22 (versions 22 through 24 are accepted)
- Hosting: GitHub Pages through GitHub Actions
This is an MVP and local reference implementation. The operational workspaces are functionally executable against the temporary backend with durable records, stage validation, evidence, audit, support and recovery, plus an offline browser fallback. Role selection and development API keys do not provide production authentication or authorization. See Temporary backend, Operational workflow acceptance and Access and roles before treating any workspace as protected.
npm ci
npm run dev:fullOpen http://127.0.0.1:5173/. Backend health is available at
http://127.0.0.1:8787/api/health. Use npm run dev only when intentionally
testing the offline browser fallback.
Useful commands:
npm run verify
npm run check
npm run test:backend
npm run test:e2e
npm run build
npm run previewverify runs source, translation, documentation, TypeScript, unit-test, and
data-contract checks. check also creates and audits a production build.
Every push to main runs the complete verification and deployment workflow in
deploy-pages.yml. The build uses
BASE_PATH=/sgp-platform/, uploads dist/, and deploys only after all checks
pass.
One repository setting must be enabled by an administrator before the first deployment:
- Open Settings → Pages in
UNDP-Data/sgp-platform. - Under Build and deployment, set Source to GitHub Actions.
- Push or merge to
main, or run Deploy GitHub Pages manually from the Actions tab.
No Pages branch, committed dist/ directory, secret, or custom domain is
required. For the full release and rollback procedure, see
Deployment.
| Path | Purpose |
|---|---|
src/ |
React application, routing, translations, role policy, and UI |
server/ |
Temporary SQLite backend, API, authorization and local retrieval |
public/generated/ |
Validated portfolio and knowledge runtime artifacts |
public/media/ |
Local optimized image variants |
public/brand/ |
Platform and partner brand assets |
scripts/ |
Data, route, documentation, localization, and build audits |
tests/ |
Unit, contract, accessibility, responsive, and journey tests |
docs/ |
Maintained product and operational documentation |
.github/workflows/ |
Pull-request verification and Pages deployment |
The deployed app never reads a sibling repository. Runtime data is packaged
under public/generated/ and includes checksums in
public/generated/provenance.json.
To refresh from a compatible pipeline checkout:
SGP_DATA_PIPELINE_DIR=/absolute/path/to/pipeline npm run sync:data
npm run validate:data
npm run checkSGP_PIPELINE_API may instead point directly to the pipeline API export
directory. Do not hand-edit generated artifacts. See
Data and content.
Start with the central platform reference. It consolidates the complete sitemap, implemented and target feature set, users, programme lifecycle, record families, data scope, metadata strategy, technical architecture, governance, acceptance, and delivery approach. The documentation index links the focused implementation and operating guides:
- Central platform reference
- Architecture
- Temporary backend
- Deployment
- Configuration
- Routing and localization
- Data and content
- Access and roles
- Operational workflow acceptance
- Operations
Contributors should also read CONTRIBUTING.md and SECURITY.md.
No license file was present in the destination repository at migration time. Repository owners should add the UNDP-approved license or usage terms before representing the code or bundled media as licensed for external reuse.