Skip to content

Climate-REF/ref-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

73 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Rapid Evaluation Framework App

This repository contains a quick proof of concept for an API to serve outputs from the Rapid Evaluation Framework (REF). This system enables near real-time evaluation of Earth system models.

This is a full-stack application that consists of a:

  • Backend: API
    • FastAPI, OpenAPI documentation
  • Frontend: React frontend
    • TypeScript, Tanstack Query, Shadcn, Vite

Status: Alpha

Other info : Licence Last Commit Contributors

Overview

The REF Web Application provides researchers and scientists with tools to:

  • Perform model evaluations quickly
  • Visualize evaluation results
  • Compare models against benchmark data
  • Access evaluation metrics and diagnostics

Getting Started

Prerequisites

  • Python 3.11+
  • PostgreSQL database
  • Node.js v20 and npm (for frontend)
  • Docker and Docker Compose (optional)
  1. Clone the repository
git clone https://github.com/Climate-REF/ref-app.git
cd ref-app

Backend Setup

  1. Set up environment variables

Create a .env file in the project root by copying the .env.example file.

cp .env.example .env

Modify the .env to your needs. The REF_CONFIGURATION variable should point to the configuration directory for the REF. This will be used to define the database connection string.

  1. Install dependencies
cd backend
make virtual-environment
  1. Start the backend server
make dev

Frontend Setup

  1. Generate Client
make generate-client
  1. Install dependencies
cd frontend
npm install
  1. Start the frontend server
npm run dev

Project Structure

ref-app/
├─�� .env                     # Environment variables
├── Makefile                 # Project automation tasks
├── backend/
│   ├── src/
│   │   └── ref_backend/     # Main package
│   │       ├── api/         # API endpoints
│   │       ├── core/        # Core functionality
│   │       └── main.py      # Application entry point
│   ├── tests/               # Test suite
│   └── pyproject.toml       # Python dependencies

API Documentation

When the backend is running, API documentation is available at: