Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

In app "What's new" training cards #6598

Closed
Tracked by #32
n-orlowski opened this issue Aug 18, 2020 · 27 comments
Closed
Tracked by #32

In app "What's new" training cards #6598

n-orlowski opened this issue Aug 18, 2020 · 27 comments
Assignees
Labels
Type: Feature Add something new UI/UX Site design and usability improvements.
Milestone

Comments

@n-orlowski
Copy link

n-orlowski commented Aug 18, 2020

Problem statement:

As we continue to make incremental updates to the CHT core and program managers continue to make updates to workflows we should easily communicate to end users what has changed in their app without needing an in-person training session.

User stories:

  • As a user I want to be notified when there are new features or workflows in my app so that I am always up to date on the actions I can take, and how
  • As a user I want to be notified when there are updates to my forms, tasks or targets so that I can ensure I am doing my work correctly and efficiently
  • As a user I want to revisit update announcements if I am unsure of a recent change to my app
  • As a program manager I want to facilitate remote training so I can ensure the success of CHT deployments

Design requirements (WIP):

  • Announcements should include core updates and configuration updates
  • Announcements should be configurable so that each user type receives relevant updates to their specific app and workflows
  • When a user logs in for the first time we should show the onboarding material (will we need to update the onboarding material per release?)
  • When a user logs in and there have been core or configuration updates we should show them the upgrade material
  • Announcements should include a brief overview with the option to tap into more details
  • Users should be able close the announcement
  • Announcements should be categorized by type (feature release, core update, config update, bug fixes, performance improvements, security updates etc.)
  • Announcements should be logged somewhere in the app
  • Announcements could include videos or helpful visuals to be more information-rich
  • MM should provide a default for each release

Open questions:

  • How may this work with other in-app training?
  • How may this work with the current update modal?
  • How may we apply this feature to SMS users?
@MaxDiz
Copy link
Contributor

MaxDiz commented Oct 18, 2020

Additional design work required so bumping to 3.13 based on roadmap meeting.

@n-orlowski n-orlowski self-assigned this Oct 22, 2020
@MaxDiz
Copy link
Contributor

MaxDiz commented Dec 1, 2020

Adding @michaelkohn brainstorm doc for reference

@latin-panda
Copy link
Contributor

latin-panda commented Feb 11, 2022

This topic has been reevaluated and tested as part of the Care Team's continuous discovery work.

The motivation

It can be difficult for community health workers to understand UI/UX updates without direct training, but in-person training is costly, time-intensive, and now comes with additional COVID risk. CHWs should be able to have UI/UX changes delivered to them where they can continue to use the app without disruption and use new features effectively without the need for an in-person training event.

The MVP to develop
See more details here

  • We (Medic) deal with getting that content into their app, we don’t need a configuration screen and/or cht-conf capability for the MVP, if it will slow us down
  • We should have the ability to specify which users see cards and which do not, but that can be set manually for the MVP, if making an interface will slow us down
  • It will be all or nothing…. any user that has access to see cards will see all cards, we do not need to separate content by any other attributes (for example, no need to differentiate content between supervisor, chw, nurse, etc….), if it will slow us down
  • We do not need to account for cards in different languages right now, if it will slow us down
  • If the app goes in the background or the user closes the app before reaching the end and tapping the “start (using app)” button, the next time they go into the app they should see cards again. We need to save where they left off (ie: it’s OK to always start at the beginning again).
  • We do not need to allow users to access cards again after they have seen them, if it will slow us down
  • We do need to track some usage metrics / telemetry

The UX to develop

This solution was tested with real users. Following are some screenshots of the prototype:

The high level development tasks

  • Design the technical solution - how are cards stored in the DB? is it going to be a stack of card groups (group == topic)?, etc.
  • Implement and test cover cards support in webapp - solution is mobile friendly.
  • Add e2e happy path

