Migration de fonctionnalités sur mesure vers Discourse (Critique d'écriture)

Il s’agit d’une question concernant l’étendue des possibilités de personnalisation des fonctionnalités de Discourse et l’ampleur probable des travaux à effectuer.

Je fais partie de l’équipe technique d’une organisation d’écrivains professionnels de science-fiction, principalement centrée sur un logiciel de forum développé par un fondateur aujourd’hui parti. Il fonctionne sur une infrastructure ASP.NET Core, an open-source web development framework | .NET Server vieillissante, et nous souhaitons vivement migrer vers une autre plateforme.

L’une des fonctionnalités les plus populaires du logiciel est le système de critique de textes. Les utilisateurs peuvent télécharger un document avec un titre et un nombre de mots. Il existe une page spécifique affichant toutes les histoires actuellement en attente de retours. Le logiciel intègre une légère gamification : le téléchargement d’une histoire lance automatiquement un fil de discussion, et toute personne publiant une réponse de plus de 750 caractères reçoit des points. Lorsqu’un utilisateur a reçu suffisamment de retours, il peut empêcher toute autre personne de télécharger le fichier.

Sur la page de téléchargement des histoires, à côté du nom de chaque utilisateur, on peut voir le nombre de points de critique qu’il a accumulés et celui que ses histoires ont reçus. Ils sont censés rester à peu près équilibrés, mais tout repose sur l’honneur ; à ma connaissance, personne n’a jamais été averti pour avoir reçu des critiques sans en donner. Cela fonctionne très bien (sauf pour l’infrastructure technologique obsolète et vétuste, voir ci-dessus).

Les utilisateurs de longue date ont parfois accumulé un nombre impressionnant de crédits, et nous tenons particulièrement à les transférer vers la nouvelle plateforme plutôt que d’effacer les scores de tout le monde.

Ma question est la suivante : dans quelle mesure sera-t-il simple d’intégrer des fonctionnalités de ce type dans un forum Discourse ? Est-ce susceptible de relever du développement d’un plugin sur mesure, ou devrons-nous créer une application distincte interagissant avec Discourse via l’API ? Toute orientation de votre part serait la bienvenue.

4 « J'aime »

Cela devrait être réalisable dans un plugin. Les points pourraient être conservés en tant que champ personnalisé associé aux sujets, aux messages et/ou aux utilisateurs.

Quelques questions pour clarifier le fonctionnement :

Ces points sont-ils uniquement basés sur la longueur de la réponse ?

Comment détermine-t-on ce qui constitue « suffisamment » ?

Je suppose que « le fichier » désigne l’histoire ? Doivent-ils effectuer une action explicite ? Autrement dit, existe-t-il un bouton « empêcher les gens de télécharger le fichier » qui se débloque après « suffisamment de réponses » ?

Comment est déterminé le nombre (de points ?) qu’une histoire reçoit ?

5 « J'aime »

Merci pour votre réponse !

Toute réponse dépassant 750 caractères rapporte des points (il est possible de publier un message non critique dans un fil de critique en incluant les mots « Ceci n’est pas un message de critique », mais je ne pense pas avoir jamais vu cela utilisé). Si un auteur publie un message de plus de 750 caractères dans son propre fil de critique, cela ne devrait générer aucun point.

C’est l’auteur de l’histoire qui décide. Il peut déterminer quand il a reçu suffisamment de retours sur son histoire.

Oui, le fichier est l’histoire (un document Word, un fichier RTF ou un autre format). Il existe un bouton que l’auteur peut appuyer à tout moment pour désactiver les téléchargements ultérieurs. Il peut l’appuyer avant que quiconque n’ait téléchargé le fichier, s’il change d’avis sur le fait de le partager.

Plutôt que d’essayer de le résumer, voici l’instruction SQL :

CASE WHEN WordCount < 1001 THEN 0.5 
 WHEN WordCount BETWEEN 5000 AND 9999 THEN 1.5 
 ELSE Round([WordCount] / 10000, 0) + 1 END

En pratique, les gens téléchargent rarement une histoire de plus de 10 000 mots.

3 « J'aime »

Comme Richard l’a dit, tout est possible avec un plugin. Ce que vous proposez représente probablement quelques heures de travail. Il pourrait y avoir des raccourcis à prendre pour respecter votre budget. Des badges personnalisés pourraient également aider. Vous pourriez certainement faire développer le nouveau plugin, puis importer les données lors de la migration.

Ne confondez pas la duplication de l’ancien système avec la création du meilleur système.

Vous pourriez utiliser le plugin résolu ou les balises pour désactiver le temps de révision.

Si l’ensemble de votre système est sur mesure, un importeur personnalisé coûte généralement environ 1 500 $, et il vous faudrait probablement presque autant pour le plugin nécessaire.

6 « J'aime »

Vous pourriez également arrêter de distinguer les crédits de l’histoire et ceux de la critique, et simplement réutiliser la fonctionnalité « J’aime » de Discourse (partage de cœurs) pour partager les crédits. Cela rendrait la migration et la mise en œuvre plutôt simples. Mais je pourrais manquer l’avantage de séparer les crédits ?

2 « J'aime »

L’idée est que vous rendiez à la communauté. Si d’autres lisent votre travail et vous donnent des retours pour l’améliorer, vous devriez également lire le travail des autres et leur donner des retours. Ce serait idéal si cela pouvait être suivi grâce à une fonctionnalité intégrée de Discourse, mais je ne vois pas comment.

3 « J'aime »

Vous pouvez exécuter des requêtes plus détaillées sur les likes reçus par les utilisateurs. Par exemple, vous pouvez distinguer les likes obtenus pour la publication d’histoires de ceux obtenus pour le partage de commentaires en interrogeant les likes sur les publications initiales et les publications ultérieures dans une catégorie d’histoires.

Vous pouvez ensuite concevoir des badges (ainsi que des titres d’utilisateur et des flairs) qui seront attribués pour atteindre certains nombres.

2 « J'aime »

Le problème, tel que je le comprends, est que les likes servent à montrer la popularité d’un message, alors que le système que je tente de migrer vise à vérifier si les utilisateurs ont atteint un niveau d’effort de base. Ainsi, s’il était possible qu’un message quelconque dans un fil d’histoire, contenant plus d’un certain nombre de caractères et qui n’est pas écrit par l’auteur de l’histoire, soit automatiquement liké une seule fois, cela conviendrait à notre système. Mais cela ne semble pas correspondre au fonctionnement des likes.

2 « J'aime »