[Payé] Plateforme communautaire Discoure - développement pour la v2

Bonjour — Je cherche un développeur Discourse expérimenté pour m’aider à préparer le lancement de ma plateforme communautaire. L’instance est déjà en ligne et dispose d’un thème personnalisé (core.scss, nav.scss, nav.js), il ne s’agit donc pas d’une construction à partir de zéro, mais plutôt de peaufiner les détails.

Note : les fichiers de thème existants concernent uniquement la couche de design (couleurs, polices, injection de navigation) et non des remplacements de modèles structurels. Aucun modèle Discourse de base n’a été modifié.

Je suis ouvert aux propositions à prix fixe, avec un paiement échelonné par jalons.

Voici ce dont j’ai besoin :

Le thème existant Il existe déjà un thème complet personnalisé avec mode clair/sombre, une navigation personnalisée qui masque l’en-tête par défaut de Discourse, et des couleurs de marque. La navigation doit s’afficher de manière cohérente sur tous les types de pages, y compris le profil des membres, et je besoin de quelqu’un pour auditer et corriger tout ce qui retombe sur les paramètres par défaut de Discourse. Le logo doit également être remplacé (fourni).

Page portail membre Je souhaite une page de profil personnalisée affichant le type de membre (Propriétaire, Membre ou Concessionnaire), son véhicule, un badge de statut vérifié et un sélecteur de langue. Les liens vers les ressources affichés sur la page doivent être conditionnels : par exemple, les propriétaires voient des outils différents des membres potentiels. Je fournirai une maquette interactive complète montrant les états clair et sombre ainsi que toutes les vues par type de membre.

La page doit également comporter un panneau « Comptes connectés » permettant aux membres de s’authentifier via Discord et Facebook OAuth. Après une authentification réussie, leur ID de plateforme et leur nom d’utilisateur sont renvoyés vers Supabase (identifiants et schéma fournis). J’ai déjà configuré les applications OAuth ; je dois simplement intégrer le composant côté Discourse et la logique de rappel de manière propre.

Langue et traduction La communauté est internationale, c’est donc un point crucial. Lorsqu’un membre sélectionne sa langue préférée (anglais, thaï, tchèque, néerlandais, allemand, anglais de Nouvelle-Zélande), toute l’interface Discourse doit basculer : menus, notifications, messages système, tout. Lors de la première visite, détecter son pays via l’adresse IP et lui demander de confirmer. J’ai également besoin que le plugin Discourse Translator soit installé et configuré avec une clé API DeepL (fournie), avec des boutons de traduction par publication actifs et des traductions mises en cache par ID de publication pour réduire les coûts API. Les pages statiques, y compris le portail membre (qui doit également être accessible via les boutons natifs de Discourse), doivent s’afficher dans la langue sélectionnée.

Niveaux de confiance, groupes et intégration Tally La structure des catégories sera en place avant votre démarrage. Ce dont j’ai besoin, c’est d’une configuration correcte des niveaux de confiance et des groupes, afin que les types de membres (Propriétaire, Membre, Concessionnaire) soient attribués lors de l’inscription, que les groupes correspondent aux bonnes permissions de catégorie, et que toute modification soit synchronisée avec Supabase. J’ai également besoin que discourse_user_id et discourse_username soient exposés en tant que paramètres d’URL pour les formulaires Tally intégrés, afin qu’ils puissent être capturés comme champs de préremplissage masqués.

Porte de vérification DVLA La catégorie réservée aux propriétaires doit être protégée par une vérification du véhicule. Lorsqu’un membre non vérifié tente d’y accéder, il voit une invite pour entrer son numéro d’immatriculation. Je construis moi-même le point de terminaison de vérification (Cloud Run, REST — entièrement documenté et fourni), votre périmètre se limitant donc uniquement au composant de thème Discourse : l’écran d’accueil protégé, le formulaire de saisie du VRM, et les états de succès/erreur. J’ai besoin de quelqu’un qui soit à l’aise avec le JavaScript des composants de thème basés sur Ember de Discourse pour cette partie en particulier.

