alpheios-project / documentation

Alpheios Developer Documentation
0 stars 0 forks source link

MVP User Stories and Architecture Review #8

Closed balmas closed 4 years ago

balmas commented 5 years ago

I have made an attempt to reflect the MVP requirements as user stories and present them in the context of our current and target architecture. A summary document is at https://github.com/alpheios-project/documentation/blob/master/design/architecture.md . This document is still incomplete wrt to services and auxiliary products but I would like to get feedback on what is there so far. The goal is to be able to move forward with a design for fulfilling the new auth, mobile support and reader app user stories.

Note that the Auth user stories are in all 3 primary product requirements (Browser Extension, Embedded Library and Reader App) and the Mobile user stories are in both the Embedded Library and the Reader App requirements. Support for offline content and Alpheios-supplied text are in the Reader App user stories.

From a code perspective, an important implication to note is that while the mobile support has previously been prototyped in the PWA prototype, this functionality is really not specific to the PWA approach, which is really more tied to the offline content requirements of the reader app.

For the offline content requirements, I have also begun a design discussion at https://github.com/alpheios-project/documentation/blob/master/development/offline-content.md.

balmas commented 5 years ago

@kirlat and @irina060981 I would like your feedback on (1) how I have framed the user stories, (2) whether you have questions on any of them (please review all, not just the auth, mobile and reader stories because there are new ones in core too) (3) thoughts on the design discussion for offline content (4) thoughts on approaches to integrating the mobile components

kirlat commented 5 years ago

A lot of useful info on user stories, thank you for this! However, ome questions arouse while I was reading the following stories:

Core

C15: search online for a selected word. Would that be a literal online search (i.e. using search engines such as Google, DuckDuckGo, etc.)? How would that look within a framework of Alpheios UI. Would there be some Alpheios UI elements that would initiate such a search? How would the search results be presented?

Authentication

A1: create a new user account using a Social IDP Do we create a new user account at the Social IDP here, or do we just create a new Alpheios user account (within an Alpheios controlled used DB) and associate it with an existing Social IDP account?

A3: Login to my account to access my personal data How and what kind of personal data would be presented to the user? Would that be user authentication data (email, password, username, etc.) or would that be data related to user interaction with Alpheios (i.e. history of searches) or would that be both? Would such data be presented to the user within a UI of Alpheios products (webextension, reader) or would that be displayed outside of Alpheios UI (on an alpheios web site, for example)?

A11: Push a new terms of service to users How would the users be notified about TOS update? Would we display a message within an Alpheios UI?

Could you please provide more detailed information on those? Thanks!

balmas commented 5 years ago

These are good questions. I will update the user stories to be more specific, but here are the answers as I see them:

A1: create a new user account using a Social IDP Do we create a new user account at the Social IDP here, or do we just create a new Alpheios user account (within an Alpheios controlled used DB) and associate it with an existing Social IDP account?

The latter. We create a new Alpheios user account which is authenticated by the Social IDP. Normally we will get an opaque unique identifier for the user from the Social IDP and that will be associated with the Alpheios user account in place of a username/password.

A3: Login to my account to access my personal data How and what kind of personal data would be presented to the user? Would that be user authentication data (email, password, username, etc.) or would that be data related to user interaction with Alpheios (i.e. history of searches) or would that be both? Would such data be presented to the user within a UI of Alpheios products (webextension, reader) or would that be displayed outside of Alpheios UI (on an alpheios web site, for example)?

This particular use case is about data related to interaction with Alpheios (such as word lists, comments, etc.) and it would be presented within the Alpheios UI. The user stories for that part of the UI are not fully fleshed out yet but need to be.

A11: Push a new terms of service to users How would the users be notified about TOS update? Would we display a message within an Alpheios UI?

This will be upon login. I believe the AuthO Lock api will give us the UI for this to start.

irina060981 commented 5 years ago

My questions/suggestions/notices:

Config User Stories

C2, C3 (prefered short and full lexicons): Do we expect user to have only one desired pattron - language + lexicons? Or will user choose lexicons for each language (as he could do this on the optins tab)

C4 (font size): Will user save color schema as preference?

C5, C6: - Duplicates

C7 (lemma translations): Will a user be able to save a language for translation?

Overal: This list is very similiar to our options tab - may be they should be the same to avoid misunderstood the difference between them?

irina060981 commented 5 years ago

Read User Stories

I think that here user's interactions are described detailed! I have some suggestions:

But I should notice that I have no solid experience with PWA, so may be all my suggestions are not applicable. If it is so - sorry for that!

