Freecodecamp: Reemplazar el proyecto Camper Leaderboard con un proyecto funcionalmente similar basado en el foro

Creado en 5 jun. 2018  ·  45Comentarios  ·  Fuente: freeCodeCamp/freeCodeCamp

Describe tu problema y, si es posible, cómo reproducirlo.

Las API de la

Agrega un enlace a la página con el problema

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

Cuéntanos sobre tu navegador y sistema operativo.

  • Nombre del navegador: Chrome
  • Versión del navegador: 67
  • Sistema operativo: Windows 7

Si es posible, agregue una captura de pantalla aquí

help wanted learn projects-frontend

Comentario más útil

@ Em-Ant, ¡gracias por la rápida respuesta! El punto final de la API de Glitch funciona perfectamente, así que actualizaré la descripción del proyecto con las historias de usuario anteriores y sus enlaces.

Todos 45 comentarios

@tchaffee @tbushman @ Em-Ant ¿podemos verificar y tener una alternativa a esto en Glitch?

@raisedadead No sé quién desarrolló esas API y si hay una alternativa. Antes de mi tiempo. ¿Quizás esto es algo que le gustaría alojar en los dominios de FCC en el futuro para que siempre esté disponible y no bajo el control de un tercero? Hágame saber si hay algo más en lo que pueda ayudar aquí.

¿Tenemos el código fuente de esa aplicación? Recuerdo que funciona periódicamente raspando gitter, o las páginas de perfil de la FCC. No sé si sería posible en caso de falla. ¿Por qué freecodecamp no expone un punto final de API con la clasificación de brownies?

¿Tenemos el código fuente de esa aplicación?

https://github.com/roelver/fcctop100

Si alguien puede conseguirme un análisis básico, si el código es lo suficientemente bueno y necesita algunos retoques, lo introduciré en nuestra organización y podríamos ponerlo en Glitch.

¿Por qué freecodecamp no expone un punto final de API con la clasificación de brownies?

Solo enfatizará los 800+ concurrentes actuales que obtenemos en las horas pico.

Me encantaría reemplazar el desafío. @QuincyLarson , ¿tienes algo en mente?

@raisedadead El proyecto de la tabla de clasificación ya no es un proyecto obligatorio; lo hemos trasladado a la Preparación para entrevistas. Aún así, sería bueno si alguien pudiera descubrir cómo solucionar este problema. No creo que la tensión de las aplicaciones de tablas de clasificación sea tan grande; tuvimos miles de estas tablas de clasificación en el pasado y no parecieron tener un impacto demasiado grande.

Sin embargo, deberíamos esperar hasta que nuestra nueva API abierta esté activa antes de intentar solucionar este problema.

Eché un vistazo al código y sé cómo funciona. Solía ​​raspar una sala de gitter para obtener los nombres de usuario del campista, y luego obtenía la información sobre cada campista que accede a su página de perfil de freecodecamp. Por el momento, no funciona porque la sala de gitter se cerró y la clave de la API de gitter del autor (codificada en la fuente ...) caducó / bloqueó.

Si hubiera una manera de acceder periódicamente (¿una vez al día o a la semana?) A alguna información sobre el ranking directamente desde freecodecamp, sería mucho más fácil construir un reemplazo para este en glitch.

Hola @QuincyLarson , creo que todavía está en la lista de

image

@raisedadead Buen punto: olvidé que esto estaba en esa lista. Definitivamente necesitamos que este proyecto funcione nuevamente.

@ Em-Ant Gracias por describir el problema. Esto es lo que propongo que hagamos: cambiamos este proyecto para centrarnos en el foro.

Sin una clave API, una cosa que la gente podría hacer es mostrar los hilos activos recientemente usando la API de nuestro foro:

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

Necesitaríamos crear una demostración completamente nueva para esto y crear nuevas historias de usuarios, pero funcionalmente sería similar al antiguo proyecto de clasificación.

¿Alguien estaría interesado en abordar esto?

@QuincyLarson Comencé a trabajar en una posible demostración de reemplazo en la que luego podría escribir algunas historias de usuarios, aunque parece que el encabezado CORS podría no estar habilitado para poder obtener esa fuente de API.

@ jgibson02 ¿Ha realizado algún progreso en su posible demostración de reemplazo?

Todavía estoy a favor de cambiar el tema de este proyecto a algo con una API abierta, como forum.freecodecamp.org. Pero si ha progresado en esto, me interesaría verlo :)

Tenía problemas para recuperar datos de la API https://forum.freecodecamp.org/latest.json al realizar una solicitud de CodePen. Parece que CORS debería estar habilitado en esa API para que los campistas puedan usarlo allí. Por ahora seguiré trabajando en una demostración descargando una copia del JSON.

@Bouncey @raisedadead ¿cuáles serían las consideraciones de seguridad para habilitar CORS en la API de nuestro foro?