Sujet XCombo Un dernier composant : un seul sujet Discourse servant à la fois de référence et d’espace de discussion pour un jeu de données que je maintiens. Le premier message est épinglé et contient un widget de recherche intégré (filtres en temps réel à partir d’une table Supabase), un bouton « Envoyez-moi la liste complète » (appelle un point de terminaison fourni, Resend envoie un PDF à l’adresse enregistrée du membre) et un lien ancré vers le fil de discussion ouvert ci-dessous. Là encore, la logique de recherche, le point de terminaison et l’intégration Resend sont tous fournis ; vous ne devez connecter que le conteneur côté Discourse. Cela vous donne également une idée du flux complet des membres : portail → lien de ressource → sujet → recherche → email.

Je fournirai tous les actifs, les identifiants, l’accès à Supabase et la documentation lors de l’attribution. Je suis disponible pour en discuter si nécessaire. Veuillez me faire part de votre expérience avec les intégrations OAuth dans Discourse spécifiquement, et si vous avez déjà travaillé avec des composants de thème basés sur Ember.

Merci beaucoup

Édité pour plus de clarté

1 « J'aime »

Bonjour @larrybmb

Ce n’est pas vraiment un petit projet et cette configuration de remplacement d’en-tête semble fragile d’après la description. Vous voudrez vous assurer que votre forum puisse être mis à jour avec les dernières versions de Discourse (avec un minimum d’effort ou de corrections).

Donc, est-ce 250 $ par paiement ?

4 « J'aime »

Par jalon ou par heure ?

3 « J'aime »

Bonjour Lilly, merci pour votre réponse rapide. Pour clarifier : 250 $ était le point de départ du budget total du projet, mais je suis ouvert à être flexible sur le budget pour la bonne personne. La portée est assez bien définie, donc je suis ouvert à une proposition à prix fixe avec un échéancier de paiement réparti sur les jalons si nécessaire.

Concernant votre remarque sur le remplacement de l’en-tête : je ne demande aucun travail structurel. Le thème actuel ne remplace aucun modèle de base de Discourse. Il s’agit d’un composant de thème qui injecte une barre de navigation personnalisée via JavaScript, en se connectant à discourse:ready et aux événements de changement de page. Je peux confirmer que cela fonctionne et a résisté aux deux dernières mises à jour de Discourse. La demande est simplement de confirmer qu’il s’affiche correctement sur tous les types de pages et de corriger les éventuels écarts. Cela devrait être sûr à mettre à jour tel quel, mais je suis ouvert à ce que cela soit examiné dans le cadre du jalonnement M1.

J’espère que cela aide ?

1 « J'aime »

Bonjour Richard, merci pour votre réponse rapide. Pour préciser : 250 $ était le point de départ pour le budget total du projet, mais je suis ouvert à une certaine flexibilité budgétaire pour la bonne personne. La portée est assez bien définie, donc je suis ouvert à une proposition à prix fixe avec un échéancier de paiement réparti sur les jalons si nécessaire.

J’espère que cela répond à vos questions ?

C’est un travail d’au moins 2 500 , mais probablement le double. Il faut probablement 500 rien que pour déterminer ce que vous voulez que votre thème actuel fasse et le réécrire selon les normes de Discourse.

Bonne chance.

4 « J'aime »

Bonjour Jay, pour plus de clarté, je ne demande pas une réécriture d’un thème existant. Je suis plutôt satisfait de mes fichiers de thème actuels (ils ressemblent davantage à des fichiers de conception qu’à de véritables modifications de thème et seront fournis à titre de référence). Je suis certain qu’ils tiendront la route, mais la demande principale concerne le développement de la page de profil des membres et des flux associés. La partie thème consistait davantage à « jeter un coup d’œil rapide, identifier les lacunes de l’interface utilisateur et donner un retour » — pas du tout une réécriture.

Je comprends que le budget de départ puisse sembler faible pour beaucoup ; il était destiné à servir de point de départ pour la négociation. Je suis ravi de partager la spécification complète, avec les détails techniques et les fichiers, avec toute personne intéressée. J’ai essayé de le mentionner dans le message.

Merci beaucoup à tous pour vos commentaires, ils sont très appréciés. J’ai modifié mon message en tenant compte de vos remarques et pour apporter plus de clarté.

Plus précisément :

les fichiers du thème existant concernent uniquement la couche de design (couleurs, polices, injection de navigation) et non des remplacements structurels de modèles. Aucun modèle central de Discourse n’a été modifié. Je ne demande pas de modifications structurelles, mais plutôt un coup d’œil rapide pour identifier d’éventuelles lacunes au niveau de l’interface utilisateur et recevoir vos retours.

