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

Show last authors
1 (% class="box warningmessage" id="H5BDraft5D" %)
2 (((
3 **This is a draft**
4 )))
5
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.
7
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.
9
10 (% class="wikigeneratedid" %)
11 (((
12 {{toc numbered="true"/}}
13
14 = Stakeholders needs =
15
16 == R1 - Integrating apps ==
17
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.
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
30 == F1 - Registering app in Application Catalogue ==
31
32 Web application developers can use the Application Catalogue to register their web application.
33
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
41 * User documentation - URL to the user documentation
42
43 == F2 - Restricting app registration ==
44
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
49 == F3 - Installing an app in a collab ==
50
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.
52
53 == F4 - Selecting an app to install ==
54
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.
58
59 == F5 - Displaying an installed app ==
60
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.
62
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
71 )))
72
73 = Application Manager =
74
75 == Registering an application form ==
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
83 == Search for existing apps ==
84
85 * Same features as Application Catalogue
86
87 = Application Catalogue =
88
89 This is a list where Collab editors can choose an app.
90
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.
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
98 ** Filter via a text input that provides autocompletion feature
99 ** Filter by categories  (to be defined)
100 ** Sort by some criteria