33This repository contains the API and Frontend for the Climate Rapid Evaluation Framework (REF). This system enables comprehensive benchmarking and evaluation of Earth system models against observational data, integrating with the ` climate-ref ` core library.
44
55This is a full-stack application that consists of a:
6- * ** Backend** : FastAPI API (Python 3.11+)
7- * FastAPI, Pydantic, SQLAlchemy, OpenAPI documentation
8- * ** Frontend** : React frontend (React 19, TypeScript)
9- * Vite, Tanstack Router, Tanstack Query, Tailwind CSS, Shadcn/ui, Recharts
6+
7+ * ** Backend** : FastAPI API (Python 3.11+)
8+ * FastAPI, Pydantic, SQLAlchemy, OpenAPI documentation
9+ * ** Frontend** : React frontend (React 19, TypeScript)
10+ * Vite, Tanstack Router, Tanstack Query, Tailwind CSS, Shadcn/ui, Recharts
1011
1112** Status** : Alpha
1213
@@ -15,29 +16,41 @@ This is a full-stack application that consists of a:
1516[ ![ Last Commit] ( https://img.shields.io/github/last-commit/Climate-REF/ref-app.svg )] ( https://github.com/Climate-REF/climate-ref/commits/main )
1617[ ![ Contributors] ( https://img.shields.io/github/contributors/Climate-REF/ref-app.svg )] ( https://github.com/Climate-REF/ref-app/graphs/contributors )
1718
18-
1919## Overview
2020
2121The Climate REF Web Application provides researchers and scientists with tools to:
22- - Enable rapid model evaluation and near real-time assessment of climate model performance.
23- - Provide standardized, reproducible evaluation metrics across different models and datasets.
24- - Make complex climate model diagnostics accessible through an intuitive web interface.
25- - Ensure evaluation processes are transparent and results are traceable.
26- - Consolidate various diagnostic tools into a unified framework.
27- - Automate the execution of diagnostics when new datasets are available.
28- - Help researchers find and understand available datasets and their evaluation status.
29- - Enable easy comparison of model performance across different versions and experiments.
22+
23+ * Enable rapid model evaluation and near real-time assessment of climate model performance.
24+ * Provide standardized, reproducible evaluation metrics across different models and datasets.
25+ * Make complex climate model diagnostics accessible through an intuitive web interface.
26+ * Ensure evaluation processes are transparent and results are traceable.
27+ * Consolidate various diagnostic tools into a unified framework.
28+ * Automate the execution of diagnostics when new datasets are available.
29+ * Help researchers find and understand available datasets and their evaluation status.
30+ * Enable easy comparison of model performance across different versions and experiments.
31+
32+ ## Updating Diagnostic Content
33+
34+ Display metadata for each AFT diagnostic collection (descriptions, explanations, plain-language summaries)
35+ is maintained in YAML files under [ ` backend/static/collections/ ` ] ( backend/static/collections/ ) .
36+ See the [ collections README] ( backend/static/collections/README.md ) for the full schema and instructions.
37+
38+ Diagnostic-level metadata overrides (display names, reference datasets, tags) are split into per-provider
39+ YAML files under ` backend/static/diagnostics/ ` (e.g. ` pmp.yaml ` , ` esmvaltool.yaml ` , ` ilamb.yaml ` ),
40+ which can be regenerated from the provider registry with ` make generate-metadata ` .
41+
42+ After changing content fields or adding new collections, regenerate the frontend TypeScript client with ` make generate-client ` .
3043
3144## Getting Started
3245
3346### Prerequisites
3447
35- - Python 3.11+ (with ` uv ` for package management)
36- - Node.js v20 and npm (for frontend)
37- - Database: SQLite (development/test) or PostgreSQL (production)
38- - Docker and Docker Compose (optional, for containerized deployment)
48+ * Python 3.11+ (with ` uv ` for package management)
49+ * Node.js v20 and npm (for frontend)
50+ * Database: SQLite (development/test) or PostgreSQL (production)
51+ * Docker and Docker Compose (optional, for containerized deployment)
3952
40- 1 . ** Clone the repository**
53+ 1 . ** Clone the repository**
4154
4255 ``` bash
4356 git clone https://github.com/Climate-REF/ref-app.git
@@ -46,7 +59,7 @@ The Climate REF Web Application provides researchers and scientists with tools t
4659
4760# ## Backend Setup
4861
49- 2. ** Set up environment variables**
62+ 1. ** Set up environment variables**
5063
5164 Create a ` .env` file in the project root by copying the ` .env.example` file.
5265
@@ -56,35 +69,35 @@ The Climate REF Web Application provides researchers and scientists with tools t
5669
5770 Modify the ` .env` to your needs. The ` REF_CONFIGURATION` variable should point to the configuration directory for the REF, which defines the database connection string and other REF-specific settings.
5871
59- 3. ** Install dependencies**
72+ 2. ** Install dependencies**
6073
6174 ` ` ` bash
6275 cd backend
6376 make virtual-environment
6477 ` ` `
6578
66- 4. ** Start the backend server**
79+ 3. ** Start the backend server**
6780
6881 ` ` ` bash
6982 make dev
7083 ` ` `
7184
7285# ## Frontend Setup
7386
74- 1. ** Generate Client**
87+ 1. ** Generate Client**
7588
7689 ` ` ` bash
7790 make generate-client
7891 ` ` `
7992
80- 2. ** Install dependencies**
93+ 2. ** Install dependencies**
8194
8295 ` ` ` bash
8396 cd frontend
8497 npm install
8598 ` ` `
8699
87- 3. ** Start the frontend server**
100+ 3. ** Start the frontend server**
88101
89102 ` ` ` bash
90103 npm run dev
@@ -104,6 +117,9 @@ ref-app/
104117│ │ │ └── main.py # API router aggregation
105118│ │ ├── core/ # Core application logic (config, file handling, REF initialization)
106119│ │ └── models.py # Pydantic models for API responses
120+ │ ├── static/
121+ │ │ ├── collections/ # Per-collection YAML metadata (see collections/README.md)
122+ │ │ └── diagnostics/ # Diagnostic metadata overrides
107123│ ├── tests/ # Backend test suite
108124│ ├── pyproject.toml # Python dependencies and project metadata
109125│ └── uv.lock # uv lock file for reproducible dependencies
@@ -125,6 +141,7 @@ ref-app/
125141## API Documentation
126142
127143When the backend is running, API documentation is available at:
128- - Swagger UI: http://localhost:8001/docs
129- - ReDoc: http://localhost:8001/redoc
130- - OpenAPI JSON: http://localhost:8001/openapi.json
144+
145+ * Swagger UI: <http://localhost:8001/docs>
146+ * ReDoc: <http://localhost:8001/redoc>
147+ * OpenAPI JSON: <http://localhost:8001/openapi.json>
0 commit comments