Freecodecamp: Remplacer le projet Camper Leaderboard par un projet fonctionnellement similaire basé sur le forum

Créé le 5 juin 2018  ·  45Commentaires  ·  Source: freeCodeCamp/freeCodeCamp

Décrivez votre problème et - si possible - comment le reproduire

Les API de

Ajouter un lien vers la page avec le problème

https://fcctop100.herokuapp.com/api/fccusers/top/recent
https://fcctop100.herokuapp.com/api/fccusers/top/alltime

Parlez-nous de votre navigateur et de votre système d'exploitation

  • Nom du navigateur: Chrome
  • Version du navigateur: 67
  • Système d'exploitation: Windows 7

Si possible, ajoutez une capture d'écran ici

help wanted learn projects-frontend

Commentaire le plus utile

@ Em-Ant, merci pour la réponse rapide! Votre point de terminaison API Glitch fonctionne parfaitement, je vais donc simplement mettre à jour la description du projet avec les user stories ci-dessus et vos liens.

Tous les 45 commentaires

@tchaffee @tbushman @ Em-Ant pouvons-nous vérifier et avoir une alternative à cela sur Glitch?

@raisedadead Je ne sais pas qui a développé ces API et s'il existe une alternative. Avant mon temps. Peut-être que c'est quelque chose que vous voudriez héberger sur les domaines FCC à l'avenir afin qu'il soit toujours disponible et non sous le contrôle d'un tiers? Faites-moi savoir s'il y a autre chose que je peux aider ici.

Avons-nous le code source de cette application? Je me souviens que cela fonctionne périodiquement en grattant le gitter ou les pages de profil fcc. Je ne sais pas si ce serait possible en cas de pépin. Pourquoi freecodecamp n'expose-t-il pas un point de terminaison d'API avec le classement des brownies?

Avons-nous le code source de cette application?

https://github.com/roelver/fcctop100

Si quelqu'un peut me faire une analyse de base, si le code est assez bon et a besoin d'un peu de bricolage, je vais l'introduire dans notre organisation et nous pourrions le mettre sur Glitch?

Pourquoi freecodecamp n'expose-t-il pas un point de terminaison d'API avec le classement des brownies?

Cela ne fera que stresser les 800 concurrents actuels que nous obtenons aux heures de pointe.

J'adorerais remplacer le défi. @QuincyLarson avez-vous quelque chose en tête?

@raisedadead Le projet de classement n'est plus un projet obligatoire - nous l'avons déplacé vers la préparation d'entrevue. Pourtant, ce serait bien si quelqu'un pouvait trouver comment résoudre ce problème. Je ne pense pas que la pression exercée par les applications de classement serait si grande - nous avions des milliers de ces classements dans le passé et ils ne semblaient pas avoir un impact trop important.

Nous devrions cependant attendre que notre nouvelle API ouverte soit active avant de tenter de résoudre ce problème.

J'ai regardé le code et je sais comment cela fonctionne. Il avait l'habitude de gratter une salle de gitter pour obtenir les noms d'utilisateur du campeur, puis il obtenait les informations sur chaque campeur accédant à sa page de profil freecodecamp. Pour le moment, cela ne fonctionne pas car cette salle de gitter s'est fermée et la clé API Gitter de l'auteur (codée en dur dans la source ...) a expiré / bloqué.

S'il y avait un moyen d'accéder périodiquement (une fois par jour ou par semaine?) À certaines informations sur le classement directement depuis freecodecamp, il serait beaucoup plus facile de créer un remplaçant pour cela en glitch.

Salut @QuincyLarson Je pense que c'est toujours sur la liste des certificats hérités:

image

@raisedadead Bon point - j'ai oublié que c'était sur cette liste. Nous devons absolument remettre ce projet en marche.

@ Em-Ant Merci d'avoir décrit le problème. Voici ce que je propose de faire - nous basculons ce projet pour se concentrer plutôt sur le forum.

Sans clé API, on pense que les gens pourraient faire est d'afficher les fils récemment actifs à l'aide de l'API de notre forum:

https://forum.freecodecamp.org/latest.json

Nous aurions besoin de créer une toute nouvelle démo pour cela et de proposer de nouvelles user stories, mais ce serait fonctionnellement similaire à l'ancien projet de classement.

Quelqu'un serait-il intéressé à s'attaquer à cela?

@QuincyLarson J'ai commencé à travailler sur une éventuelle démo de remplacement sur laquelle je pourrais ensuite rédiger des user stories, bien qu'il semble que l'en-tête CORS ne soit peut-être pas activé pour pouvoir récupérer ce flux d'API?

@ jgibson02 Avez-vous fait des progrès sur votre éventuelle démo de remplacement?

Je suis toujours en faveur de changer le sujet de ce projet en quelque chose avec une API ouverte, comme forum.freecodecamp.org. Mais si vous avez fait des progrès, je serais intéressé à le voir :)

J'avais des problèmes pour récupérer les données de l'API https://forum.freecodecamp.org/latest.json lors d'une demande à partir de CodePen. Il semble que CORS devrait être activé sur cette API pour que les campeurs puissent l'utiliser là-bas. Pour l'instant, je vais continuer à travailler sur une démo en téléchargeant une copie du JSON.

@Bouncey @raisedadead Quelles seraient les considérations de sécurité pour activer CORS sur l'API de notre forum?

Il semble que ce soit une solution relativement simple sur Discourse si nous décidons que nous voulons aller de l'avant: https://meta.discourse.org/t/correct-cors-enabling-steps/55697

Et tant que vous êtes en mesure de l'étendre aux requêtes GET et que vous êtes sélectif sur les points de terminaison exposés.

Voici une démo que j'ai créée à l'aide d'une copie téléchargée hors ligne du JSON. Pensez-vous que cela correspond à ce que vous aimeriez voir pour une user story globale?
Si tel est le cas, je peux commencer à rédiger des user stories et des instructions détaillées.

Voici quelques instructions et user stories possibles:

Projets à emporter - Créer une page d'accueil du forum FreeCodeCamp

  • Objectif: créer une application CodePen.io fonctionnellement similaire à celle-ci: https://codepen.io/jgibson02/full/BVvbRX/.
  • Suivez les user stories ci-dessous. Utilisez les bibliothèques ou API dont vous avez besoin. Donnez-lui votre propre style personnel.
  • User Story: Je peux voir une liste des messages les plus récents sur les forums freeCodeCamp.
  • User Story: Pour chaque sujet, je peux voir le titre et une liste de liens vers les utilisateurs qui y ont récemment publié.
  • User Story: Je peux voir le nombre de réponses et de vues que chaque sujet a eu, et un horodatage de la dernière fois que le sujet était actif.
  • Astuce: pour obtenir les 30 derniers messages du forum: https://forum.freecodecamp.org/latest.json.
  • N'oubliez pas d'utiliser Read-Search-Ask si vous êtes bloqué.
  • Lorsque vous avez terminé, cliquez sur le bouton «J'ai terminé ce défi» et ajoutez un lien vers votre CodePen.
  • Vous pouvez obtenir des commentaires sur votre projet en le partageant avec vos amis sur Facebook.

@ jgibson02 Génial! Merci d'avoir aidé à créer ces excellentes histoires d'utilisateurs. Je travaillerai avec @Bouncey sur le problème

@QuincyLarson y a-t-il eu des développements sur la question CORS?

Salut,
J'ai déjà créé un LeaderBoard qui est maintenant cassé en raison du problème de l'API.
J'ai aimé les User Stories originales:
User Story: Je peux voir un tableau des campeurs freeCodeCamp qui ont gagné le plus de points brownie au cours des 30 derniers jours.
User Story: Je peux voir combien de points brownie ils ont gagnés au cours des 30 derniers jours et combien ils en ont gagné au total.
User Story: Je peux basculer entre le tri de la liste en fonction du nombre de points brownie qu'ils ont gagnés au cours des 30 derniers jours et du nombre total de points brownie qu'ils ont gagnés.

Il n'y a plus de points brownie, mais il y a des likes. Et ce n'est plus vraiment décomposé en mois. Il semble que la plupart des jours soient 288.

Au lieu de créer un lien vers le dernier message, pouvons-nous rester concentrés sur le nom du campeur et sur le nombre de J'aime que cette personne a reçus (au lieu de points brownie) sur une période de 30 jours et à tout moment?

https://www.freecodecamp.org/forum/directory_items.json?period=all&order=likes_received.json

Quelqu'un travaille-t-il sur la correction de cette API pour le classement Camper?

S'il n'y a pas de meilleure solution, nous pouvons contourner le problème des cors en construisant un proxy sur glitch (je suis assez expert en la matière ...) Je peux étendre la demande pour ne m'autoriser que moi et les méthodes et enpoints si nécessaire. Cela devrait être assez facile à construire. Faites-moi savoir si vous voulez que je le fasse.

@ Em-Ant Oui - cela ressemble à une belle solution de contournement.

Veuillez nous tenir au courant et nous faire savoir si nous pouvons faire quelque chose pour vous aider.

point de terminaison de l'API: https://buttercup-island.glitch.me/latest
projet de test ( dérivé de https://codepen.io/Em-Ant/pen/modqWP

Si vous le souhaitez, nous pouvons l'exposer sur un domaine personnalisé que vous possédez (par exemple un sous-domaine freecodecamp).

Faites-moi savoir si tout va bien et si vous avez besoin de quelque chose d'autre. Si c'est une bonne solution, je donnerai l'autorisation de modification à camperbot, pour transférer la propriété à freecodecamp.

Puisque @ Em-Ant a créé ce nouveau point de terminaison d'API pour les données forum , je suppose qu'il est temps de changer les user stories comme suggéré ici par @ jgibson02 ?

Il y a une erreur sur le projet de test à la ligne 67: Uncaught ReferenceError: styled is not defined
à /Em-Ant/pen/pen.js:67

Je suis d'accord avec @nuhman sur l'utilisation des user stories suggérées.

Correction de l'erreur ReferenceError (sur mon stylo d'origine), mais que pensez-vous que nous devrions changer dans les user stories?

Bonjour merci.
Il semble que nous ne trions pas, cela revient par sujet le plus récent ...
Cela fonctionne très bien pour la page Forum.

J'ai juste travaillé si dur sur le Leader Board et c'est dommage de ne pas pouvoir le montrer. Même sans les Brownies, j'aimerais voir qui a publié le plus récemment - et qui a publié le plus de fois - avec des liens vers ces articles - et peut-être le profil de l'utilisateur.

J'aime voir combien de fois le sujet a été consulté.

J'ai une erreur avec Cross-Origin Read Blocking (CORB) lorsque j'essaie de récupérer des données également lorsque j'utilise le lien https://www.freecodecamp.org/forum/latest.json . _ {mode: 'no-cors'} _ n'est pas efficace.
Existe-t-il une solution alternative pour récupérer les données pour Leaderboard (pas pour les coder en dur)?

Je n'ai pas eu de problème avec ça. Quel navigateur utilisez-vous?

Je n'ai pas eu de problème avec ça. Quel navigateur utilisez-vous?

Google Chrome
Version 73.0.3683.86 (version officielle) (64 bits)

C'est nouveau pour moi. Mais j'ai trouvé cette suggestion comme solution possible ...

https://stackoverflow.com/questions/54701399/how-to-fix-cross-origin-read-blocking-corb-blocked-cross-origin-response-with

Je vous remercie. Mais si je désactive simplement la politique de sécurité dans mon navigateur, cela ne résout pas le problème pour les autres navigateurs / utilisateurs. J'ai vu les solutions avec la configuration des en-têtes, mais je ne peux pas l'implémenter chez Codepen (où se trouve mon classement), car il n'y a que le côté client.

Je suis désolé. Je ne l'ai pas assez vu pour le comprendre. J'ai compris que CodePen a résolu d'éventuels problèmes CORS, mais CORB est nouveau pour moi.

Êtes-vous capable d'accéder au point final de l'API? Ou vient-il uniquement du LeaderBoard?

