ushahidi / tenfour

API For TenFour
MIT License
7 stars 3 forks source link

Crises News Alerts #109

Open CeciliaHinga opened 5 years ago

CeciliaHinga commented 5 years ago

From tenfour-archive created by caharding: ushahidi/tenfour-archive#1104

Spec: We should look into incorporating data from these providers:

Proof of Concept Spec

The requirements is for a the most basic proof of concept service. These are general pointers. Actual implementation is at discretion of developer.

CeciliaHinga commented 5 years ago

@justinscherer so far, only what is listed above.

We are in the process of scoping this.

CeciliaHinga commented 5 years ago

What sources are we looking at for the alerts? Are there specific feeds I can have a look at to suss out formatting, structure, etc. ?

CeciliaHinga commented 5 years ago

@rowasc I think the first task in this is to implement a job to start pulling in the emergency alerts into the tenfour database

CeciliaHinga commented 5 years ago

@mackers are all of these enterprise providers that we need to contact to get access to? I can't find any public APIs for any of the listed sources

CeciliaHinga commented 5 years ago

I think the first task in this is to implement a job to start pulling in the emergency alerts into the tenfour database

@mackers totally. Looking into this . Fetching has probably the following types of components

CeciliaHinga commented 5 years ago

@rowasc Yes, I will request access. Is it possible to start scoping this based on their documentation?

CeciliaHinga commented 5 years ago

@mackers mmm so far it doesn't look like they have any public info, it says that you have to "request it" when you go see their "api docs" . All I could gather is that WorldAware has a REST API and a developer center. For NC4, I can't even find a reference to a protocol or standard or... anything , except for a contact form : / . have you seen any that I'm missing maybe?

CeciliaHinga commented 5 years ago

@rowasc Still waiting on access to WorldAware API.

In the meantime, can you investigate https://github.com/ushahidi/crisisnet/ to see if there's any previous knowledge that we can use.

CeciliaHinga commented 5 years ago

sure thing. also did you check in with David to see if he had any previous knowledge of this or should I ? Thanks

CeciliaHinga commented 5 years ago

https://github.com/ushahidi/suckapy/tree/master/src/suckas @mackers ohhhhh look! So, this is a repo that crisis net uses to get the data from many different sources, so kind of like platform twitter thing that gets data into platform from twitter, but in a generic way that sucks data into crisis net or other platforms as needed/configured. This is kind of great actually, looking into it in Moree detail now!

CeciliaHinga commented 5 years ago

haha yes that name is 💣 💥 Cool I'll start asking people to steal their institutional knowledge :) Thanks

CeciliaHinga commented 5 years ago

LOL at suckas

No, I haven't checked with David yet. Feel free to follow up!

CeciliaHinga commented 5 years ago

https://wiki.ushahidi.com/wiki.ushahidi.com/display/WIKI/CrisisNET%2bArchitecture.html Linking here so I remember about this and don't lose it

CeciliaHinga commented 5 years ago

So, I actually can't say much about CrisisNet from a tech standpoint that is better than this really good write up here https://wiki.ushahidi.com/wiki.ushahidi.com/display/WIKI/CrisisNET%2bArchitecture.html

It looks really neat, the code isn't bad, the architecture is good enough. They had a lot of sources, but mostly seems like all Sucka elements are for data crowdsourcing from FB/twitter/ushahidi platform/etc, not private networks like the ones considered in this ticket. We might be able to use some of their sources and transformers if we migrate them to be compliant with node 11 (it's really old tech, around node v0.10) .. I would 100% recommend everyone to read that document before our meeting next week.

From conversations with Shadrock, something that came up as a concern for me is that I don't feel I know very well how this will be used. I know the barebones tech bits , data comes in, we do things to it, we send it somewhere, something happens somewhere .... but I don't know what we are actually going to do with it, and it'd be really good to have a specific use case and specific persona of who we are helping with this so we know we are building the right now. Based on this use cases:

Do we have a user we can point to and say "it'll be good for this person" so that we know who we have in mind when we build this? This might be particularly important from a design and product perspective, unless it's a grant/client requirement I suppose (but it'd bee good to have that info super clear in our heads in any case) In addition to this, do we know what areas we are targeting? I suspect really high quality emergency datasources won't be great worldwide, that's something I'd like to find out more about once we have access or get in touch with the companies you listed above. You have amber alerts as a system in the states but not in Uruguay, for instance, so it might require a lot of local information and local knowledge of how things work?