@michaelkohn michaelkohn changed the title In app "What's new" modal In app "What's new" training cards Feb 11, 2022
@michaelkohn michaelkohn added this to the 3.15.0 milestone Feb 17, 2022
@latin-panda latin-panda assigned latin-panda and unassigned n-orlowski Mar 3, 2022
@garethbowen
Copy link
Member

Not a blocker for 3.15.0

@garethbowen garethbowen removed this from the 3.15.0 milestone Mar 15, 2022
@latin-panda
Copy link
Contributor

I have released the 3.15.0-FR-training-cards-beta.1 and updated CT instance, trainings should be working fine.

@latin-panda
Copy link
Contributor

latin-panda commented Feb 16, 2023

@ngaruko
The cht-conf's command lines for converting, validating and uploading training cards are ready for AT (PR). It behaves just like regular app forms. So, in your config, inside the /forms folder, you should have a /training folder with all training forms: xls file, properties file, media files; just like app forms.

Commands:

  • convert-training-forms
  • upload-training-forms
  • validate-training-forms

Test recommendation:

  • Explore different scenarios for convert-training-forms, upload-training-forms and validate-training-forms
  • Explore different scenarios for watch-project that involve app forms, contact forms, collect forms, training forms, training forms with media, and app forms with media. The watch-project was refactored and affected all those areas.
  • Running cht --url=[instance] should convert, verify and upload all forms (app, collect, contacts, trainings)

@ngaruko
Copy link
Contributor

ngaruko commented Feb 22, 2023

Testing Command line option to convert and upload training forms : cht-conf/pull/529

@ngaruko
Copy link
Contributor

ngaruko commented Feb 23, 2023

  1. commands listed in supported actions

image

  1. Commands when there is no training dir

image

  1. commands when there are no training forms in the training dir

image

==> Should we warn the user here @latin-panda ?
  1. Converting form

image

  1. Validate form

image

  1. validate form with error

image

(same when running `upload`, as it first runs `validate`) ==> Can be overridden by `--skip-validate`

image

  1. form loaded to db

image

  1. Other actions work as expected.

@ngaruko ngaruko self-assigned this Feb 24, 2023
@ngaruko
Copy link
Contributor

ngaruko commented Feb 24, 2023

Only one comment on command showing a pass when there are no training forms in the training directory. But I guess it might be a pattern with all forms. (see 3 above).
Otherwise, LGTM @latin-panda

@latin-panda
Copy link
Contributor

Cool, thanks @ngaruko! Consider opening a ticket for # 3 with your details and observations; it may display a warning (like it does for # 2), especially for app forms and contact forms. Projects can still exist without trainings, but it might still be helpful.

@latin-panda
Copy link
Contributor

@ngaruko The main feature is ready for AT in this PR.

Test recommendation:

  • Explore. Training cards shouldn't affect other forms (tasks, contacts and reports) , see problem found during review, it was a race condition, we can't display 2 Enketo forms at the same time.
  • It shouldn't close when clicking outside the modal nor pressing the escape key (see problem found during review)
  • Explore the training cards configuration (duration, user roles, start date).
  • Should work on mobile.

@michaelkohn michaelkohn added the UI/UX Site design and usability improvements. label Mar 2, 2023
@ngaruko
Copy link
Contributor

ngaruko commented Mar 4, 2023

Testing cards on 4.x

  1. Training cards do not affect other forms (tasks, contacts and reports)
  2. It does not close when clicking outside the modal nor pressing the escape key
  3. Cards configuration (duration, user roles, start date).
  •    duration
    
  •    roles
    
  •  start date
    
  1. Cards work on mobile.
    image

@ngaruko
Copy link
Contributor

ngaruko commented Mar 4, 2023

@latin-panda if the user is in the middle of doing training and accidentally presses Cancel or navigates away (click another liink), should we display the warning modal? see recording

cc: @n-orlowski

@latin-panda
Copy link
Contributor