Parece que esta es una solución relativamente simple en Discourse si decidimos que queremos seguir adelante con ella: https://meta.discourse.org/t/correct-cors-enabling-steps/55697

Y siempre que pueda ajustarlo a las solicitudes GET y sea selectivo con los puntos finales expuestos.

Aquí hay una demostración que inventé usando una copia descargada sin conexión del JSON. ¿Crees que encaja perfectamente con lo que te gustaría ver para una historia de usuario general?
Si es así, puedo comenzar a escribir algunas historias de usuario e instrucciones desglosadas.

Aquí hay algunas posibles instrucciones e historias de usuarios:

Proyectos para llevar a casa - Cree una página de inicio del foro FreeCodeCamp

  • Objetivo: Cree una aplicación CodePen.io que sea funcionalmente similar a esta: https://codepen.io/jgibson02/full/BVvbRX/.
  • Cumplir con las siguientes historias de usuarios. Utilice las bibliotecas o API que necesite. Dale tu propio estilo personal.
  • Historia de usuario: Puedo ver una lista de las publicaciones más recientes en los foros de freeCodeCamp.
  • Historia de usuario: para cada tema, puedo ver el título y una lista de enlaces a los usuarios que han publicado en él recientemente.
  • Historia de usuario: puedo ver la cantidad de respuestas y vistas que ha tenido cada tema, y ​​una marca de tiempo de la última vez que el tema estuvo activo.
  • Sugerencia: para obtener las 30 publicaciones más recientes del foro: https://forum.freecodecamp.org/latest.json.
  • Recuerde usar Leer-Buscar-Preguntar si se queda atascado.
  • Cuando haya terminado, haga clic en el botón "He completado este desafío" e incluya un enlace a su CodePen.
  • Puede obtener comentarios sobre su proyecto compartiéndolo con sus amigos en Facebook.

@ jgibson02 ¡Impresionante! Gracias por ayudar a crear estas excelentes historias de usuarios. Trabajaré con @Bouncey en el problema de CORS.

@QuincyLarson, ¿ ha habido algún desarrollo en el tema CORS?

Hola,
Ya he creado un LeaderBoard que ahora está roto debido al problema de la API.
Me gustaron las historias de usuario originales:
Historia de usuario: Puedo ver una tabla de los campistas de freeCodeCamp que han ganado la mayor cantidad de puntos de brownie en los últimos 30 días.
Historia de usuario: Puedo ver cuántos puntos de brownie han ganado en los últimos 30 días y cuántos han ganado en total.
Historia del usuario: puedo alternar entre ordenar la lista por la cantidad de puntos de brownie que han ganado en los últimos 30 días y por la cantidad de puntos de brownie que han ganado en total.

Ya no hay puntos de brownie, pero hay me gusta. Y ya no se divide en mensuales. Parece que la mayoría de los días son 288.

En lugar de vincular a la publicación más reciente, ¿podemos concentrarnos en el nombre del campista y en cuántos Me gusta recibió esa persona (en lugar de puntos brownie) durante un período de 30 días y todo el tiempo?

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

¿Alguien está trabajando para arreglar esta api para la tabla de clasificación de campistas?

Si no hay una solución mejor, podemos evitar el problema de cors construyendo un proxy en caso de falla (soy bastante experto en esto ...) Puedo limitar la solicitud para que solo me permita y métodos y enpoints si es necesario. Debería ser bastante fácil de construir. Avísame si quieres que lo haga.

@ Em-Ant Sí, parece una buena solución.

Manténganos informados y avísenos si podemos hacer algo para ayudarlo.

punto final de la api: https://buttercup-island.glitch.me/latest
proyecto de prueba (bifurcado desde @ jgibson02 ): https://codepen.io/Em-Ant/pen/modqWP

Si lo desea, podemos exponerlo en un dominio personalizado de su propiedad (por ejemplo, un subdominio de freecodecamp).

Avísame si está bien y si necesitas algo más. Si esa es una buena solución, le daré permiso de edición a camperbot para transferir la propiedad a freecodecamp.

Desde @ Em-hormiga han hecho de este nuevo punto final de la API para los forum datos, supongo que es hora de cambiar las historias de usuario como se sugiere aquí por @ jgibson02?

Hay un error en el proyecto de prueba en la línea 67: Error de referencia no detectado: el estilo no está definido
en /Em-Ant/pen/pen.js:67

Estoy de acuerdo con @nuhman sobre el uso de las historias de usuario sugeridas.

Se corrigió ReferenceError (en mi bolígrafo original), aunque ¿qué crees que deberíamos cambiar en las historias de usuario?

Hola gracias.
Parece que no estamos ordenando, aparece por tema más reciente ...
Funciona muy bien para la página del foro.