irina060981 commented 5 years ago

Auth User Stories

Thank you for explanations here. I have a couple of suggestions:

And also one notice - I have such a sad experience with Social ID integration. I have created my login with the help of Facebook ID on one site (satelite TV) for my parents but now I have no opportunity to change it and give them there own login/password. Also once my login on facebook will be blocked or not accessible - I won't be able to make payment on that site. Technical support rejected all my requests.

I think it could be useful to have an ability to switch the same account for Social ID to normal login/password authentication.

irina060981 commented 5 years ago

Core User Stories

If to be honest I didn't quitely understand what is C13 (capture all user interaction) - what do you mean here? Where will be saved screenshots? Will user have some ability to limit it?

And a small suggestion: We talked previously about an opportunity for any user to send some notices for us (about bugs, about inorrects in date, about absence of data) - may be we should add such thing here?

irina060981 commented 5 years ago

Embedded Lib

Only a small suggestion here - may be it will be useful to add a limit for languages? I think that when someone embedds alpheios lib to his page - he knows what languages (latin, greek, geez and so on) it has - it could make options page, users data and some other data less. What do you think?

irina060981 commented 5 years ago

I am sorry, but for the discussion about offline and mobile approach - I need more time to read about these technologies:

balmas commented 5 years ago

My questions/suggestions/notices:

Config User Stories

C2, C3 (prefered short and full lexicons): Do we expect user to have only one desired pattron - language + lexicons? Or will user choose lexicons for each language (as he could do this on the optins tab)

C4 (font size): Will user save color schema as preference?

C5, C6: - Duplicates

C7 (lemma translations): Will a user be able to save a language for translation?

Overal: This list is very similiar to our options tab - may be they should be the same to avoid misunderstood the difference between them?

You are correct that the config user stories aren't complete. Everything that's on the options tab should be in there. I will work on updating them!

balmas commented 5 years ago

Embedded Lib

Only a small suggestion here - may be it will be useful to add a limit for languages? I think that when someone embedds alpheios lib to his page - he knows what languages (latin, greek, geez and so on) it has - it could make options page, users data and some other data less. What do you think?

This is a really good suggestion. I will add it to the list.

balmas commented 5 years ago
  • may be we should divide what personal data could be shown in different environments. For example, in read application that could be used offline we won't show any secure personal information (like change password and so on). But any user will be able for example to enter some specific page/site on-line with full personal data - and it will have all needed security requirements?

Hmm. We have some requirements in the reader stories which indicate "online and logged in" as prereconditions, but you're right that I haven't specified that for the auth stories. The assumption I was making was that all the stories in the auth requirements were online. I should state that explicitly though.

balmas commented 5 years ago

what about saving password somewhere and give an ability not to enter a password on every login, but it would be able to be entered every for example month?

I think we will rely on the browser for this functionality, rather than implement it ourselves.

balmas commented 5 years ago

I think it could be useful to have an ability to switch the same account for Social ID to normal login/password authentication.

Yes, this is a requirement for the future but not the initial release. I haven't yet put all the future requirements into the user stories...

balmas commented 5 years ago

Read User Stories

I think that here user's interactions are described detailed! I have some suggestions:

  • as it has ability to store data local and use local memory, that could be very different size - may be we should show how much memory used for the session, how much stored on the disk and available between session and how could all this stored data be cleared. I think it will be useful for different mobile devices.
  • Also may be we should add some configuration what data should be cached - for example all data is cached by default, but the user could uncheck storing for example full definitions data or inflection tables?
  • And may be it would be useful to have some grouping options to separate texts by folders / some statuses

But I should notice that I have no solid experience with PWA, so may be all my suggestions are not applicable. If it is so - sorry for that!

these are all very good suggestions. I think the user stories for the reader are right now a starting point, and we will definitely need to add to them as we get into it further.

balmas commented 5 years ago

If to be honest I didn't quitely understand what is C13 (capture all user interaction) - what do you mean here? Where will be saved screenshots? Will user have some ability to limit it?

Not screenshots but the details of what the user clicked on, etc. We had a start at this with the Experience library, but have disabled it for the moment because it was adding overhead without benefit. We need to reenable it, and yes we need to allow the user to opt out of it. I will update the user story with these details.

balmas commented 5 years ago

We talked previously about an opportunity for any user to send some notices for us (about bugs, about inorrects in date, about absence of data) - may be we should add such thing here?

Yes I'm not sure this will make it into the high priority list, but you are correct the user story should be there.