Skip to content

Contributor Guide

Filippos Marntirosian edited this page Sep 21, 2025 · 1 revision

Introduction

This page includes instructions for developers who are looking to build FeliX ISE and contribute to the project.

If you are a user of FeliX ISE, you can safely ignore this page. For more user-focused documentation, consult the top-level wiki page.

Presentation of Code Structure

felix/
├─ config/
├─ packages/
│  ├─ app/
│  │  └─ src/
│  │     ├─ components/
│  │     ├─ imgs/
│  │     ├─ lib/
│  │     ├─ markdowns/
│  │     ├─ stores/
│  │     ├─ dev-overlay.js
│  │     ├─ graph-view.ts
│  │     ├─ index.css
│  │     ├─ index.js
│  │     ├─ index.html
│  │     └─ vite.config.js
│  └─ core/
├─ sde-prep/
├─ testing/
└─ sde.config.js

The key elements are:

  • config/: contains the CSV files that you can edit to customize your graphs, sliders, and more
  • testing/: contains the .mdl (model) files needed
  • packages/app/src/: contains all the source code of the appplication. It is further modularized into
    • components (InputsUI, GraphsUI, NavBar, ScenarioSelector, FloatingLogos) and
    • stores (graphs, inputs, layout, model) which hold the state of the app.
  • The initialization of the app is in index.js.

Enhancement of Foundational features

This template would be useful to consider it if the project continues at a much bigger scale. For now, however, the current code organization is more than sufficient.

  • The implementation of the “Multi-scenario mode” functionality can be enhanced, by allowing users to experiment with more than two scenarios simultaneously, which currently are the maximum. A relevant discussion on this and code are available in the following resource: https://github.com/climateinteractive/SDEverywhere/discussions/624

  • Dependencies, such as all SDEverywhere packages, should be kept up to date and to their latest versions. This is not entirely urgent, but is something to keep in mind, both for future compatibility, but also to benefit from new features introduced by SDEverywhere developers which can also prove useful for the enhancement of the FeliX ISE.

Implementation of New Features

Some of the proposed new features (in no particular order) include:

  • More thorough validation of results through SDEverywhere’s checks and comparison tests.
  • Create an official organization for Node Package Manager (npm) in order to host the extended SDEverywhere “plugin-config” package.
  • More detailed “Continuous Integration / Continuous Deployment (CI/CD)” workflows, GitHub Actions.

Clone this wiki locally