Par lien direct, je vois les données json. Le problème survient lorsque j'essaye de récupérer json sur freecodecamp.org sur codepen.

J'ai vérifié mes autres stylos sur codepen, qui récupèrent les données d'autres sites (il y a rawgit.com, glitch.com, wikipedia.org, ipinfo.io et github.com), et ils fonctionnent correctement. Donc, le problème est exactement avec freecodecamp-json. Cela dépend peut-être des paramètres du codepen, mais je ne trouve pas encore de terrain d'entente avec leur support.

Aie. @ jgibson02 Avez-vous déjà vu cela se produire?
Si oui, connaissez-vous la solution de contournement?

@ColorizeMySky Avez-vous déjà essayé le point final de @ Em-Ant?
https://buttercup-island.glitch.me/latest

Peut-être que cela fonctionnera?

https://buttercup-island.glitch.me/latest

Peut-être que cela fonctionnera?

Oui, merci beaucoup. Il récupère le json avec les données du forum de glitch.

J'ai mis à jour mon CodePen pour utiliser l'API @ Em-Ant à https://buttercup-island.glitch.me/latest pour éviter le problème CORS.
@QuincyLarson êtes-vous d'accord avec l'utilisation de glitch.me comme moyen de rediriger vers le domaine de freecodecamp? Si tel est le cas, cela serait peut-être prêt à être réintégré dans le programme.

@scissorsneedfoodtoo pouvez-vous prendre cela? Tout ce dont nous avons besoin est de créer un projet de pépin comme celui mentionné ci-dessus comme solution de contournement et de mettre à jour la graine de défi pour l'utiliser dans les instructions?

@raisedadead , bien sûr, je vais y aller

Vous n'avez pas besoin de faire un autre projet de pépin si vous ne le souhaitez pas. Cette
l'un d'entre eux a déjà partagé la propriété entre moi et camperbot, vous pouvez donc modifier
il.

Il gio 4 avr.2019, 12:13 Kristofer Koishigawa [email protected] ha
scritto:

@raisedadead https://github.com/raisedadead , bien sûr, je vais y aller

-
Vous recevez cela parce que vous avez été mentionné.
Répondez directement à cet e-mail, affichez-le sur GitHub
https://github.com/freeCodeCamp/freeCodeCamp/issues/17450#issuecomment-479836966 ,
ou couper le fil
https://github.com/notifications/unsubscribe-auth/AMWwVve4x2DPL4_ApR55oakeZHbBGlGGks5vddAxgaJpZM4UbaVj
.

@ Em-Ant, merci pour la réponse rapide! Votre point de terminaison API Glitch fonctionne parfaitement, je vais donc simplement mettre à jour la description du projet avec les user stories ci-dessus et vos liens.

@ Em-Ant, à votre API glitch, vous ne voyez pas comment obtenir le lien vers le sujet approprié. C'est possible?

@ColorizeMySky my glitch api https://www.freecodecamp.org/forum/latest.json afin que vous obteniez exactement la même réponse. Il ajoute uniquement les en-têtes CORS nécessaires à la réponse d'origine.

J'ai jeté un coup d'œil à la structure des réponses et je vois 2 sections: l'une est «utilisateurs», l'autre est «sujets». Vous pouvez obtenir l'url du message en ajoutant l'url de base du forum, et la propriété "slug" d'une entrée de sujet.

Merci à tous pour votre aide. J'ai réussi à terminer ce projet avec une nouvelle API, et la nouvelle API est bien pour remplacer l'ancienne tâche. Je peux aller chercher. trier, ajouter des informations et des images supplémentaires, un lien, etc. https://codepen.io/Colorize_my_sky/full/aMxRRq

Félicitations @ColorizeMySky ! Cela a l'air génial et est très réactif.

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

imhuyqn picture imhuyqn  ·  3Commentaires

trashtalka3000 picture trashtalka3000  ·  3Commentaires

vaibsharma picture vaibsharma  ·  3Commentaires

itsmikewest picture itsmikewest  ·  3Commentaires

robwelan picture robwelan  ·  3Commentaires