GhostWording / gw-config-apis

this repo contains static json that can live through apis with github management only
0 stars 7 forks source link

HuggySequence events #19

Closed andreasdieryck closed 6 years ago

andreasdieryck commented 6 years ago

I would like to review quickly the events we send when a user starts, continues and ends a sequence.

1. Events summary

At the moment, in the apps, we send the following events:

2. What we get on the server

When we answer a typical sequence with two levels, we have the following events sent to the server:

Event 1: HuggySequenceStart -> id of the sequence Event 2: HuggyCommandBarOptionSelected -> id of the first command selected Event 3: HuggySequenceNext -> id of the first command selected + level of the command: 1 Event 4: HuggyCommandBarOptionSelected -> id of the command selected Event 5: HuggySequenceNext -> id of the command selected + level of the command: 2

3. Suggestions for improvement

We could improve two things:

a. Redundancy between HuggySequenceNext/HuggyCommandBarOptionSelected

HuggyCommandBarOptionSelected seems quite useless as it contains the same information as HuggySequenceNext, minus the level of the command. Let's stop sending it to server?

b. New event to signify a sequence is finished

What do you think @OlivierBourdin @rhwy ?

My apologies if it seems I am doing a remake of an old topic ; it seemed to me that something isn't clear enough yet around the events we send and this is crucial enough to have this discussion I guess.

rhwy commented 6 years ago

One remark,

I don't know how events are implemented on apps, but for me there is still difference between sequence next and command bar. the command bar select should be sent when a user clicks on a button whereas the sequence next is sent when you start a new level of a sequence which is 2 different things (but, yes half of the time it can happen in correlation).

for exemple you present a menu, a user clicks one item -> you send command bar selected. then the element selected means you start executing a new level -> you send sequence next. then at the end of the level you have a linksto (or a fragment), then you start a new level -> you send a new sequence next without sending command bar selected.

basically, if we can only start a new level in a sequence with commands then it should be redundant but because we also have the notion of level continuations with the linksto/linkstofragment it is not.

On the other side, one thing needs to be clarified with the events and fragments.

as fragments are incorporated and loaded within other sequences, what should be the normal behavior?

  1. option 1 a. when you start executing the fragment B, you just send a sequence next (and keep the context with the id of the original sequence A). b. then at the end if it finishes you send a Sequence End with id=A.
  2. option 2 a. when you start executing a fragment B it should be considered as a new sequence, then you should send a sequence End for A and a sequence start for B. b. when B finishes, it sends a sequence end for B

other ideas?