Idea to Implement Local App Store for Modules and OWAs

Two things:

  1. There is already a project underway by an Andela team to build an OWA that manages both OWAs and Modules in a unified way. I would suggest joining forces with this effort. For example you could propose how to incrementally move from what’s currently implemented there towards the kind of design you’re talking about. (It’s what’s mentioned here: Add-On Manager Sprint 1 Demo Announcement and I’m sure you’re aware of this already.)

  2. Having a nicely designed App Store would be cool. But considering tradeoffs, and deciding where to invest efforts, I do not think we should build a “Local App Store”. E.g. we already have the Add On Index, and I’d prefer to spend an extra week of effort improving its UX, rather than spending that week building yet another app store codebase, and having to maintain both.

  • I bet we can build this as a screen in the Add On Index webapp (where the user follows a link from their OpenMRS server, and this tells the Add On Index all the currently running versions, which can be put in the application state). The benefit of this is that we can continually improve it as a hosted webapp, rather than building an OWA that has to be deployed to all the servers.

  • The prototype screen looks very nice. I like the way it looks. Taking a quick peek at Chrome’s extensions (chrome://extensions/ if you’re running chrome), I see that they have taken a simpler visual approach of just giving a vertical list of your installed extensions, and then a “Get More Extensions” link.

  • Thinking about the end user here (the administrator of an OpenMRS install) I think there are two user stories:

    1. I want to see if there are new versions of my installed OMODs and OWAs, determine if it makes sense for me to upgrade, and possibly do the upgrade.
    2. I want to find a new OMOD/OWA that will add a desired feature to my OpenMRS install.
  • Seeing two user stories makes me lean towards keeping the screens separate for these two use cases.

  • This is giving me ideas for incremental functional things we could doing in our current UIs, but haven’t been. For example our Module Management UI effectively tells you “You have version 1.2.3, but version 4.5.6 is available. Click to Download”. But how does the user know if they should upgrade or not? We should also show the release dates of those two versions, and show them (a link to) the release notes for all versions between their current version, and the new one. (We could start indexing this in Add On Index.)

  • Also, even though all of this Add-On Management stuff is fun, I think it’s even better to spend that week building some end-user facing functionality. :slight_smile:

2 Likes