I once developed a UI to enable a non-technical user to answer 20 multiple-choice questions about a video. Some of the UX requirements I teased out during the process:
- easy to answer questions whilst watching the video
- quick to navigate to a specific question
- video visible at all times
- short+long summary of each answer visible when answering a specific question
- long description of question visible
- can be operated using mouse or keyboard (on laptop/desktop) or touch (tablet)
The rest of the site was regular Django, with a bit of jQuery here and there. I settled on:
- a regular Django form, with a single field to accept the a json string of the actual answers (the questions might change in future)
- a description of all the questions, descriptions, choices stored in a Django model, and sent to the page as json
- Vue rendering part of the page (the bit with the category selectors, question text, choices, descriptions)
Vue helped me deliver a pretty slick UI and didn't add any technical debt. (Not saying I didn't add any technical debt overall, just that the front-end part didn't contribute.)
- easy to answer questions whilst watching the video
- quick to navigate to a specific question
- video visible at all times
- short+long summary of each answer visible when answering a specific question
- long description of question visible
- can be operated using mouse or keyboard (on laptop/desktop) or touch (tablet)
The rest of the site was regular Django, with a bit of jQuery here and there. I settled on:
- a regular Django form, with a single field to accept the a json string of the actual answers (the questions might change in future)
- a description of all the questions, descriptions, choices stored in a Django model, and sent to the page as json
- Vue rendering part of the page (the bit with the category selectors, question text, choices, descriptions)
Vue helped me deliver a pretty slick UI and didn't add any technical debt. (Not saying I didn't add any technical debt overall, just that the front-end part didn't contribute.)