Last modified by allan on 2020/03/10 14:01

Hide last authors
bougault 10.1 1 (% class="box warningmessage" id="H5BDraft5D" %)
2 (((
3 **This is a draft**
4 )))
bougault 2.1 5
allan 12.1 6 The goal is to give collab editors a way to add external apps in the Collabs they are managing. To do so, the user should have access to a list of available apps. This is the **Application Catalogue** and it is publicly available and should be crawlable by search engines.
bougault 2.1 7
allan 13.10 8 To feed the catalogue, external application developers need to have access to an **Application Manager** where they can register apps. External app developers are registered users and have a specific role. Applications that need to have access to the Collaboratory APIs or to authenticate users have to create an OpenID Connect client.
bougault 2.1 9
allan 12.1 10 (% class="wikigeneratedid" %)
11 (((
12 {{toc numbered="true"/}}
bougault 2.1 13
allan 13.1 14 = Stakeholders needs =
15
allan 13.3 16 == R1 - Integrating apps ==
allan 13.1 17
allan 13.3 18 As a web application developer, I want to be able to integrate my web app in the Collaboratory so that my work can be beneficial to the community of users.
allan 13.1 19
20 == R2 - Installing apps in collabs ==
21
22 As a collab author, I want to be able to add web applications to my collab so that I can tell a richer story to my audience.
23
24 == R3 - Identifying apps ==
25
26 As a collab user, I want to be able to easily identify the application I am using so I can learn more about what it can offer to me.
27
28 = Features =
29
allan 13.2 30 == F1 - Registering app in Application Catalogue ==
31
allan 13.1 32 Web application developers can use the Application Catalogue to register their web application.
33
allan 13.3 34 An app is registered with a set of information:
35
36 * Name - a unique name
37 * Logo (optional) - to help identifying the app quickly
38 * Description - a short description of the intent of the application to help app selection
39 * URL - URL of where the web application is hosted
40 * Category - for filtering purposes
allan 13.10 41 * User documentation - URL to the user documentation
allan 13.3 42
allan 13.2 43 == F2 - Restricting app registration ==
44
allan 13.1 45 Collaboratory admins can restrict who can register applications in the Application Catalogue.
46
47 Users can send support requests to get the permission to register applications.
48
allan 13.3 49 == F3 - Installing an app in a collab ==
allan 13.2 50
allan 13.10 51 Collab authors can choose to add an application when creating a page in their collab: an installed app is a specific type of page which can be selected in the page creation form.
allan 13.2 52
53 == F4 - Selecting an app to install ==
54
allan 13.10 55 When a collab author creates an app page in her collab, she can browse, filter and select an application to add to the created page.
56
57 She can easily identify the app with its name, logo, description and category.
allan 13.2 58
allan 13.10 59 == F5 - Displaying an installed app ==
allan 13.3 60
allan 14.2 61 Applications are embedded in iframes. Application developers have to allow to be embedded under https:~/~/wiki.ebrains.eu domain in their Content Security Policies.
allan 13.3 62
allan 13.10 63 An installed app can be displayed in full screen mode.
64
65 == F6 - Providing context to an installed app ==
66
67 When navigating to an installed app, the Collaboratory gives context to it through query parameters so it can enrich the user experience:
68
69 * a [[UUID>>https://en.wikipedia.org/wiki/Universally_unique_identifier]] identifies the current installation uniquely in order for the app to be able to store context specific information. This UUID is kept if the app page is moved.
70 * a path identifies where the app is installed inside the Collaboratory
allan 12.1 71 )))
bougault 2.1 72
allan 12.1 73 = Application Manager =
bougault 2.1 74
allan 12.1 75 == Registering an application form ==
bougault 2.1 76
77 * Title
78 * Description
79 * URL
80 * Category
81 * Visibility (public/private) - private option just hides the app in the list. There is no real visibility management.
82
allan 12.1 83 == Search for existing apps ==
bougault 2.1 84
85 * Same features as Application Catalogue
86
allan 12.1 87 = Application Catalogue =
bougault 2.1 88
89 This is a list where Collab editors can choose an app.
90
bougault 8.1 91 * The editor adds a new document in the wiki. In the creation template list, there is a “Integrate External App” type that opens the External Application list, the user can search an app and pick one to associate its Collab.
bougault 2.1 92
93 * Applications in the list are
94 ** Displayed as a flat list, server side generated with all entries
95 ** Selectable
96
97 * Then the user can
bougault 9.1 98 ** Filter via a text input that provides autocompletion feature
bougault 2.1 99 ** Filter by categories  (to be defined)
100 ** Sort by some criteria