CeciliaHinga commented 5 years ago

HA, wait I just thought of something else. HumData.org might also be a good source of information. Checking that today too. I'll have a draft of something with all the stuff I find out by EOD so I stop spamming this :D

CeciliaHinga commented 5 years ago

Adding more questions based on the use cases to drive our conversation:

*the good part of being a tenfour noob is that I get to ask potentially silly questions

CeciliaHinga commented 5 years ago

updated my comment above with some thoughts ☝️

CeciliaHinga commented 5 years ago

Hey @rowasc , so here are my thoughts on use cases for Emergency Alert integrations for Dispatcher and TenFour. I sync'd with @mackers on this as well for TenFour and here's what we came up with:

DISPATCHER (high-level user story) As a community member who uses Dispatcher, if there is an emergency in my geographic location, my app will go into an "Emergency Mode" where more types of Help Requests/Offers are available, including first aid and rescue (with partnership from local government services)

TENFOUR use cases. (Note that most of this will all be downstream of the Alert Integration Service epic, so these will be tackled later on as part of a subsequent epic, but here's a vision of how this would go on the user side)

Adding more questions based on the use cases to drive our conversation:

As an admin I want alerts about emergencies in my area: this one is mostly clear... but who decides what an area is? are areas the same "algorithm" for everyone? Does the user decide how an area is defined? Do we have the option of letting a user define what kind of emergency matters to them? why?

This will come from the Feeds. The Feeds provide data saying "there is an emergency inside this geofence".

As an admin I want to be author a check in from a crises alert:: should we have options to allow automatic checkins to be created based on a crisis alert? what information do we provide in the checkin? Do we want to have the ability to add a link to information about the crisis, for instance?

App should support both an automatic mode and a manual mode.

Compose a check in based off of a list of suggested crises happening my area:: I don't really understand the use case(*) . Is this user selection 3 crisis situations and sending them as the same checkin to all the same people, or is the user sending 3 checkins to all the same people? If it's thee later, why are they sending 3 checkins instead of one? In both options, do we provide facilities to know "this 10 folks are in this area, so we suggest we send it to them but not to these 20 people in another area" ?

Crisis-alert check-ins should be specific to a crisis. At this time I don't think we want to support "grouping" of alerts into one check-in. We can revisit this later but it's better to go with the simpler implementation to start for MVP.

CeciliaHinga commented 5 years ago

thanks @mackers

CeciliaHinga commented 5 years ago

This will come from the Feeds. The Feeds provide data saying "there is an emergency inside this geofence".

ah OK, is this going to be based on my current location then? if yes, what does it do when I don't have location services on?

CeciliaHinga commented 5 years ago

@rowasc Updated with spec for proof of concept.

CeciliaHinga commented 5 years ago

@rowasc The next step in this is to prototype integration with the clients.

For TenFour

  1. create a prototype branch
  2. create a new command line job
  3. the job will iterate through all users and:
  4. check if they are in a crisis zone using our FaaS

This POC should use the live lambda function on AWS.

CeciliaHinga commented 5 years ago

ok. I'll work on this.

CeciliaHinga commented 5 years ago

Making it up for the moment while I wait for an answer, but where do I get the user's geolocation?

CeciliaHinga commented 5 years ago

Sorry I'm coming into this convo late but it might be of interest that the UK govt website allows you to sign up for vital alerts re. security risks for individual countries via email. https://www.gov.uk/help/update-email-notifications

I'm digging into the user stories/scenarios:

As an admin I want alerts about emergencies in my area

As an admin I want to be author a check in from a crises alert

Compose a check in based off of a list of suggested crises happening my area

re. geofencing I'm less pro this automated approach to location because well, let's say there's a earthquake in Bristol. I'm in London. I want to see if everyone in Bristol is okay but also, I want to check if anyone who wasn't planning on being in Bristol is travelling there or already there. Or maybe I want to include Bath (Bristol neighbour city) in my check-ins too just in case. Without TenFour and/or Dispatcher sending location data consistently (which is technically doable but like, iffy ethically) I would much rather this be a admin user choice. e.g. Here's the info, here's our suggestion/template for a check-in and list of things to do, you now choose to widen, narrow, change or amend that.

I'm pro inform users to the best of our ability, recommend a course of action but ultimately give the user the choice to change that recommendation.

I'll get into the actual UI and UX of this next week but I'm pumped to think about this and have visuals for Worldaware etc.

CeciliaHinga commented 5 years ago

@rowasc another (sort of icky) option for geolocation is like...when a crises hits in the area that the admin is based (we'd need to gather a permanent location of the admin) there could be an auto tenfour check-in that asks for each memeber on TenFour's location data only.

Then maybe a temporary group for that crises location could be made and you can send a ten four check in to that temp group.

But that sounds pretty complex

CeciliaHinga commented 5 years ago

Yea, I think that's ideal, @Erioldoesdesign . Inform admins, give options for areas to get notifications of, etc.

CeciliaHinga commented 5 years ago

I think I'd rather send a more general checkin "$person is supposed to be in $city so we will check on them" if it comes to this. I would not want my employer to have my exact location at any time that they feel like it, for instance, and this would open up the door for that. I think the approach I like the most is to keep it more general and manual "I know Eriol is in Nairobi so I will add them to the Nairobi checkins group" rather than "Eriol is in this exact location in Nairobi". I know it's potentially less useful but it's also less icky.

CeciliaHinga commented 5 years ago

also I'm not saying (in my last comment) that we would automatically send it, but that we would suggest the admin sends it . Sorry if that wasn't clear

CeciliaHinga commented 5 years ago

@rowasc @Erioldoesdesign , yes user geolocation is another piece of work. We don't do it very well in TenFour yet.

We have a choice:

  1. we can geocode the user's address. pros: accurate for home/work address, cons: may not be defined for every user, may not geocode
  2. we can ask for the user's location in the app or in the browser. pros: very accurate. cons: user may not grant permission, or may never use the app or the browser
  3. we can use the user's ip address. pros: always available (if user has logged in). cons: imprecise (country level)
  4. a combination of above

We then have another choice:

  1. only store one geolocation per user
  2. store a geolocation history per user

I'd love to hear your input into the ethics of this.

CeciliaHinga commented 5 years ago

Here's what I'm thinking right now, regarding ethics, and regarding feasibility and usability of this feature.


I think that emergency checkins suggestions for admins shouldn't depend on a specific user's lat/lon but in a general area.

"Romina lives in Montevideo" is ok , it's something I can enter myself or my employer can enter, and it's enough to send me a checkin when something happens in Montevideo, which makes it very relevant information since it's impossible to know if I left my phone at home for instance and the location I was actually at never got registered. While this can lead to false positives, "Oh, wow Romina didn't answer is she ok? ", it would just trigger a call to their the emergency contact for instance who could confirm if they know they are ok.

Bonus: City-based or State based (or whatever delimitation you want) would also be a pretty decent way to handle it for groups too .


If instead we have lat/lon we may have a false sense of safety. "Romina is not in the place that was attacked so we don't need a checkin" , but maybe I was, and maybe I didn't take my phone (or I disabled location services because I don't want my employer to know about my private life ), and you didn't checkin . A middle point for this would be that If we are using a specific point lat/lon anyway, we might need to take into consideration when was the last time we knew of their location (in our backend), and if it was more than X minutes ago we would need to fallback to a general location instead of their last known lat/lon to be extra safe. But then, how do we know what's a reasonable time frame? Is 10 minutes an irrelevant amount of time? 5? 30? You'd need to know if I'm traveling on foot, on a cab, in a bus, in my own car, how congested the city is, how terrible the roads are , etc.


Ethics with geolocation on: I don't think it's good to ask people to disclose their location all the time to an app that their employers are making them install, even if their employers don't get to see it at all unless there's an emergency. An exception would be If it's really information that I need to provide during employment hours , for instance if I am working in emergency services and my employer needs to know exactly where I am for some reason, and there's a mutual expectation that my device is with me all the time, and ideally if my device is actually provided by my employer.

Concerns TLDR: My personal device location is not my employer's business in my personal (off work) hours. While people could disable location services, this could set an expectation that they have to enable them, it could create a situation of being pressured into "location being on" all the time because HR said so.

CeciliaHinga commented 5 years ago

Thanks, @Erioldoesdesign , that's a very good point on where to being with this. Related: I think we might have the backend flow wrong. I think instead of us asking for this information from lambda with TenFour, we should be getting notified from AWS Lambda when a new entry is added in a web hook of some sort. Since lambda integrations can have the concept of a trigger, this could be done in a fairly cheap way (setup a trigger on new entry for the lambda-connected db and from the triggered lambda function send a POST request to a webhook that receives this information and does something with it) . It's fairly implementation agnostic too, because any service can receive something in a web hook and then decide for itself what it wants to do with that information. Our current lambda function can be seen as an implementation specific solution that is not necessarily what we will end up doing either (I want to know if X is in the area of an incident) .

I think we may benefit from speccing this out more and thinking about it as a group instead of separately as designers and developers (so, like we're doing now , but maybe a sync discussion would be good sometime this week too)

CeciliaHinga commented 5 years ago

I super appreciate all these and having worked previously in a company that had an app that always tracked location of the user I can attest to how icky this can be and how it can very easily be misused.

It can also psychologically alter users behaviours so that they are more likely to break/hack/game the system when it's 'intrusive'

Also, location tracking drains batteries - Probably not in the way David is describing but idk we always had users complaining about this.

I think while this conversation is very important it's like...3-5 steps away from the 1st part of the alerts work.

I think the first part of the alerts work should be:

1 - Admin setting to be able to set-up an alert feed for a particular country/region 2 - Admin section in tenfour to see your alert feeds 3 - You see an alert feed/s that is relevant to a country of operation. A known entity (e.g. does not cover a 'roaming' user in TenFours people list) 4 - You can use that alert combined with an editable 'templated check-in' approach to author a check-in to send to either all people, a group or multiple groups (as per normal TenFour functionality) This should not require any copy-paste or laborious user actions.

We should, after seeing the kinds of alerts from world aware and/or the UK govt Digital services intelligently be able to template for the most regular kinds of crisis alerts. e.g. Alert title & location becomes part of check-in question.

Important UX things here will be: Ease of setting up and managing multiple alerts, Ease of viewing many alerts simultaneously, moving from alert view mode to check-in construct mode with little friction.

I think the ideas around capturing location, tree check-in logic and user hacks are things to build into a usertesting script/plan to find the best approach.

CeciliaHinga commented 5 years ago

Me and Anna just received these in Vilnius and had a conversation with some locals about what they are and what they mean. Very cool

IMG_20190604_110927 Screenshot_20190604-110845

CeciliaHinga commented 5 years ago

leaving my super initial notes from reviewing this, I hope that's ok. @Erioldoesdesign

  1. I like that when the admin is selecting the type of alerts they want to receive, we already tell them "this things are already happening on that location" if we have the information (or at least I interpret it that way)
  2. I really like the fact that we show the alert's source (ie "via email" ), this might be super useful in deciding what to do about it and that users can configure different sources of alerts right there 🙌
  3. this is my favorite design ever 💟 😄 https://xd.adobe.com/view/7859b05c-1bc9-41fa-5254-08870750a1c4-0e68/screen/3bdc9a11-41f7-4f6a-a0e7-cb0b9564ae56/Add-alert-4

4. Email integration.

Please note: I made some assumptions while looking at this, specifically that users would give us their personal/job email if asked, which would be problematic IMO. Ignore everything I'm saying if that's not the case.. :)

For email integration, I don't feel we should do this with direct access to their accounts because we may be putting people in the same situation as we do in platform, where we ask for email and password from our web app to be able to integrate with it. I always feel like I'm training people into falling for a phishing attack when I look at that screen =(

3 alternate ideas here, although none of them are perfect/great to be honest:


sorry for the long blob of text , I hope this is useful in some way to get the email conversation going :/

CeciliaHinga commented 5 years ago

how did you get them? SMS?

CeciliaHinga commented 5 years ago

ah neat. I just found this http://www.massalert.eu/About+Us962

Emergency alert system MASS ALERT matches European Union directives and has been successfully implemented in Lithuania.

it seems like it's similar to the amber alert system in the US ? Edit: It looks like it's a standard that has to be implemented at the carrier level... I think? googling for "Wireless Emergency Alerts (WEA)" Thanks for sharing 🙌

CeciliaHinga commented 5 years ago

@rowasc it was a system alert, I couldn't take a screenshot or find it again so I assume it was sent as part of the system?

CeciliaHinga commented 5 years ago

Please take a look at the prototypes here before Tuesday's meeting: https://xd.adobe.com/view/d6acbb4d-0dce-44da-7093-bac08af8152d-a09d/

https://xd.adobe.com/spec/c5e82b6d-6bc1-42a0-6973-497102ffd660-b3d9/

CeciliaHinga commented 5 years ago

The saga of Eriol getting onboarded to new alerts systems continues!

Because I'm going to Kazakhstan soon for a PTX workshop they signed me up with their system Safe Harbors business travel and here's the flow for setting up my profile:

Screenshot_20190604-202806 Screenshot_20190604-202904 Screenshot_20190604-202914 Screenshot_20190604-202922 Screenshot_20190604-202931 Screenshot_20190604-215113 Screenshot_20190604-215228

CeciliaHinga commented 5 years ago

I think I'm confused about the feed "source". What happens if they check more than one type? do we take them through the setup flow for each type one after the other?

I thought each alert feed would be of a specific source type, not many types per feed , but I realized this are checkboxes not radio buttons so I'm not sure anymore 🤔

CeciliaHinga commented 5 years ago

@rowasc oooo yeah okay that's a design error. Those should be radio buttons not checkboxes.

But users should be able to set up a second alert for the same country/city via a different alert source.

Apols I'll edit the designs!

CeciliaHinga commented 5 years ago

OK!

I updated the prototypes!

https://xd.adobe.com/view/d6acbb4d-0dce-44da-7093-bac08af8152d-a09d/

https://xd.adobe.com/spec/c5e82b6d-6bc1-42a0-6973-497102ffd660-b3d9/

There's cleaned up correct UI and also a proposal for automatic alerts that I think works well :)

We're still gonna need those conversations with Worldaware, UK gov and Safehabours to figure out how to pull in the alerts but this is a good start to the concept and we could demo this UI to these folks.

@mackers @rowasc @dalezak Thoughts?

CeciliaHinga commented 5 years ago

Aaaaahhh, alright, thanks @Erioldoesdesign 💯

But users should be able to set up a second alert for the same country/city via a different alert source.

Cool, makes total sense. I'll check the edited design when it's done :) thank you

CeciliaHinga commented 5 years ago

Myself and @rowasc sync'd last week to talk through the flow. We agreed the responsibility shouldn't be on users to configure the alert feed's nature (email pop/imap sms stuff etc)

I've amended the prototypes to reflect this and also added a few new flows for things like, no alerts found for a country/state/region etc.

https://xd.adobe.com/view/d6acbb4d-0dce-44da-7093-bac08af8152d-a09d/

https://xd.adobe.com/spec/c5e82b6d-6bc1-42a0-6973-497102ffd660-b3d9/

CeciliaHinga commented 5 years ago

We also have a meeting set up on Friday the 28th of June with the UK govt. digital services to talk through our proposal and see if their pov as a 'feed source' aligns with ours.

CeciliaHinga commented 5 years ago

Message via Steve from Gov.uk digital services:

"Lovely speaking with you just now! I'll dig out answers to some of those questions but here's a link to the Open Government licence that describes how you can repurpose the travel alert emails: http://www.nationalarchives.gov.uk/doc/open-government-licence/version/3/

You have to add an attribution (which is good for users too, as they place trust in government) and Alexa use 'Source: GOV.UK' – though it's up to you what you choose. Do send back designs once you've created them, everyone would love to see what you're up to in our Show & Tells."

Added in 'Source: GOV.UK' into the prototypes where the GOV.UK alert is pulled in. Assuming there will be similar for all services.

https://xd.adobe.com/spec/c5e82b6d-6bc1-42a0-6973-497102ffd660-b3d9/ https://xd.adobe.com/view/d6acbb4d-0dce-44da-7093-bac08af8152d-a09d/

Screenshot:Screenshot 2019-07-02 at 12.48.46.png

CeciliaHinga commented 5 years ago

@rowasc Tunisa's had some terrorist attacks/bombings recently so there are a lot of emails going out from that.

List of countries to subscribe to: https://www.gov.uk/foreign-travel-advice

Tunisa: https://www.gov.uk/foreign-travel-advice/tunisia

CeciliaHinga commented 5 years ago

Tunisa continues to be a good source of comms: https://www.gov.uk/foreign-travel-advice/tunisia?utm_source=fdc25e68-1a59-43ef-b07c-2415156c6875&utm_medium=email&utm_campaign=govuk-notifications&utm_content=immediate

CeciliaHinga commented 5 years ago

Tunisa's had some terrorist attacks/bombings recently so there are a lot of emails going out from that. oh, that's awful :( My next steps:

  • need to finish UI, it's going really slow , this last couple weeks have been messy with a million little things coming up elsewhere :(
  • will update html with the new "links to source" you just posted
  • I'm going to look at subscriptions this week after I'm done with UI work (had some base architecture setup but need to actually code the thing) and will use this sources as examples for integrations.