We are moving to Dioxus as the main UI/Fullstack Framework:
It is written in Rust
Good user base and community
Backing from YCombinator
Core maintainer is very active and skilled
The idea is to not touch pa (the power/ crate).
It will be still an emscripten WASM blob.
We need very little frontend in JS. Just to send the JSON to pa and get back some JSON,
e.g. {"test": "oneSampleTTest", "tail": "1", "analysis": "n", "n": 50, "alpha": 0.05,"power": 0.95,"es": 0.5} and then get back {"n": 45}.
This will enable us to get the reactive conditional rendering on the analysis using Dioxus components.
(Some tests have different greek letter for the Noncentrality parameter and also different UI fields for the user to input, these are easy to handle with Dioxus)
Additionally, we can do better sanitization of the user inputs before passing internally to pa's WASM (related #19),
and better error handling possibilities (related #18).
Finally, having PowerAnalyses as an offline PWA would be also easy to implement (related #22)
TODO
[ ] Replicate Current UI
[ ] Add Noncentrality parameter (δ/λ) in the UI
[ ] Add Critical t/F/χ² in the UI
[ ] Denominator df in Output (for ANOVA non-repeated/ANCOVA)
We are moving to Dioxus as the main UI/Fullstack Framework:
The idea is to not touch
pa
(thepower/
crate). It will be still anemscripten
WASM blob. We need very little frontend in JS. Just to send the JSON topa
and get back some JSON, e.g.{"test": "oneSampleTTest", "tail": "1", "analysis": "n", "n": 50, "alpha": 0.05,"power": 0.95,"es": 0.5}
and then get back{"n": 45}
. This will enable us to get the reactive conditional rendering on the analysis using Dioxus components. (Some tests have different greek letter for the Noncentrality parameter and also different UI fields for the user to input, these are easy to handle with Dioxus)Additionally, we can do better sanitization of the user inputs before passing internally to
pa
's WASM (related #19), and better error handling possibilities (related #18). Finally, having PowerAnalyses as an offline PWA would be also easy to implement (related #22)TODO
Noncentrality parameter (δ/λ)
in the UICritical t/F/χ²
in the UIDenominator df
in Output (for ANOVA non-repeated/ANCOVA)Numerator df
in Output (for ANOVA repeated measures/Linear regression)Allocation Ratio (N2/N1)
inindependentSamplesTTest
Sample size group {1,2}
inindependentSamplesTTest
app
sub-crateapp
sub-crateCloses #22, #19, and #18.