ImperialCollegeLondon / ImperialCollegeLondon/Visual2

Rewrite the renderer GUI using FABLE-elmish-react

Open
#14 2 comments 0 reactions 0 assignees View on GitHub
enhancement help wanted
Dominant language
F#
Stars
49
Forks
7
PR merge metrics
No merged PRs in 30d

Description

This is a suggestion for a future enhancement to the Visual2 code. I'm annoyed by the duplication in the HTML used for the skeleton, and also in much of the GUI F# code.

I suggest rewrite using [fable-elmish-react](https://github.com/elmish/react)

Advantages:

* Write the web part properly, making changes much easier
* Reduce code size by abstracting common patterns
* elmish-react is the referred F# SPA tech and looks to have a long life.
* elmish-react is at centre of new web development ideas and so tech learnt will have value beyond F#
* (for person doing it) a great way to get into fable-elmish-react

Additional reference:

[fable-elmish-react-electron toolbox](https://github.com/aolney/fable-electron-elmish-react-reacttoolbox) may help in integrating this with electron framework, though I suspect nothing there needs to change.

I will definitely do this over the Summer if no-one else bids - so if you are possibly interested indicate this on the issue. If someone else does it I'll provide code review etc.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reviewing the existing renderer GUI and the duplicated HTML skeleton and F# GUI code, then compare the fable-elmish-react-electron toolbox reference for integration guidance. Done means the renderer uses fable-elmish-react, reduces the noted duplication, and remains integrated with the Electron framework.

Written by the indexing model from the issue text.

Assessment

Tech stack
electron, react
Domain
desktop, frontend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.