swarmcity / SwarmCityConcept

This is the high level description of what needs to be built
9 stars 1 forks source link

As a user, I can filter a hashtag's items by my geo-range of choice so I can see items in my area. #26

Open kikipluche opened 6 years ago

kikipluche commented 6 years ago

Abstract:

A hashtag has a chronological list of hashtagItems. This list gives the user insight into a hashtag's activity and type of market, and shows what is being requested for what amount.

When the list is filtered by a geolocation range, the hashtag can be used hyper-locally or worldwide.

How it could work:

Every hashtagItem has a geohash. A geohash is an alphanumeric representation of a location on earth. https://en.wikipedia.org/wiki/Geohash

For example, the coordinate pair 57.64911,10.40744 (near the tip of the peninsula of Jutland, Denmark) produces a hash of u4pruydqqvj.

The more characters the hash has, the more precise the location is (zoom in). The less characters, the less precise (zoom out).

The list can be filtered to only show items in the selected area by comparing the item's geohash to the user's selected geohash.

What it looks like:

Userflow: https://invis.io/ABGM89SX3V5#/299514868_-Hashtag--contractaddress-_ACCOUNT_Filtermenu_Collapsed ( > in Invision, hold shift to see clickable areas)


route: /hashtag/[contractadress]

On the page hashtag, below the Hashtag + 'i' (of hashtaginfo), we see a small button with copy "filter requests" (A).

When the user taps this button, the filter-menu (B) drops down, sliding over the hashtagItemList. The list become 20% opacity. The button itself changes in the background (grey3) and text-color (white).

The filter-menu (B) contains:

The slider determines the geo-location.

By default the slider is set to 'worldwide'. When the user moves the slider without the location services enabled, the view changes to /location/.

The page /location/ contains:

When the user taps the black X-mark (cancel-button), the process is aborted and the view changes back to /new-request, with the inputs still filled in.

When the user confirms by tapping the blue V-mark (confirm-button), the view changes back to /hashtag/[contractaddress], with the filter-menu still expanded and the slider now fully movable. When the permission is not givven and the location remains unknown, the only option to filter on is worlwide, not specifying the location at all.

When the slider has a new value of [distance], the copy below the slider changes instantly (while still sliding). The user sees the distance in a more human expression:

The filter-menu closes in 3 ways:


Desktop view:


Invisionlinks with login (for inspect mode!): mobile: https://projects.invisionapp.com/d/main#/console/13838256/299514867/inspect desktop: https://projects.invisionapp.com/d/main#/console/14147648/295976010/inspect

Documentation / references


With ♡ from Swarm City