Ma demande principale porte sur le développement de la page de profil des membres et des flux associés. Je suis ouvert aux propositions à prix fixe de la part des parties intéressées, en reconnaissant que le point de départ proposé précédemment était peut-être trop bas ; c’est pourquoi je l’ai retiré.

Sans un périmètre de travail clair, c’est un peu trop vague pour proposer un prix fixe. Cependant, en lisant les commentaires, j’estimerais le projet dans une fourchette de 5 000 à 8 000 minimum. Peut-être moins si nous pouvons nous mettre d'accord sur un cahier des charges, mais cela reste nettement supérieur à votre offre de 250 . Mes coordonnées figurent dans ma biographie si vous souhaitez en discuter davantage.

2 « J'aime »

Bonjour @larrybmb, je vous ai envoyé un MP contenant une analyse détaillée de la faisabilité ainsi que quelques questions de clarification concernant la portée et les hypothèses de mise en œuvre. Je suis disponible pour en discuter davantage une fois que vous l’aurez examiné.

1 « J'aime »

Pour être clair, je suggère que core.scss, nav.scss et nav.js ne sont pas des noms de fichiers que l’on s’attendrait à trouver dans un thème ou un composant de thème Discourse. Par conséquent, il est très probable que ce que vous avez fait soit difficile à maintenir ou incompatible avec les autres fonctionnalités que vous demandez. Affirmer que « Aucun modèle Discourse n’a été modifié » suggère que vous n’avez pas suivi les normes de programmation de Discourse.

2 « J'aime »

Merci Jay, c’est un retour vraiment utile. Les fichiers ont été créés par un prestataire et, pour être honnête, je ne sais pas s’ils ont correctement respecté les conventions de thème de Discourse. C’est en partie pourquoi je souhaite qu’une personne expérimentée les examine. Si une restructuration dans le format de composant de thème approprié s’avère nécessaire, je voudrais que cela soit signalé et évalué séparément — pas nécessairement réalisé dans le cadre de cette mission, car je comprends que cela représente un effort supplémentaire.

Pour préciser, les fichiers d’implémentation m’ont été fournis et je les ai ajoutés via les onglets En-tête, JS et CSS du panneau d’administration — donc non, je suppose qu’en réalité, ce n’est pas vraiment un composant de thème structuré.

Je vous remercie pour ce retour.

1 « J'aime »

Mais vous ne voulez pas construire sur une fondation défectueuse.

Si cela constituait la fin du travail et que vous étiez un amateur, ce serait probablement acceptable.

1 « J'aime »

Je ne dis pas que c’est le cas ici, mais j’entends de plus en plus de témoignages de développeurs appelés à développer à partir ou à réparer du code « vibe » bâclé par de soi-disant développeurs qui ne connaissent probablement pas grand-chose au code. Quoi qu’il en soit, je serais prudent à ce sujet.

3 « J'aime »

@pfaffman

Merci pour le conseil — je serais ravi de partager les fichiers en privé si vous souhaitez jeter un coup d’œil. Je ne suis pas un amateur, mais une start-up dans une niche automobile : mes pipelines backend sont solides et ont fait l’objet d’une revue architecturale et de sécurité. Ils sont hébergés sur GCP et l’instance Discourse est hébergée dans le cloud chez Hostinger.

Je ne dirais pas que je suis un développeur expert, mais je me suis beaucoup formé seul au cours des 10 dernières années, d’où ma demande d’aide ici et ma capacité à savoir quand externaliser.

Je me parle à moi-même un instant, si vous le permettez. Ai-je réellement besoin d’un OAuth personnalisé pour mon cas d’usage ?

Les comptes connectés natifs, s’ils sont intégrés à la page de profil des membres, fonctionneraient — à condition d’ajuster les textes ? (Par exemple : je veux savoir si Joe Bloggs dans ma communauté est le même Joe Bloggs qui interagit avec ma communauté Facebook (j’extrais l’identifiant Facebook via l’application pour développeurs de Facebook). Si c’est le même identifiant utilisé (ce qui me semble être le cas ?), cela pourrait fonctionner avec une personnalisation de la marque autour (pour que cela ressemble à une partie intégrée du site ?)

Je serais ravi de recueillir vos avis.