decker-edu / decker

A markdown based tool for slide deck creation.
GNU General Public License v3.0
55 stars 14 forks source link

Passing on more information to the user #43

Open salbeira opened 1 year ago

salbeira commented 1 year ago

If anything during a presentation breaks or didn't work as anticipated we are currently only writing things to the console.

We should be more transparent to the user about what is happening. This especially includes the state of the upload of -recording.webm, -annot.json and -times.json files. If anything is not completed, the user should be informed about it.

This is part of a longer process: First we included backup downloads only if an upload failed. Then we included backup downloads at all times but after the upload process finishes. We changed this recently to have the backup happen first and the upload happen thereafter as to make sure the backup is available. The state of the upload however is never displayed to the user.

This became an issue as it seems on Windows 11 the writing of the -recording.webm file takes a significantly longer time than it used to. I expect anti-virus scanning to be the culprit but can not pin it on anything in particular but in the case of one of our users who uses Windows 11 the upload took a long time (at first confusing us why it would take any time at all to upload something to localhost). This was later confirmed by me updating my Windows 10 machine to Windows 11 and the upload to localhost taking significantly longer (~30s - 1m for me for a 2h video, the device of our user is significantly weaker than mine where it took up to 2m for a 1h video).

I would love to have custom alerts (akin to alertify ) for these inside our web page but as the explain plugin is very fragile the current idea was to use standard-issue desktop notifications for this.

A first draft of this can be found in the desktop-notification branch.

This should coincide with making the explain plugin more robust. Further input is appreciated. One of the first tasks would be to split the plugin code into the parts: video-player, video-recorder and user-interface to make it more readable.