ushahidi / tenfour

API For TenFour
MIT License
7 stars 3 forks source link

Add Emergency contact #159 #6

Open CeciliaHinga opened 5 years ago

CeciliaHinga commented 5 years ago

U9: Emergency contact person

This screen provides a simple form for defining a person’s emergency contact person, accessed via the person’s U3 #156 or U4 #157 screens. image

CeciliaHinga commented 5 years ago

@jasonmule do we have the backend for this yet? If not I'll spec that too

CeciliaHinga commented 5 years ago

We don't have a backend for this at the moment.

CeciliaHinga commented 5 years ago

@rjmackay My initial thinking here was that this gets added as an org member's contact but it's flagged as an emergency contact

CeciliaHinga commented 5 years ago

For this task I think it'd be fine to just add an is_user flag to the users table. Potentially we should include an is_member flag to separate emergency contacts from people who are part of the org, but may still not be users)

Ideally we should also...

Ideally rename users to people for less confusion later Move the users email to contacts .. but thats not essential right now

CeciliaHinga commented 5 years ago

@rjmackay I don't follow. Are we adding the emergency contact as a user?

CeciliaHinga commented 5 years ago

@jasonmule I think so?

Emergency contact is a similar schema to other people. They'd probably be a user with is_user = false, and is_member = false is_member=false would means we wouldn't allow sending rollcalls to them, or adding them to groups etc.

CeciliaHinga commented 5 years ago

@caharding follow up question on this.. when/how do we ever send info to a users emergency contact?

CeciliaHinga commented 5 years ago

Diagram of people types http://www.nomnoml.com/#view/%5BPerson%7C%0Aperson_type%3A%20member%2Fuser%2Fexternal%0A%5D%0A%0A%5BMember%5D--%3E%5BPerson%5D%0A%5BUser%5D--%3E%5BMember%5D%0A%5BExternal%5D--%3E%5BPerson%5D%0A

CeciliaHinga commented 5 years ago

Good question. I don’t think that we ever answered this completely. I think these are the user stories in order of priority:

  1. When selecting what method to send Rollcall, make “Emergency Contact” an option.

  2. If user cannot be reached, provide the option to resend OR send to emergency contact.

  3. When user creates Rollcall, allow them to create a setting that default sends to emergency contact after X time period.

My recommendation is to send this back to the design stage. Thoughts Robbie?

CeciliaHinga commented 5 years ago

Agreed - this should go back to design. Until we can do something with the emergency contact there's no point adding it.

CeciliaHinga commented 5 years ago

My understanding of the "Emergency contact" object within a person was a little less complicated.

First, it was an object nested within a person -- not a relationship between (or creation of) two people in the organization.

Second, it's not leveraged as an alternate way of sending a RollCall to someone. I just don't see a way of asking Jane, for example, "Are you okay?" but having it sent to their emergency contact, John, and wrapping it an elegant "we're sending this to you, but it was meant for Jane." It all seems clumsy.

Instead, my understanding was that this object was there as a fallback for the author, for when they aren't getting a response from someone. They have a built-in path to hunting down that person personally: Go to that person's details, find their emergency contact, and call/text/email them manually, "Hey, I can't reach Jane. Is she okay?"

CeciliaHinga commented 5 years ago

I agree on the first point Brandon, this is not a connection to another user. But on the second point I could definitely see a path of

A) allowing an author to send a RollCall directly to an emergency contact "You're receiving this message because Brandon has saved you as his Emergency Contact within his team at Ushahidi. Charlie at Ushahidi asks 'have you seen him' please reply 'yes' or 'no'"

or

B) After a RollCall has been out and not replied to, offer an option to resend the message either to the original recipient or to their emergency contact. This was the original use case that was developed for Ping during Westgate: reaching next of kin.

I think the fallback to get in touch is just fine for now, but we will need to design for this use case for future releases esp. given Erik's insistence about this feature. But we should def move to Beta or later.

CeciliaHinga commented 5 years ago

As a relatively simple pass, using the existing design framework, here's a suggested solution:

Suppose Brandon, the RollCall author, is reviewing responses to his RollCall and notices that Charlie hasn't responded, yet:

image

Brandon can select the "Send again" button attached to Charlie's name, which triggers the display of a modal "Compose" screen for re-sending -- in this case, one tailored for a single recipient:

image

By using the "Send via" select control to indicate the RollCall should be sent to the "Recipient's emergency contact person," the preview of the RollCall prepends an "alert" fragment with the appropriate messaging to offer the emergency contact some more context.

Under the hood, selecting "Send again" would send the RollCall to each of the emergency contacts' available contact methods, since, A, we're not asking for any granular "preferred" method for emergency contacts, and B, we've inherently escalated the message to an "emergency."

In an alternate story, where Brandon wanted to "Send again" to all non-responsive recipients (using the trigger at the top of the RollCall), the same flow would result, only with a multi-recipient "Compose" screen, in which selecting "Recipients' emergency contact person" for "Send via" would be applied to all of the listed recipients.

image

Dig, @caharding?

CeciliaHinga commented 5 years ago

I like this @brandonrosage thanks for the thoughtful designs. Could we move "send again" button on the same line as the "Charlie Harding sent via email." I'd also like to make it smaller could we make it an icon or just make it "resend"?

CeciliaHinga commented 5 years ago

Also relates to #91

CeciliaHinga commented 5 years ago

I've revised the examples so that every instance of a "Send again" trigger within a "RollCall summary" is appended to a piece of metadata, rather than pulled out into a button:

image

I'd like to continue to use the "Send again" language for as long as it proves helpful to users. I find it reasonably short, while using more human (and less computer) language.

CeciliaHinga commented 5 years ago

Looks good!