https://github.com/climate-ref/ref-app
API and Portal for viewing outputs from the REF
Science Score: 26.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (15.6%) to scientific vocabulary
Repository
API and Portal for viewing outputs from the REF
Basic Info
- Host: GitHub
- Owner: Climate-REF
- License: apache-2.0
- Language: TypeScript
- Default Branch: main
- Size: 2.84 MB
Statistics
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 1
- Releases: 0
Metadata Files
README.md
Climate Rapid Evaluation Framework (REF) App
This 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.
This is a full-stack application that consists of a: * Backend: FastAPI API (Python 3.11+) * FastAPI, Pydantic, SQLAlchemy, OpenAPI documentation * Frontend: React frontend (React 19, TypeScript) * Vite, Tanstack Router, Tanstack Query, Tailwind CSS, Shadcn/ui, Recharts
Status: Alpha
Overview
The Climate REF Web Application provides researchers and scientists with tools to: - Enable rapid model evaluation and near real-time assessment of climate model performance. - Provide standardized, reproducible evaluation metrics across different models and datasets. - Make complex climate model diagnostics accessible through an intuitive web interface. - Ensure evaluation processes are transparent and results are traceable. - Consolidate various diagnostic tools into a unified framework. - Automate the execution of diagnostics when new datasets are available. - Help researchers find and understand available datasets and their evaluation status. - Enable easy comparison of model performance across different versions and experiments.
Getting Started
Prerequisites
- Python 3.11+ (with
uvfor package management) - Node.js v20 and npm (for frontend)
- Database: SQLite (development/test) or PostgreSQL (production)
- Docker and Docker Compose (optional, for containerized deployment)
Clone the repository
bash git clone https://github.com/Climate-REF/ref-app.git cd ref-app
Backend Setup
Set up environment variables
Create a
.envfile in the project root by copying the.env.examplefile.bash cp .env.example .envModify the
.envto your needs. TheREF_CONFIGURATIONvariable should point to the configuration directory for the REF, which defines the database connection string and other REF-specific settings.Install dependencies
bash cd backend make virtual-environmentStart the backend server
bash make dev
Frontend Setup
Generate Client
bash make generate-clientInstall dependencies
bash cd frontend npm installStart the frontend server
bash npm run dev
Project Structure
ref-app/
├── .env # Environment variables (copy from .env.sample)
├── Makefile # Project automation tasks (e.g., client generation, dev server)
├── backend/
│ ├── src/
│ │ └── ref_backend/ # Main Python package
│ │ ├── api/ # FastAPI API endpoints and dependencies
│ │ │ ├── routes/ # API route definitions (datasets, diagnostics, executions, etc.)
│ │ │ └── main.py # API router aggregation
│ │ ├── core/ # Core application logic (config, file handling, REF initialization)
│ │ └── models.py # Pydantic models for API responses
│ ├── tests/ # Backend test suite
│ ├── pyproject.toml # Python dependencies and project metadata
│ └── uv.lock # uv lock file for reproducible dependencies
├── frontend/
│ ├── public/ # Static assets
│ ├── src/
│ │ ├── client/ # Auto-generated API client (TypeScript types, React Query hooks)
│ │ ├── components/ # Reusable React components (app, dashboard, datasets, ui, etc.)
│ │ ├── routes/ # File-based routing for React application
│ │ ├── hooks/ # Custom React hooks
│ │ ├── lib/ # Utility functions
│ │ └── styles/ # Global styles
│ ├── package.json # Node.js dependencies
│ ├── vite.config.ts # Vite build configuration
│ └── openapi.json # OpenAPI specification (generated from backend)
└── scripts/ # Utility scripts
API Documentation
When the backend is running, API documentation is available at: - Swagger UI: http://localhost:8001/docs - ReDoc: http://localhost:8001/redoc - OpenAPI JSON: http://localhost:8001/openapi.json
Owner
- Name: Climate REF
- Login: Climate-REF
- Kind: organization
- Email: cmip-ipo@esa.int
- Repositories: 1
- Profile: https://github.com/Climate-REF
Climate Rapid Evaluation Framework
GitHub Events
Total
- Issues event: 6
- Issue comment event: 8
- Push event: 52
- Pull request event: 1
- Create event: 2
Last Year
- Issues event: 6
- Issue comment event: 8
- Push event: 52
- Pull request event: 1
- Create event: 2
Dependencies
- ghcr.io/astral-sh/uv python3.10-bookworm-slim build
- python 3.10-slim build
- 336 dependencies
- @biomejs/biome 1.9.4 development
- @eslint/js ^9.21.0 development
- @hey-api/openapi-ts ^0.64.10 development
- @types/node ^22.13.8 development
- @types/react ^19.0.10 development
- @types/react-dom ^19.0.4 development
- @vitejs/plugin-react-swc ^3.8.0 development
- eslint ^9.21.0 development
- eslint-plugin-react-hooks ^5.1.0 development
- eslint-plugin-react-refresh ^0.4.19 development
- globals ^15.15.0 development
- typescript ~5.7.2 development
- typescript-eslint ^8.24.1 development
- vite ^6.2.0 development
- @hey-api/client-fetch ^0.8.3
- @radix-ui/react-dialog ^1.1.6
- @radix-ui/react-dropdown-menu ^2.1.6
- @radix-ui/react-label ^2.1.2
- @radix-ui/react-scroll-area ^1.2.3
- @radix-ui/react-separator ^1.1.2
- @radix-ui/react-slot ^1.1.2
- @radix-ui/react-tabs ^1.1.3
- @radix-ui/react-tooltip ^1.1.8
- @tailwindcss/vite ^4.0.9
- @tanstack/react-query ^5.66.11
- @tanstack/react-query-devtools ^5.67.1
- @tanstack/react-table ^8.21.2
- class-variance-authority ^0.7.1
- clsx ^2.1.1
- date-fns ^4.1.0
- lucide-react ^0.477.0
- react ^19.0.0
- react-dom ^19.0.0
- react-router ^7.2.0
- tailwind-merge ^3.0.2
- tailwindcss ^4.0.9
- tailwindcss-animate ^1.0.7
- cmip-ref [metrics,postgres]==0.2.0
- fastapi [standard]<1.0.0,>=0.114.2
- ilamb3 *
- ipython >=8.33.0
- pcmdi-metrics *
- psycopg [binary]<4.0.0,>=3.1.13
- pydantic >2.0
- pydantic-settings <3.0.0,>=2.2.1
- python-multipart <1.0.0,>=0.0.7
- sentry-sdk [fastapi]<2.0.0,>=1.40.6
- tenacity <9.0.0,>=8.2.3
- 166 dependencies