food-oasis icon indicating copy to clipboard operation
food-oasis copied to clipboard

Feature: Advanced filters for search

Open fancyham opened this issue 3 years ago • 31 comments

Overview

We need to have advance search on our site to make it easier for the user to find micro-targeted listings

Details

Currently, the user can only search by location, pantry, and meal, but we have lots of good info locked in our database that would be really helpful to answer common questions like:

  • Show me places open on Tuesday? (my day off)
  • Do they speak Spanish?
  • Is there bible study?
  • Age restrictions?
  • Is it a shelter?
  • LGBTQ-friendly?
  • Halal, Kosher, Veg, etc.?
  • Do I need to wear a face mask?
  • Delivery?
  • Open to all?
  • Open Now

Action Items

  • [x] Have a feasibility conversation with Dev
    • [x] Evaluate what other filters can the database easily support?
    • [x] how much lift?
  • [x] Have a conversation with Design
    • [x] time would be required to design
  • [ ] Make an issue for user research to answer the following questions
    • [ ] What types of filters do our users want? (for example, open on certain days of the week, religious or not, vegetarian, shelter or not, etc.)
  • [x] Make an issue for design with the following action items
    • [x] Design an intuitive UI for the advanced filters

A quick sketch of how this might look:

2021-04-15 Advanced Filter Sketch - Bryan Wu

Figma mockup and prototype for simple filter

fancyham avatar Apr 13 '21 06:04 fancyham

2021-04-26 Advanced filters - text search

A version of the filter that has text searches, because things like language spoken, etc. are currently in free-form text note fields.

The idea is that text entered here searches all text fields. Things that are in the database as structured data (like days and hours) should have their own independent filter buttons so as to not rely on text search.

Use analytics to track search terms and filters.

fancyham avatar Apr 26 '21 22:04 fancyham

Another UI direction possibility, inspired by Google Maps

2021-12-02 FOLA sketches - filters

fancyham avatar Dec 02 '21 21:12 fancyham

This would be an additional filter: Filter by last updated date

  • #1247

fancyham avatar Jun 24 '22 22:06 fancyham

I posted up the Food Oasis link in a couple of the Reddit forums (e.g. "Foodstamps") in which people who are in dire need of food assistance come to share/receive info on resources. In such a post, I also asked people to share their thoughts right there in the forum with me about the web tool and so far have received this useful one, from a "SNAP Policy expert":

“One piece of feedback is that it’s a little subtle how to know when these places are open, especially since most have pretty limited hours. You might want to make knowing what’s near you and open now easier.”

He continued to clarify in a subsequent comment:

Yep, I understand it's there! What I'm getting at is functionality vs. "what's easiest, what's harder."

Right now by default the core dimension is location, but I'd be curious if that's actually what a person who comes to it is primarily focused on given that when the food is available is pretty dang important.

