Integrate Fedora Discussions with the Fedora Badges System

Fedora Badges has not only been a means to incentivize contribution for the Fedora Project community but also been an topic of active conversation and a healthy competition among the community members. One of the attempts to bring the system to the forefront was made by Matthew Miller on this Fedora Discussions thread and participated by a lot of community members. This turned out to be quite a successful experiment and the badges that people have acquired got integrated with the Discourse badges page (For eg. here is a catalog of badges acquired by Akashdeep Dhar).

As it stands, the usage of Discourse (or Fedora Discussions) happens to help with simplifying the creation (and maintenance) of the frontend of the Fedora Badges system. Although this is a welcome proposal, the frontend happens to be the least challenging component of the system (as mentioned by Ryan Lerch in his reply to the original post about testing waters around Discourse Badges created on 23rd Nov 2021) but the fact that it still has not been maintained and requires modernization cannot be denied. At the very same time, it is a very alluring choice which helps us save efforts in developing the frontend from ground up and redirect them into redeveloping the backend, which admittedly requires the most attention.

The original post about exploring the idea of using Discourse as the frontend for Fedora Badges system (which can be found here created on 1st Dec 2021) further details on the proposed approaches of making it happen. Although the study is superficial but the implications provided there should be adequate enough to connect with our study regarding the entities involved in the proposed redevelopment of the system (the one that can be found here ) to deduce that Fedora Discussions could very well be used to be a drop-in replacement of sorts for our Liberation entity (information about the internal entities can be found here ).

The discussions in the aforementioned post were continued over at the original post sharing notes of the things needed to be taken care of while implementing the same (which can be found here created on 16th Dec 2021). The following are the key points we derived and discussed about from the said treatise.

  1. The Discourse frontend does provide for a much faster loading of badges list (Source: JSON acquring time for user mattdm ) and the plugin system is convenient enough to allow for adding features and elements atop a stock interface.

  2. The global listing of badges on the Discourse interface allows marking of acquired badges and for grouping, which can help solve the issue of introducing badge paths, although the listing of badges according to their age needs looking into.

  3. The per-user listing of badges could use some organization according to categories and/or badge paths but favourite badges can be picked and shown on the profile card, which makes these badges more than a royal collectible but something to start discussions around.

  4. The leaderboards also remain something to be seen, though the implementation should be fairly easy if we are to have the same format as that of the current frontend (i.e. show weekly, monthly and all-time leaders). The badge count for the users should be added too.

  5. The use of Discourse’s internal badge levels alongside our badge paths has a possibility of doing more harm than good, as it allegedly allows for only three levels (i.e. bronze, silver and gold). This might confuse the frontend if certain badges of a path belong to a level or tier.

  6. The UI for manually awarding badges is allegedly restricted to only those who are admins of the forum. Integrating that access capacity with a FAS group should allow for members belonging to that group to award badges while restricting them from any other admin-like operations.

  7. The inclusion of QR codes or links to receive badges does not seem to be a feature on the Discourse frontend but it is something that we could play around with and implement using automation scripts. Also, there should be a way for folks to opt-in or opt-out of these as they fit.

The following are the pain-points we derived out of the study.

  1. There are possibilities that the users would get bombarded with loads of notifications as they receive loads of badges in a short duration of time. If this is understood correctly, this issue can be safely ignored as this happens to be a one-time problem only.

  2. There can be times when the user can have their account activated for Fedora Badges and not on Discourse, or vice-versa. We would require to rework the database (and the access to it from the Discourse frontend) to ensure that the Badges database has the precedence.

How to go about it?

We swap out the Liberation entity part from the internal entity chart and replace it with the Discourse frontend. The interactions, for the most parts, should stay the same but a considerably different set of technologies would be required to work on the Discourse frontend.

Is there a Plan B?

Of course, there is. Just in case, the proposal for the use of the Discourse frontend is not met with the community’s approval or if it becomes too difficult to work on - we can always make the current implementation of integration work with the redeveloped system. In this way, we can have our own frontend all while ensuring that our badges are not left behind catching electronic dust by giving them the attention on the Fedora Discussions forum, with their use as custom titles and listing them on the user cards.

Further reading

  1. Discourse Badges - should we or shouldn’t we?

  2. Badges on Fedora Discussions

  3. Exploring the idea of using Discourse as a badges frontend — the backend implications

  4. Magical Experimental Fedora Badges Topic!

  5. Badges-to-Discourse experiment… notes on Discourse as a badges front-end