IBM-Cloud / logistics-wizard

The Logistics Wizard is an end-to-end, smart supply chain management solution that showcases how to execute hybrid cloud, microservices, and predictive data analytics in the real world.
Other
112 stars 62 forks source link

Understand how to manage the live demo usecase where multiple users connect to the same demo #30

Closed l2fprod closed 8 years ago

l2fprod commented 8 years ago

related to #16

Let's assume we have deployed a Logistics Wizard demo in Bluemix. It has all the services deployed. It is accessible on the Internet to all Bluemix visitors.

The goal of the live demo if for clients to experience the app and also play with the scenarios like "a snowstorm" is coming. They run the business scenarios - not the more technical scenarios like "I want to simulate a connectivity failure of the database".

A new client connects to the LW demo site. She is prompted to register a new user id (should also be able to log in with 3rd party authentication like twitter/facebook/IBM ID).

Once logged, what does she see? We want to isolate the shipment data for other users. So we can have a new set of shipments created just for this user on first login. With the role/right management on the ERP service, we would make sure only her can see these shipments. This might require a customizable behavior in the ERP service to check more than the user role when returning shipments and also a way to identify a shipment as associated with a specific user. This would be needed only in the live demo scenario.

Once the ERP service API is able to filter shipments based on the connected user, the other services can use this filtering mechanism. As example, the recommendation service would have to make sure to only consider the shipments of the same user when making recommendations

Overtime we would want to cleanup the database too and get rid of users who registered a while ago but are no longer actively using the demo.

l2fprod commented 8 years ago

@benrondeau I need your view/review on how the live demo would work and what we should expect from an experience point of view when multiple users are concurrently using the live demo.

uwefassnacht commented 8 years ago

I think you have the flow right. A user is coming to the live demo:

If user is known:

If user is not known:

benrondeau commented 8 years ago

@l2fprod Once we have personas finalized (maybe they already are @JakePeyser?) we can workout the experience they all will have with the app, including when they are using it concurrently

jakepeyser commented 8 years ago

@benrondeau check out the Personas page in the wiki - it's a draft, but I plan on refining them next week with the help of some folks from the JDE team

benrondeau commented 8 years ago

@JakePeyser Will do. I think it is important we shore these up ASAP, of which I will be glad to help drive.

jakepeyser commented 8 years ago

Personas being worked on in #45

l2fprod commented 8 years ago

pushing this back to TODO until we have better understanding of the data that will be shared vs. specific to a live session.

jakepeyser commented 8 years ago

User creates an account and logs in for the first time, they are presented with the initial demo state. This is comprised of an isolated data set for each new user. They are able to "reset" the demo whenever they need so they can revert to the initial state.

jakepeyser commented 8 years ago

Flow for working with demo sessions documented in the Demo Sessions wiki page. @l2fprod @benrondeau please review and verify this is what we discussed

benrondeau commented 8 years ago

I disagree with a username/password login idea. I think that when a session is created, a simple session ID is issued (like 14273) which can be used to revisit the session in the future. For example:

This approach gets rid of people forgetting their credentials, although they could forget their session ID, which we could just email to them if they'd like.

My two cents :)

jakepeyser commented 8 years ago

I don't see how a session ID make it any simpler than a username/password. The thought that @l2fprod and I had was to display the username/password in cleartext on the second screen. Users would not have to remember any credentials, only the name that they gave their demo session if they did not bookmark that page itself.

benrondeau commented 8 years ago

If they have to remember username/password, that is two things to remember. Session ID is only one piece of info. I believe that is simpler.

Regardless, I assume people will forget to write down their credentials and we need to have some sort of retrieve method (email them their credentials upon request, like a 'I forgot my login' function)

jakepeyser commented 8 years ago

Users would not have to remember any credentials

The username/password will be there for them on the page itself. The login mechanism will be all underneath the covers, we saw no value in instrumenting it for our demo. I can walk you thru our thought process if it is unclear on the Mural