123 lines
7.7 KiB
ReStructuredText
123 lines
7.7 KiB
ReStructuredText
.. _discourse_integration:
|
|
|
|
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 <https://accounts.fedoraproject.org/user/mattdm>`_
|
|
on `this Fedora Discussions thread
|
|
<https://discussion.fedoraproject.org/t/magical-experimental-fedora-badges-topic/35007>`_
|
|
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
|
|
<https://discussion.fedoraproject.org/u/t0xic0der/badges>`_).
|
|
|
|
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
|
|
<https://discussion.fedoraproject.org/t/discourse-badges-should-we-or-shouldnt-we/34698/6>`_
|
|
to the `original post
|
|
<https://discussion.fedoraproject.org/t/discourse-badges-should-we-or-shouldnt-we/34698>`_
|
|
about testing waters around `Discourse Badges
|
|
<http://discussion.fedoraproject.org/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
|
|
<https://discussion.fedoraproject.org/t/exploring-the-idea-of-using-discourse-as-a-badges-frontend-the-backend-implications/34887>`__
|
|
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
|
|
<https://fedora-arc.readthedocs.io/en/latest/badges/prop_rewrite_entities.html>`__ ) 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
|
|
<https://fedora-arc.readthedocs.io/en/latest/badges/prop_rewrite_entities.html#internal-entities>`__
|
|
).
|
|
|
|
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
|
|
<https://discussion.fedoraproject.org/t/badges-to-discourse-experiment-notes-on-discourse-as-a-badges-front-end/35262>`_
|
|
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
|
|
<https://discussion.fedoraproject.org/t/badges-to-discourse-experiment-notes-on-discourse-as-a-badges-front-end/35262#:~:text=Getting%20list%20of%20badges%20for%20mattdm%20via%20JSON%20here%3A%20about%20140ms.%20From%20badges%20site%2C%20about%2035%20whole%20seconds>`_
|
|
) 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
|
|
<https://fedora-arc.readthedocs.io/en/latest/_images/badges-proposed-architecture.png>`_
|
|
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?
|
|
<https://discussion.fedoraproject.org/t/discourse-badges-should-we-or-shouldnt-we/34698>`_
|
|
2. `Badges on Fedora Discussions <https://discussion.fedoraproject.org/badges>`_
|
|
3. `Exploring the idea of using Discourse as a badges frontend — the backend
|
|
implications
|
|
<https://discussion.fedoraproject.org/t/exploring-the-idea-of-using-discourse-as-a-badges-frontend-the-backend-implications/34887>`_
|
|
4. `Magical Experimental Fedora Badges Topic!
|
|
<https://discussion.fedoraproject.org/t/magical-experimental-fedora-badges-topic/35007>`_
|
|
5. `Badges-to-Discourse experiment... notes on Discourse as a badges front-end
|
|
<https://discussion.fedoraproject.org/t/badges-to-discourse-experiment-notes-on-discourse-as-a-badges-front-end/35262>`_
|