Flux icon indicating copy to clipboard operation
Flux copied to clipboard

add Workout Editor

Open dvmarinoff opened this issue 2 years ago • 6 comments

Workout editor:

  • [x] User can create a workout, executable by Flux

  • [x] User can save the workout

  • [x] User can export the workout in .zwo format

  • [ ] User can export the workout in .fit format

  • [x] User can use the custom slope attributes to set slope targets

  • [x] User can add a new row by pressing the add (+) button

  • [x] User can remove the last row by pressing the remove (-) button

  • [x] User can save the workout from the save button

  • [x] User can export the workout from the export/download button

  • [x] User can add a row to a selection group (multiple rows) by using the radio buttons

  • [x] User can duplicate complex intervals by selecting a group of rows and pressing the add button

  • [ ] User can remove a group of rows by selecting them and pressing the remove button

  • [ ] User can insert a Row in a position after a selected Row

  • [ ] add a feedback workout graph

  • [ ] * maybe add a plain text declaration (workout DSL)

Screenshot

Example for a duplicating a Over-Under + Rest group:

Screenshot Screenshot

dvmarinoff avatar Apr 15 '22 13:04 dvmarinoff

Nice initiative, I played a bit with it, good job.

Overall I think that the best UI for workout editors out there is the one provided by intervals.icu : https://forum.intervals.icu/t/workout-builder/1163

Just typing :

6m 50% 10m 40-50%

is much faster than fiddling with each value in a table like the one above. Displaying the graph is also a nice UI feedback, which allows in a glance to ensure the sanity of the values.

I would recommend that design.

At the moment, the biggest limitation with workouts in your otherwise great app is the fact that files workouts are not saved across sessions, and it's not very friendly to have to reupload them everytime.

cbourgeois avatar Apr 26 '22 18:04 cbourgeois

Does Slope have higher priority than ERG If target power and target slope presented in the same interval?

TClin76 avatar Apr 27 '22 06:04 TClin76

@TClin76 Yes, slope has higher priority. To disable it for the interval leave it blank or dash, but 0 would set the trainer to slope mode with 0 grade.

dvmarinoff avatar Apr 27 '22 06:04 dvmarinoff

@cbourgeois

The text declaration syntax is an interesting option, thanks for sharing! Do you know what is the general feedback on this approach from intervals.icu?

workouts are not saved across sessions

The app is fully static, which leaves the option to choose between the browsers' IndexedDB and LocalStorage. I've been thinking on the problem, but I can't make my mind on how to approach it. IndexedDB is frankly giving me nightmares, and I don't know if I can trust LocalStorage for storing User data of that size. I am thinking also of adding some sort of bulk import/export solution that will allow for storing the workouts on the local user device and transferring them to another device.

dvmarinoff avatar Apr 27 '22 06:04 dvmarinoff

Created a poll discussion about the interval definition. You can vote here

dvmarinoff avatar Apr 28 '22 09:04 dvmarinoff

@cbourgeois

The text declaration syntax is an interesting option, thanks for sharing! Do you know what is the general feedback on this approach from intervals.icu?

Hey @dvmarinoff , the feedback around this looks positive, from what I can gather reading the thread I linked above. I also personally found it very handy, quick and powerful, this is of course biased by the fact that this I am in the software industry.

workouts are not saved across sessions

The app is fully static, which leaves the option to choose between the browsers' IndexedDB and LocalStorage. I've been thinking on the problem, but I can't make my mind on how to approach it. IndexedDB is frankly giving me nightmares, and I don't know if I can trust LocalStorage for storing User data of that size. I am thinking also of adding some sort of bulk import/export solution that will allow for storing the workouts on the local user device and transferring them to another device.

I understand, this is indeed not simple, perhaps it would be nice to find a way to link to a bank of workouts hosted somewhere else that users could simply load into the app before a workout ?

cbourgeois avatar Apr 28 '22 22:04 cbourgeois