latin-panda commented Mar 6, 2023

Edit: To clarify, this is about showing a confirmation message (This training is not finished. You will lose your progress if you leave now. Are you sure you want to leave?) when navigating out of the current page, e.g., by clicking on the browser's "back" arrow.
Currently, we only show this message when clicking on the "Cancel" button of the training card modal.

@ngaruko, we didn't think about that, and it'd been nice to have caught it earlier. IMO it shouldn't block release, and it can be an enhancement as part of another ticket.
@michaelkohn and @n-orlowski, do you want to develop this now or later? It might take a couple of days + review + AT.

@latin-panda
Copy link
Contributor

latin-panda commented Mar 6, 2023

@ngaruko, I just remembered these. Can you please include them in your test plan?

  • Error message displayed when accessing a form, and the user doesn't have a contact associated. And any other thing that can trigger an error.
  • Feed documents are created when there's an error/crash
  • User can scroll when cards have long content
  • Check if the translation works, ie App builder adds the translation to their config, like Swahili.

@michaelkohn
Copy link
Member

do you want to develop this now or later?

If you are in modal view on the 5th out of 6 pages of training (for example) and you hit the back button, does it go to the 4th page of training or does it immediately close the modal? My only concern is that we do see people using the back button a lot. If it goes to the previous pages, I would be fine, but if it closes the training completely, I think we should consider addressing it now.

Currently, we only show this message when clicking on the "Cancel" button of the training card modal.

In mobile, there is no Cancel button on the form, it's just the X (top right in mobile / modal, top left in mobile / non-modal). I assume it shows the confirmation message for Cancel button in desktop and X in mobile, correct?

or navigates away (click another link)

You can't click on other links if you are in modal view, and users should only ever see training in modal view. The one exception is editing a completed training, which doesn't go into modal view, but that is a special/rare scenario and I don't think we need to be concerned with it.

@latin-panda
Copy link
Contributor

Referring to this topic and based on our conversation during the team meeting.
I've created a new ticket to add the confirmation message when the user navigates using the browser's back button.

Please feel free to add more details. The ticket has been assigned to milestone 4.3.0.

The AT of the current work can continue.

cc: @michaelkohn @ngaruko @n-orlowski

@ngaruko
Copy link
Contributor

ngaruko commented Mar 8, 2023

More testing ..

  1. Warning when clicking x or cancel halfway

image

  1. Error message displayed when accessing a form, and the user doesn't have a contact associated.

image

  1. Feed documents are created when there's an error/crash

image

  1. User can scroll when cards have long content
scroll.mov
  1. Translations. (fr loaded)

image

image

Looks good to go @latin-panda .
As @michaelkohn mentioned, you cannot click anywhere on the phone in modal view - and the few occasions when this is possible in the browser (closing tab, clicking back button) are definitely not a blocker.

@latin-panda
Copy link
Contributor

I've created an issue to add a sample of training cards in covid-19 config in cht-core.

latin-panda added a commit that referenced this issue Mar 9, 2023
feat(#6598): Add training cards feature

- Extends Enketo service to work with modals and save completed trainings.
- Adds a new modal component, "training cards", to load Enketo training forms.
- Extends XML Forms service to subscribe to training forms and react when new trainings are added.
latin-panda added a commit to medic/cht-docs that referenced this issue Mar 9, 2023
feat(medic/cht-core#6598): Add training cards feature documentation and technical guide

---------

Co-authored-by: Michael Kohn <[email protected]>
latin-panda added a commit to medic/cht-conf that referenced this issue Mar 9, 2023
…g forms (#529)

Adds `convert-training-forms`, `upload-training-forms` and `validate-training-forms` commands for training forms
@latin-panda
Copy link
Contributor

Feature merged and completed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Type: Feature Add something new UI/UX Site design and usability improvements.
Projects
Status: Done
Development

No branches or pull requests

6 participants