Trabajé muy duro en la tabla de clasificación y es una pena no poder presumir. Incluso sin los Brownies, me encantaría ver quién publicó más recientemente, y quién ha publicado más veces, con enlaces a esas publicaciones, y quizás el perfil de usuario.

Me gusta ver cuántas veces se vio el tema.

Tengo un error con el bloqueo de lectura de origen cruzado (CORB) cuando intento recuperar datos también cuando uso el enlace https://www.freecodecamp.org/forum/latest.json . _ {modo: 'no-cors'} _ no es efectivo.
¿Existe alguna solución alternativa para obtener los datos de la tabla de clasificación (no para codificarlos)?

No tuve ningún problema con eso. ¿Qué navegador estás usando?

No tuve ningún problema con eso. ¿Qué navegador estás usando?

Google Chrome
Versión 73.0.3683.86 (compilación oficial) (64 bits)

Esto es nuevo para mi. Pero encontré esta sugerencia como una posible solución ...

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

Gracias. Pero si deshabilito la política de seguridad en mi navegador, no resuelve el problema para otros navegadores / usuarios. Vi las soluciones con la configuración de encabezados, pero no puedo implementarlo en Codepen (donde está mi tabla de clasificación), porque solo está el lado del cliente.

Lo siento. No lo he visto lo suficiente como para entenderlo. Entendí que CodePen resolvió posibles problemas de CORS, pero CORB es nuevo para mí.

¿Puede ir al punto final de la API real? ¿O solo proviene del LeaderBoard?

Por enlace directo veo el archivo json-data. El problema surge cuando trato de obtener json de freecodecamp.org en codepen.

Revisé mis otros bolígrafos en codepen, que obtienen los datos de otros sitios (hay rawgit.com, glitch.com, wikipedia.org, ipinfo.io y github.com), y funcionan correctamente. Entonces, el problema es exactamente con freecodecamp-json. Posiblemente depende de la configuración del codepen, pero todavía no encuentro un terreno común con su soporte.

Ay. @ jgibson02 ¿Has visto esto antes?
Si es así, ¿conoce la solución?

@ColorizeMySky ¿Has probado el punto final de @ Em-Ant antes?
https://buttercup-island.glitch.me/latest

¿Quizás esto funcione?

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

¿Quizás esto funcione?

Si, muchas gracias. Obtiene el json con datos del foro de glitch.

He actualizado mi CodePen para utilizar la API de @ Em-Ant en https://buttercup-island.glitch.me/latest para evitar el problema de CORS.
@QuincyLarson, ¿está de acuerdo con el uso de glitch.me como una forma de redirigir al dominio de freecodecamp? Si es así, tal vez esté listo para reintegrarse al plan de estudios.

Hola @scissorsneedfoodtoo, ¿puedes continuar con esto? ¿Todo lo que necesitamos es crear un proyecto de falla como el mencionado anteriormente como solución y actualizar la semilla del desafío para usarlo en las instrucciones?

@raisedadead , seguro, lo haré bien

No es necesario que hagas otro proyecto con fallos si no quieres. Ese
uno ya ha compartido la propiedad entre camperbot y yo, así que puedes editar
eso.

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

@raisedadead https://github.com/raisedadead , seguro, lo haré bien

-
Estás recibiendo esto porque te mencionaron.
Responda a este correo electrónico directamente, véalo en GitHub
https://github.com/freeCodeCamp/freeCodeCamp/issues/17450#issuecomment-479836966 ,
o silenciar el hilo
https://github.com/notifications/unsubscribe-auth/AMWwVve4x2DPL4_ApR55oakeZHbBGlGGks5vddAxgaJpZM4UbaVj
.

@ Em-Ant, ¡gracias por la rápida respuesta! El punto final de la API de Glitch funciona perfectamente, así que actualizaré la descripción del proyecto con las historias de usuario anteriores y sus enlaces.

@ Em-Ant, en su API de falla no veo cómo obtener el enlace al tema apropiado. ¿Es posible?

@ColorizeMySky mi api de falla envía la solicitud a https://www.freecodecamp.org/forum/latest.json para que obtenga exactamente la misma respuesta. Solo agrega los encabezados CORS necesarios a la respuesta original.

Eché un vistazo rápido a la estructura de respuesta y vi 2 secciones: una es "usuarios", la otra es "temas". Puede obtener la URL de la publicación agregando la URL base del foro y la propiedad "slug" de una entrada de tema.

Gracias a todos por la ayuda. Me las arreglé para terminar este proyecto con una nueva API, y la nueva API es buena para reemplazar la tarea anterior. Puedo ir a buscar. ordenar, agregar información e imágenes adicionales, enlace, etc. https://codepen.io/Colorize_my_sky/full/aMxRRq

¡Felicitaciones @ColorizeMySky ! Esto se ve muy bien y responde muy bien.

¿Fue útil esta página
0 / 5 - 0 calificaciones