# Slicer Extension Manager: User Interface Feedback

**URL:** <https://discourse.slicer.org/t/slicer-extension-manager-user-interface-feedback/2475>\
**Category:** Support\
**Created:** [March 30, 2018, 1:52pm UTC](https://discourse.slicer.org/t/slicer-extension-manager-user-interface-feedback/2475 "2018-03-30T13:52:18Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![jcfr](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/jcfr/32/17825_2.png) [@jcfr](https://discourse.slicer.org/u/jcfr)\
**Post date:** [March 30, 2018, 1:52pm UTC](https://discourse.slicer.org/t/slicer-extension-manager-user-interface-feedback/2475/1 "2018-03-30T13:52:18Z")

</div>

Hi Slicers,

During the past few months, we have been hard at work crafting what will be the [new backend](https://github.com/girder/slicer_package_manager#readme) for managing Slicer (or Slicer-based) application and extension packages.

Later today, @Pierre-Assemat and I will meet with our UI/UX designer at Kitware to discuss the next version of the **extension manager frontend**.

It would be great to collect your input on what worked well and what didn’t regarding the **User Interface** , this will help drive the requirements for the backend and associated infrastructure.

Links:

- [Full web page](http://slicer.kitware.com/midas3/slicerappstore/?os=win&arch=amd64&revision=26813&category=&search=&layout=layout)
- [Minimal web page](http://slicer.kitware.com/midas3/slicerappstore/?os=win&arch=amd64&revision=26813&category=&search=&layout=empty) (similar to what is visible in the extension manager)

I created few polls (see below), please consider voting for which pros/cons/feature-request you agree the most. Based on the comment posted, I can definitively update the polls.

### What I like about the current Extension Manager:

_Poll ([view on site](https://discourse.slicer.org/t/slicer-extension-manager-user-interface-feedback/2475/1))_

### Issues that impact my user experience:

_Poll ([view on site](https://discourse.slicer.org/t/slicer-extension-manager-user-interface-feedback/2475/1))_

### Feature I wish to have:

_Poll ([view on site](https://discourse.slicer.org/t/slicer-extension-manager-user-interface-feedback/2475/1))_

### What type of stats should we keep around ?:

_Poll ([view on site](https://discourse.slicer.org/t/slicer-extension-manager-user-interface-feedback/2475/1))_

References:

- Next generation of the Slicer application and extension package manager:
  - [https://github.com/girder/slicer\_package\_manager#readme](https://github.com/girder/slicer_package_manager#readme)
  - [http://slicer-package-manager.readthedocs.io](http://slicer-package-manager.readthedocs.io)

- Slicer wiki:
  - [https://www.slicer.org/wiki/Documentation/Nightly/SlicerApplication/ExtensionsManager](https://www.slicer.org/wiki/Documentation/Nightly/SlicerApplication/ExtensionsManager)
  - [https://www.slicer.org/wiki/Documentation/Labs/ExtensionsFrameworkRoadmap](https://www.slicer.org/wiki/Documentation/Labs/ExtensionsFrameworkRoadmap)

---

<div class="post-metadata">

**Author:** ![fedorov](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/fedorov/32/14_2.png) [@fedorov](https://discourse.slicer.org/u/fedorov)\
**Post date:** [March 30, 2018, 9:44pm UTC](https://discourse.slicer.org/t/slicer-extension-manager-user-interface-feedback/2475/2 "2018-03-30T21:44:30Z")

</div>

@jcfr could you refine the titles for the individual polls?

For example, it is not clear to me what “Pros:” poll title corresponds to. Should that be “What I like about the current Extension Manager:”? Or something else?

---

<div class="post-metadata">

**Author:** ![jcfr](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/jcfr/32/17825_2.png) [@jcfr](https://discourse.slicer.org/u/jcfr)\
**Post date:** [March 30, 2018, 9:48pm UTC](https://discourse.slicer.org/t/slicer-extension-manager-user-interface-feedback/2475/3 "2018-03-30T21:48:25Z")

</div>

> [@fedorov](#):
>
> refine the titles for the individual polls

Thanks for the feedback. Let me know what you think.

---

<div class="post-metadata">

**Author:** ![fedorov](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/fedorov/32/14_2.png) [@fedorov](https://discourse.slicer.org/u/fedorov)\
**Post date:** [March 30, 2018, 9:48pm UTC](https://discourse.slicer.org/t/slicer-extension-manager-user-interface-feedback/2475/4 "2018-03-30T21:48:27Z")

</div>

Also, suggested additions for the polls (not sure into which category they fall):

- “stars” for the extensions (to me, this was a very weird feature that no one really used, due to the Midas login it relied upon - it should either be better implemented, or dropped)
- “download count” (in most cases, it is bogus, since it shows count only for the given build, so I think it should also be either refined, or removed)

---

<div class="post-metadata">

**Author:** ![fedorov](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/fedorov/32/14_2.png) [@fedorov](https://discourse.slicer.org/u/fedorov)\
**Post date:** [March 30, 2018, 9:51pm UTC](https://discourse.slicer.org/t/slicer-extension-manager-user-interface-feedback/2475/5 "2018-03-30T21:51:20Z")

</div>

What do you mean by “when using the web version, the URL is updated”?

---

<div class="post-metadata">

**Author:** ![jcfr](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/jcfr/32/17825_2.png) [@jcfr](https://discourse.slicer.org/u/jcfr)\
**Post date:** [March 30, 2018, 10:13pm UTC](https://discourse.slicer.org/t/slicer-extension-manager-user-interface-feedback/2475/6 "2018-03-30T22:13:05Z")

</div>

### stars rating

> “stars” for the extensions

We talked about removing that. And instead, we were thinking to have anonymous “+1” system.

### download stats

These data are from our test server.

> “download count” (in most cases, it is bogus, since it shows count only for the given build, so I think it should  
> also be either refined, or removed)

In the new backend, download count are kept around at the release level in a json document. For example, for release, it like this:

 ![image](https://us1.discourse-cdn.com/flex002/uploads/slicer/original/3X/5/f/5f6b01ba03f1d9796421259fcbe51c8f7804f2c2.png)

and for draft release (aka preview / nightly), we also keep track of it:

 ![image](https://us1.discourse-cdn.com/flex002/uploads/slicer/original/3X/d/0/d047beaea062348f0edb8b35d001ed49d2436015.png)

---

<div class="post-metadata">

**Author:** ![jcfr](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/jcfr/32/17825_2.png) [@jcfr](https://discourse.slicer.org/u/jcfr)\
**Post date:** [March 30, 2018, 10:18pm UTC](https://discourse.slicer.org/t/slicer-extension-manager-user-interface-feedback/2475/7 "2018-03-30T22:18:24Z")

</div>

> [@fedorov](#):
>
> What do you mean by “when using the web version, the URL is updated”?

This should illustrate:

 ![web-url-updated](https://us1.discourse-cdn.com/flex002/uploads/slicer/original/3X/9/a/9a56aba8377940f11aa940bc5b47ef3e4cc0f0dc.png)

---

<div class="post-metadata">

**Author:** ![fedorov](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/fedorov/32/14_2.png) [@fedorov](https://discourse.slicer.org/u/fedorov)\
**Post date:** [March 31, 2018, 12:37am UTC](https://discourse.slicer.org/t/slicer-extension-manager-user-interface-feedback/2475/8 "2018-03-31T00:37:40Z")

</div>

> [@jcfr](#):
>
> instead, we were thinking to have anonymous “+1” system.

Would be cool if instead the users werr authenticated against Slicer discourse.

---

<div class="post-metadata">

**Author:** ![lassoan](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/lassoan/32/13_2.png) [@lassoan](https://discourse.slicer.org/u/lassoan)\
**Post date:** [March 31, 2018, 1:21am UTC](https://discourse.slicer.org/t/slicer-extension-manager-user-interface-feedback/2475/9 "2018-03-31T01:21:32Z")

</div>

+1 is about the same as download count. Anonymous star system is not really good, as people may want to change their star rating.

> “download count” (in most cases, it is bogus, since it shows count only for the given build, so I think it should also be either refined, or removed)

Yes, download count of specific nightly builds don’t tell much, but you can get download count summed for a range of releases using DeveloperToolsForExtensions extension. I find extension download count to be a very important metric.

---

<div class="post-metadata">

**Author:** ![lassoan](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/lassoan/32/13_2.png) [@lassoan](https://discourse.slicer.org/u/lassoan)\
**Post date:** [March 31, 2018, 1:40am UTC](https://discourse.slicer.org/t/slicer-extension-manager-user-interface-feedback/2475/10 "2018-03-31T01:40:23Z")

</div>

> [@fedorov](#):
>
> users werr authenticated against Slicer discourse

GitHub would be even better, because you can log on to Discourse (and access many other Slicer resources) with your GitHub account, but you cannot do much else with a Discourse account.

---

<div class="post-metadata">

**Author:** ![jcfr](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/jcfr/32/17825_2.png) [@jcfr](https://discourse.slicer.org/u/jcfr)\
**Post date:** [March 31, 2018, 1:49am UTC](https://discourse.slicer.org/t/slicer-extension-manager-user-interface-feedback/2475/11 "2018-03-31T01:49:33Z")

</div>

> Yes, download count of specific nightly builds don’t tell much, but you can get download count summed for a range of releases

The good news is that we the new backend already has [an endpoint](https://github.com/girder/slicer_package_manager/blob/79cef92ba59e8a1821d0995d0a0cda2019cc2f8e/server/api/app.py#L48) to the get the stats. It turn a maps of stats for each revision.

 ![image](https://us1.discourse-cdn.com/flex002/uploads/slicer/original/3X/4/3/436f277c9e19b788276987cb6180dcd832cfcc2d.png)

Or you could get the the stats for all releases using `GET /app/{app_id}/release`. These include download count for both application and extension packages.

 ![image](https://us1.discourse-cdn.com/flex002/uploads/slicer/original/3X/4/3/436f277c9e19b788276987cb6180dcd832cfcc2d.png)

---

<div class="post-metadata">

**Author:** ![jcfr](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/jcfr/32/17825_2.png) [@jcfr](https://discourse.slicer.org/u/jcfr)\
**Post date:** [March 31, 2018, 1:56am UTC](https://discourse.slicer.org/t/slicer-extension-manager-user-interface-feedback/2475/12 "2018-03-31T01:56:28Z")

</div>

> [@lassoan](#):
>
> GitHub would be even better, because you can log on to Discourse

There is officially [support for Google Auth](http://girder.readthedocs.io/en/latest/plugins.html#google), and available implementation for few others including GitHub:

![image](https://us1.discourse-cdn.com/flex002/uploads/slicer/original/3X/1/8/1829fc8e09cc156f8adb3fff8b0753c153d961fe.png)

---

<div class="post-metadata">

**Author:** ![dzenanz](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/dzenanz/32/1992_2.png) [@dzenanz](https://discourse.slicer.org/u/dzenanz)\
**Post date:** [March 31, 2018, 2:34pm UTC](https://discourse.slicer.org/t/slicer-extension-manager-user-interface-feedback/2475/13 "2018-03-31T14:34:47Z")

</div>

It is not easy to grade extensions on a 1-5 scale, so I am for +1 system. On the web, the user should have to log in using OAuth (Google, GitHub and perhaps a few more). But it should be possible to vote using the extension manager built into Slicer. Otherwise there is not going to be a lot of votes.

---

<div class="post-metadata">

**Author:** ![lassoan](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/lassoan/32/13_2.png) [@lassoan](https://discourse.slicer.org/u/lassoan)\
**Post date:** [March 31, 2018, 3:05pm UTC](https://discourse.slicer.org/t/slicer-extension-manager-user-interface-feedback/2475/14 "2018-03-31T15:05:08Z")

</div>

We can define what we mean by each star (1-does not work at all; 3 - somewhat useful; 5 - very useful and easy to use). I’m not sure even this would be specific enough - probably getting separate stats for functionality, robustness, ease of use, documentation, etc. would be much better. It is also not trivial what would be the effect if somebody got bad ratings.

+1 should give info about how frequently used and useful an extension is - which I think is about the same information as download count.

---

<div class="post-metadata">

**Author:** ![fedorov](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/fedorov/32/14_2.png) [@fedorov](https://discourse.slicer.org/u/fedorov)\
**Post date:** [April 2, 2018, 1:23pm UTC](https://discourse.slicer.org/t/slicer-extension-manager-user-interface-feedback/2475/15 "2018-04-02T13:23:49Z")

</div>

+1 for 5-star rating. It provides more info than “thumbs up”, and I don’t think there is a need to provide any definitions - it will be hard to find someone who did not use 5-star rating in mobile phone store apps, in Amazon, etc.

The idea to authenticate with Slicer Discourse directly was to link the slicer community specifically with the rating process.

---

<div class="post-metadata">

**Author:** ![jamesobutler](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/jamesobutler/32/7511_2.png) [@jamesobutler](https://discourse.slicer.org/u/jamesobutler)\
**Post date:** [April 2, 2018, 4:46pm UTC](https://discourse.slicer.org/t/slicer-extension-manager-user-interface-feedback/2475/16 "2018-04-02T16:46:56Z")

</div>

As an end user, if I was to even provide a rating for an extension it would probably be a 1 or 5. I feel like no one will provide 2 or 4 star reviews which is behavior you can usually observe on app stores or amazon pages. I would want to know with a description why someone gave a 2 versus a 1 if that was an option. Also, I would need explicit descriptions like Andras mentioned so that I could match what developers interpret a 3-star review to mean otherwise it’s a little hand wavy.

---

<div class="post-metadata">

**Author:** ![fedorov](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/fedorov/32/14_2.png) [@fedorov](https://discourse.slicer.org/u/fedorov)\
**Post date:** [April 2, 2018, 5:00pm UTC](https://discourse.slicer.org/t/slicer-extension-manager-user-interface-feedback/2475/17 "2018-04-02T17:00:34Z")

</div>

> [@jamesobutler](#):
>
> otherwise it’s a little hand wavy

IMHO, ratings are hand-wavy by definition …

---

<div class="post-metadata">

**Author:** ![jamesobutler](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/jamesobutler/32/7511_2.png) [@jamesobutler](https://discourse.slicer.org/u/jamesobutler)\
**Post date:** [April 2, 2018, 6:34pm UTC](https://discourse.slicer.org/t/slicer-extension-manager-user-interface-feedback/2475/18 "2018-04-02T18:34:20Z")

</div>

True, ratings are hand-wavy by definition. I think you’re going to have people rate only if they have a strong opinion hence 1 and 5 star ratings probably being the most popular. There would probably be more response by the casual users if the rating system was within the module somewhere instead of having to go back to the extension manager, search for the extension, and then provide the rating. As an end-user, I’d rather have a more curated experience with a most popular/featured section to guide me into picking which extensions to download instead of looking at the ratings.

I know many casual users are completely unaware of the extension manager. Those that do find it might provide 1-stars simply because the extensions usually have very few helpful screenshots and **most importantly** there’s very rarely any type of documentation associated with how to use the features offered in the extension (this plagues some core modules too). If I don’t know how to use an extension, I’m likely going to give it a 1-star. I know documentation is boring to write, but it really impacts if I’m going to continue to use the module/extension or just give up.

Would a 1-star rating(or down vote) due to a user-found bug or lack of functionality be cleared when the developer updates the extension? Would there be enough ratings to support clearing an extension’s rating every time it has an update? Would there be an easy communication channel(more like discourse and less github-issue based) between a user and the developer of the extension for questions how to use the extension/bug fixes/feature requests?

---

<div class="post-metadata">

**Author:** ![ihnorton](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/ihnorton/32/9_2.png) [@ihnorton](https://discourse.slicer.org/u/ihnorton)\
**Post date:** [April 3, 2018, 1:27pm UTC](https://discourse.slicer.org/t/slicer-extension-manager-user-interface-feedback/2475/19 "2018-04-03T13:27:48Z")

</div>

A post was merged into an existing topic: [Trouble with Extension Manager](https://discourse.slicer.org/t/trouble-with-extension-manager/2457)

---

<div class="post-metadata">

**Author:** ![fedorov](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/fedorov/32/14_2.png) [@fedorov](https://discourse.slicer.org/u/fedorov)\
**Post date:** [April 3, 2018, 2:23pm UTC](https://discourse.slicer.org/t/slicer-extension-manager-user-interface-feedback/2475/20 "2018-04-03T14:23:07Z")

</div>

> [@jcfr](#):
>
> Feature I wish to have:

Sounds like proxy option should be added to the list in the poll above.
