-
Notifications
You must be signed in to change notification settings - Fork 0
Product: Geofence v1
name | signoff? |
---|---|
product | rz |
design | aq |
dev | y |
stakeholder | sc |
Create a geofence v1 that helps introduce the product.
- | - |
---|---|
1 | If "Pat" disables footprint CTA, all other guests receive a notification that "Pat" left the bot. Even if "Pat" is still physically in the bot. |
2 (timeout logic) | The client side will be uploading location to the server side every 4 minutes. If the server side does not receive a location after x tries. Then it's going to consider that the user is no longer in that bot. (Could happen with low battery, phone dead) |
3 |
|
- Geofence has been featured renamed to Presence. Applies to user facing content.
- All bots can have geofence now (private and public)
- If a bot owner disables
presence
(by disabling the footprint) the geofence bot still functions for everyone else who has enabledpresence
. rn-chat link here, 1957 - A geofence bot has geofence removed when bot owner toggles geofence functionality:
OFF
or when they delete the bot. rn-chat link here, 1958
Each bot has a property or flag which enables or disables this functionality. I'm gonna go ahead and call it
geofence
. We actually have an existing, albeit unused, fieldalerts
for this purpose but in hindsight,alerts
is not a good name either so I'd rather replace it withgeofence
.
Each user which opts into sharing visits is called a 'guest' (for lack of a better term). It's not a perfect name either but it's the best I came up with. The idea is that ... sharing visits is analoguous to adding oneself to a guest list or a roll call. [1]
A 'visitor' is a user who is a 'guest' and also is currently within the perimeter of the bot (after applying debouncing rules).
'persistent HS banner' can be replaced by one of: HS header, HS preamble or HS preface. You could also use the term 'sticky' to mean that it is always positioned (if it appears) before the first HS item.
BTW, the 'accept-ignore-an-invite-to-share-visits' isn't actually part of the HS. In the sense that ... it's not part of the data structure that makes up the HS. Server side and protocol-wise ... it's a separate and independent thing.
[1] An alternative is to say that a user who was chosen to share visits is an opted-in user. Hence, every bot has non-subcribers, opted-out subscribers, and opted-in subscribers. This is attaching a new meaning to the term 'opt in' ... but maybe it works.
- Guest: Each user which opts into sharing visits is called a 'guest'
- Visitor: A 'visitor' is a user who is a 'guest' and also is currently within the perimeter of the bot (after applying debouncing rules).
HS header: a sticky at the top header that is always positioned (if it appears) before the first HS item. It does not stick when a user scrolls down
In order for geofence to work, the following must happen:
- User needs to enable
Always
for iOS Location Access Permission - User needs to create or accept tracking (by enabling the footprint CTA) from a bot with
sharing visits
enabled.
- Geofence only works for
privateALL bots. - In order to disable geofence for everyone who has enabled tracking on a bot, the bot owner can
delete
the bot,make the botpublic
[edited]or disable the geofence CTA (footprint CTA).1If the bot owner disables the geofence CTA (footprint CTA) ALL users are automatically taken off tracking from this bot. If the userreenables
the footprint CTA, all guests who have previously enabled the footprint CTA get a notification asking them to reenable the footprint CTA. - Bot owner is a guest. If they disable their own geofence bot they simply do not receive "geofence updates" [user arrived, user left]
- Once a user sets iOS permission:
Only While Using App
users sees disabled bots UI. They will need to reenable the iOS settings in order to reenable the bots. - Once a bot owner sets iOS permission:
Only While Using App
they are no longer able to see the geofence UI until they reenable the setting. Instead, they only see a disabled version of the bot. However, everyone else in the bot owner's bots can still see each other's geofence UI. - Geofence detection is bidirectional, User A and User B can always see each other's geofence. It should not be possible for User A to see User B's geofence only. Or vice versa.
- If a user enables the footprint CTA, they automatically subscribe to the bot. The CTAs should reflect this.
- Default radius: 100 meters, no other type of radius should be possible when geofence is enabled.
In efforts to introduce this totally new product, all users will automatically have the footprint CTA enabled fortinyrobot HQ
bot. (And thus, automatic subscribers totinyrobot HQ
.Persistent HS banner is persistent (even if there are no visits) for v1. (Need mock for this)- All users that have enabled geofence detection for a bot have access to the
Visitors
list. - On Explore Nearby, bots that have enabled shared geofence will display their respective accurate default 100 meters radiuses.
- In order for a user to be considered as visiting, they need to be there for 120 seconds.
- In order for a user to be considered as out of the bot, they need to be out of the geofence for 60 seconds.
Case 1:
- User A (bot owner) sends a request to User B (receiving user) and User C (receiving user).
- User B and C accept (by enabling the footprint CTA).
- Users A, B, and C can see Users A, B and C's geofence even if Users B and C are not friends or have any relation on tr.
Case 2:
- User A (bot owner) sends a request to User B (receiving user) and User C (receiving user).
- User B and C accept (by enabling the footprint CTA).
- If User A disables tracking (by disabling the footprint CTA) ALL users can still see the bot. Users B and C will continue to receive geofence push notifications. User A will not receive push notifications until they reenable the footprint CTA.
- User A reenables tracking, by tapping on the footprint CTA. ALL users who previously allowed tracking receiving a notification asking them to reenable tracking.
Case 3:
- User A (bot owner) sends a request to User B (receiving user) and User C (receiving user).
- User B and C accept (by enabling the footprint CTA).
- User A deletes bot.
- The bot is removed across the app. Geofence UI is also removed (from persistent banner and Explore Nearby).