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 previews, localized routing, and the shared AI assistant experience.
The application is a React and TypeScript single-page application built with Vite. All data and media required by the static experience are committed in this repository; the AI assistant is the only live external application service.
- Repository:
UNDP-Data/sgp-platform - Deployment target:
https://undp-data.github.io/sgp-platform/ - Runtime route catalogue: 85 patterns
- Locales: English, Portuguese, French, Spanish, Russian, Chinese, and Arabic
- Node.js: 20 (versions 20 through 24 are accepted)
- Hosting: GitHub Pages through GitHub Actions
This is an MVP. Role selection and restricted-area behavior demonstrate the access model but do not provide production authentication or authorization. See Access and roles before treating any workspace as protected.
npm ci
npm run devOpen http://127.0.0.1:5173/.
Useful commands:
npm run verify
npm run check
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 |
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
- Deployment
- Configuration
- Routing and localization
- Data and content
- Access and roles
- 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.