-
Notifications
You must be signed in to change notification settings - Fork 0
Contributor Guide
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.
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.
- A potential improvement for future development would be the migration from jQuery to the Svelte framework, following this svelte-template implemented by SDEverywhere: https://github.com/climateinteractive/SDEverywhere/issues/629
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.
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.