Right now that info requires 2 interactions (selecting an entity, then knowing that it's under "Details" which in my experience is not a thing people jump to click on.)

If you haven't done this already - rather than the usability test you initially posted that was about initial screen - I'd consider running some Google Ads targeted at Los Angeles for folks searching keywords like "food pantry" or "free food" or "food bank." That could direct them to a quick way for them to give you their phone number and you could reach out and actually set up a call to listen to them narrate their experience using your tool.

Also worth noting, Google has explicitly built some of this functionality into Search now, so you also might think about whether improving the "Place" data that Google relies on -- and which providers can take ownership of via Google tools -- may be even higher-impact for folks: https://findfoodsupport.withgoogle.com/#food-banks-and-pantries

GigiUxR avatar Jun 26 '22 02:06 GigiUxR

  • This is related to this unresolved but closed issue: #62

Anyone know why #62 was closed?

fancyham avatar Aug 09 '22 18:08 fancyham

Prioritizing the following user stories: Which are we tracking this? (if not how easy would it be?)

MVP

  1. Open to all? (this could be designed so that we could add to the criteria in the future) This could include: -not tagged as ID required? -not tagged as address required? -not tagged as age restrictions? -not tagged as appointment required -not tagged as required bible study? -not tagged as for shelter residents only?
  2. Show me places open on specific day (my day off) (ideally/optionally hours too)
  • [ ] get difficulty on days vs hours
  1. Open Now?

NEXT 4. Do they speak Spanish?

  • [ ] which languages are we tracking
  1. Halal, Kosher, Veg, etc.?
  2. LGBTQ-friendly?
  3. Do I need to wear a face mask?
  4. Is it near public transportation?
  5. open soon?
  6. Delivery? (things like meals on wheels likely wouldn't show up on our map, would we want future support?)

itserindean avatar Aug 09 '22 19:08 itserindean

For dev: which of these are we tracking in the database?

  • [ ] is it open to everyone?
  • [ ] is ID required?
  • [ ] is home address required?
  • [ ] are there age restrictions?
  • [ ] is an appointment required
  • [ ] is there a required bible study?
  • [ ] is it for shelter residents only?
  • [ ] days a place is open
  • [ ] hours a place is open
  • [ ] Open Now?
  • [ ] Do they speak Spanish?
  • which languages are we tracking?
  • [ ] Halal food available?
  • [ ] Kosher available?
  • [ ] Vegetarian available?
  • [ ] LGBTQ-friendly?
  • [ ] Do I need to wear a face mask?
  • [ ] Is it near public transportation?
  • [ ] open soon?
  • [ ] do they offer delivery?

itserindean avatar Aug 09 '22 19:08 itserindean

Anyone know why #62 was closed?

Issue #62 was apparently implemented on the legacy version of the application in 2017, two years before the rewrite.

entrotech avatar Aug 09 '22 21:08 entrotech

For dev: which of these are we tracking in the database?

  • [ ] is it open to everyone? E
  • [ ] is ID required? E
  • [ ] is home address required? E
  • [ ] are there age restrictions? E
  • [ ] is an appointment required
  • [ ] is there a required bible study? E
  • [ ] is it for shelter residents only? We do not have shelter listings
  • [ ] days a place is open Yes
  • [ ] hours a place is open Yes
  • [ ] Open Now? Yes
  • [ ] Do they speak Spanish? L
  • which languages are we tracking? L
  • [ ] Halal food available? Tag?
  • [ ] Kosher available? Tag?
  • [ ] Vegetarian available? Basically all pantries will have some vegan/vegetarian food.
  • [ ] LGBTQ-friendly? Tag?
  • [ ] Do I need to wear a face mask? If you rephrase this to ask if there are any COVID-related requirements, we could query for listings where there is something recorded in the COVID requirements field.
  • [ ] Is it near public transportation? Given a map of public transportation locations and distance specifications, this is possible, but probably a moderately significant project.
  • [ ] open soon? Same as "hours a place is open", Yes
  • [ ] do they offer delivery? We do not have a field for this, but could add one.

Keep in mind that there is a huge cost in trying to collect extremely detailed information about pantry and meal program offerings and other details. To put this in context, almost all other pantry and meal program listing sites only include name, address, web site, phone number and sometimes hours and a small text description, and will simply say "call ahead to verify this information".

E: Many of these dimensions are only captured in the field called "eligibility requirements", which is represented in the database by a single free-form text field. We did this because eligibility requirements cover a very wide range of "dimensions", and in many cases, different forms of documentation. For example, in cases where there is a residency requirement, the area might be specified by city(ies) or other geographic boundaries, and might require some sort of document showing the customer's address. If there is a maximum income requirement, there will be income thresholds and acceptable forms of income verification. Eligibility sometimes also requires a registration process, limits on the number of times a customer can visit per week or month, etc. The possibilities are basically endless, and trying to collect this in a structured form that would be queryable would require many dozens of additional fields for volunteers to understand and enter, and we would never be abel to answer every possible query about eligibility.

L: A somewhat easier "lift" is languages. right now, we just have a free-form test entry field where users can type in languages, and the volunteers tend to type in the non-English languages spoken, but do not explicitly type in English. We could just search this field by string-matching for specific languages, which would kind of work where the languages entered by volunteers are spelled correctly. A more reliable approach would be to change the languages entry to multi-select list box which could be queried correctly. It would be pretty easy to allow as many languages as wee deem appropriate - it could easily be 50 or so.

For types of food, Jenny Mikesell insisted that the six types we currently have are some sort of "standard" categorization of types, though I don't know the source of that information. I've worked at a pantry called "Nourish LA", and the specific foods available were always "hit and miss", depending on what surpluses were in the supply chain that week. They basically distributed whatever they could get their hands on, so trying to publish each location's inventory is probably not practical. Usually vegetarians and vegans were happy with what was on offer, and would just decline the non-vegetarian offerings. I think finding kosher or halal food would be difficult, unless a pantry specifically makes a real effort to service that population. (See "Tags" below.)

I don't know how we would collect the information about which organizations are LGBTQ-friendly. (Maybe a "Tag"?)

Tags: We do have the ability to create a list of custom "Tags" for each site (Los Angeles, Hawaii, etc.), and then organizations can be associated with the appropriate tags. This might be helpful for querying very specific binary bits of data, such as whether an organization is LGBTQ-friendly or Kosher, or whatever we feel is a critical thing to search by. This would require training volunteers to ask specific questions for the tags we want to use, and would take a while to populate, since we would have to wait for the verification process to cycle through all the listings before the information was collected.

entrotech avatar Aug 09 '22 22:08 entrotech

Thanks for the detailed response! Glad to see hours and days is possible. That one seems to be in high demand and a hefty design problem that we can get started on right away.

We’ll have to evaluate how important the rest are for the future — effort vs effect, perhaps with some user research.

Some of my thoughts for documentation’s sake:

Re: eligibility Age, veteran, residency, mailing address, ID requirements, attributes like kosher, language — should investigate/research how much better it’d be vs what we have before putting huge effort into this type of tagging.

Re: ‘delivery?' This one came up during my talk with @itserindean when we were talking about transportation, especially in LA where transit is harder to get. Realized that if we added food/meal delivery like Meals on Wheels someday, we’d have to specify a service area/region where they operate!

fancyham avatar Aug 10 '22 01:08 fancyham

Thanks for all the insight @entrotech!

re: hours/days I agree it's great that's currently possible!

re: delivery @fancyham I think there may have been a slight miscommunication as I was trying to convey that LA is well-covered by public transit (not always particularly convenient routes point to point but you're never very far from a bus stop.) My initial thought is that delivery/meals on wheels integration is beyond the scope of our current charter but I agree I could see a time in the future where it integrates well.

re: general I see the list of filters we assembled not as "here's everything we think is important" but as "here are things that might be useful" so we can find out what we already track.

re: eligibility I realize now that the intention behind eligibility may have been lost in my formatting--it was not to suggest that all of those elements were required to be tracked or included to determine if something was open to all (and certainly not as part of an MVP.) It was a list of things that could affect eligibility so we could find out which we track (And I now understand that we only have the one text field.) I added minor clarification in my first comment above. I agree we should investigate more before investing engineering hours here. I think there could be a less granular stop-gap solution that would have high impact --after confirming that the database doesn't have instances where the text of eligibility requirements say something like "none" we could then interpreting a blank field to mean no eligibility requirements and that might get the job done.
The user story here is what I experienced when helping an elderly woman in Santa Monica search for food and listing after listing excluded her and i was longing for a "no exclusions" filter so the map would only include places she could actually go.

itserindean avatar Aug 10 '22 05:08 itserindean

@JohnHaoHuang As per the chat in the fola Slack channel, assigning this to you and moved it into In Progress.

staceyrebekahscott avatar Aug 12 '22 20:08 staceyrebekahscott

clarifying priority based on what's possible right now: For dev: which of these are we tracking in the database?

pri 1

  • pantry vs meal
  • days a place is open
  • Open Now?
  • hours a place is open

Pri 2

  • No known eligibility requirements? (no text in the free form eligibility field means no.)
  • Languages spoken

itserindean avatar Sep 02 '22 02:09 itserindean

Link to in-progress Figma drawings

Also, for reference, check out this Google Search UI when I searched for "farmers markets sunday san francisco" (it didn't select a day automatically — I did that manually)

Screen Shot 2022-09-03 at 8 17 03 AM (2)

fancyham avatar Sep 03 '22 15:09 fancyham

@JohnHaoHuang Please add a few screenshots of your latest version when you're ready to share!

fancyham avatar Oct 02 '22 01:10 fancyham

We have another filter we can add!

Food types: Baked goods, dry goods, produce, dairy, prepared food, meat (with the ability to select multiple and it would show listings that match all items that were selected)

i.e. If user selected Prepared goods and meat, then it would only show results that have both prepared goods and meat.

Screen Shot 2022-10-13 at 6 58 53 PM

Turns out those are in the database and people will probably find them useful — can you add this to your designs, please? Thx!

fancyham avatar Oct 14 '22 02:10 fancyham

Thanks for letting me know. Yes, I will add it to the design. Once the missing font is fixed.

JohnHaoHuang avatar Oct 14 '22 03:10 JohnHaoHuang