mirror of
https://github.com/freeCodeCamp/freeCodeCamp.git
synced 2026-05-16 07:00:53 -04:00
212 lines
19 KiB
JSON
212 lines
19 KiB
JSON
{
|
|
"name": "API Projects",
|
|
"order": 26,
|
|
"time": "150 hours",
|
|
"helpRoom": "HelpBackEnd",
|
|
"challenges": [
|
|
{
|
|
"id": "576d6e1b12fd92c4207a9cbd",
|
|
"title": "Get Set for our API Development Projects",
|
|
"description": [
|
|
[
|
|
"//i.imgur.com/WpB8TxW.gif",
|
|
"A gif showing how to create a glitch.com project.",
|
|
"We recommend building our backend challenges on glitch.com, a powerful browser-based development environment. This will save you hours of time that you would spend configuring your local computer to run Node.js and MongoDB - time you could instead spend coding.<br><br>Start a glitch.com project by clicking the 'New Project' button.",
|
|
"https://glitch.com"
|
|
],
|
|
[
|
|
"//i.imgur.com/ffFmICx.gif",
|
|
"Sign in to glitch.com.",
|
|
"Projects by anonymous users expire after 5 days, so make sure you create your free glitch.com account by signing in with github or facebook.",
|
|
""
|
|
],
|
|
[
|
|
"//i.imgur.com/ygEbGpe.gif",
|
|
"A gif showing the glitch.com project.",
|
|
"You can start your projects on Glitch from the demo, or using the freeCodeCamp boiler plate. Import with <a href='https://glitch.com/#!/import/github/freeCodeCamp/boilerplate-npm'>this link</a> or clone <a href='https://github.com/freeCodeCamp/boilerplate-npm/'>this repository</a> on GitHub! If you use Glitch, remember to save the link to your project somewhere safe!",
|
|
""
|
|
],
|
|
[
|
|
"//i.imgur.com/oF0MVT7.gif",
|
|
"A gif showing mLab.",
|
|
"If you need to connect to MongoDB for your project, you can create a free one at mLab.",
|
|
""
|
|
],
|
|
[
|
|
"//i.imgur.com/zWtdIXv.gif",
|
|
"A gif showing the project url.",
|
|
"After completing each challenge you can copy your public Glitch url (to the homepage of your app) and submit it. Optionally you may choose to write your project on another platform but it must be publicly visible.",
|
|
""
|
|
]
|
|
],
|
|
"challengeSeed": [],
|
|
"tests": [],
|
|
"type": "Waypoint",
|
|
"challengeType": 7,
|
|
"isRequired": false
|
|
},
|
|
{
|
|
"id": "bd7158d8c443edefaeb5bdef",
|
|
"title": "Timestamp Microservice",
|
|
"description": [
|
|
"<strong>Objective:</strong> Build a full stack JavaScript app that is functionally similar to this: <a href='https://timestamp-ms.herokuapp.com/' target='_blank'>https://timestamp-ms.herokuapp.com/</a> and deploy it to Glitch.",
|
|
"Note that for each project, you should create a new GitHub repository and a new Glitch project. If you can't remember how to do this, revisit <a href='/challenges/get-set-for-our-api-development-projects'>https://freecodecamp.com/challenges/get-set-for-our-api-development-projects</a>.",
|
|
"Here are the specific user stories you should implement for this project:",
|
|
"<strong>User Story:</strong> I can pass a string as a parameter, and it will check to see whether that string contains either a unix timestamp or a natural language date (example: January 1, 2016).",
|
|
"<strong>User Story:</strong> If it does, it returns both the Unix timestamp and the natural language form of that date.",
|
|
"<strong>User Story:</strong> If it does not contain a date or Unix timestamp, it returns null for those properties.",
|
|
"Once you've finished implementing these user stories, click the \"I've completed this challenge\" button and enter the URLs for both your GitHub repository and your live app running on Glitch.",
|
|
"You can get feedback on your project by sharing it with your friends on Facebook."
|
|
],
|
|
"challengeSeed": [
|
|
"gj4eL6satjI"
|
|
],
|
|
"tests": [],
|
|
"isRequired": true,
|
|
"releasedOn": "January 1, 2016",
|
|
"type": "basejump",
|
|
"challengeType": 4,
|
|
"titleEs": "Microservicio de Marca Temporal",
|
|
"descriptionEs": [
|
|
"<strong>Objetivo:</strong> Desarolla una aplicación de Pila Completa en JavaScript que sea funcionalmente similar a esta: <a href='https://timestamp-ms.herokuapp.com/' target='_blank'>https://timestamp-ms.herokuapp.com/</a> y despliegala en Glitch.",
|
|
"Ten en cuenta que para cada proyecto, deberías crear un nuevo repositorio en GitHub y un nuevo proyecto en Glitch. Si no recuerdas como hacer esto, vuelve a visitar <a href='/challenges/get-set-for-our-api-development-projects'>https://freecodecamp.com//challenges/get-set-for-our-api-development-projects</a>.",
|
|
"Aquí están las historias de usuario específicas que debes implementar para este proyecto:",
|
|
"<strong>Historia de Usuario:</strong> Puedo pasar una cadena como parámetro y comprobará si contiene o no una marca de tiempo para Unix o una fecha en lenguaje natural en inglés (Ejemplo: January 1, 2016).",
|
|
"<strong>Historia de Usuario:</strong> Si tiene una marca de tiempo para Unix, devuelve tanto la marca de tiempo de Unix como la fecha en lenguaje natural.",
|
|
"<strong>Historia de Usuario:</strong> Si no contiene una fecha ni una marca de tiempo para Unix, devolverá esas propiedades en <code>null</code>.",
|
|
"Una vez que hayas terminado de implementar estas historias de usuarios, pulsa el botón \"I've completed this challenge\" e introduce los URLs de tu repositorio en GitHub y de tu aplicación en vivo en Glitch.",
|
|
"Puedes obtener retroalimentación sobre tu proyecto por parte de otros campistas, compartiendolo en nuestra <a href='//gitter.im/freecodecamp/codereview' target='_blank'>Sala de chat para revisión de código</a>. También puedes compartirlo en Twitter y en el campamento de tu ciudad (en Facebook)."
|
|
]
|
|
},
|
|
{
|
|
"id": "bd7158d8c443edefaeb5bdff",
|
|
"title": "Request Header Parser Microservice",
|
|
"description": [
|
|
"<strong>Objective:</strong> Build a full stack JavaScript app that is functionally similar to this: <a href='https://cryptic-ridge-9197.herokuapp.com/api/whoami/' target='_blank'>https://cryptic-ridge-9197.herokuapp.com/api/whoami/</a> and deploy it to Glitch.",
|
|
"Note that for each project, you should create a new GitHub repository and a new Glitch project. If you can't remember how to do this, revisit <a href='/challenges/get-set-for-our-api-development-projects'>https://freecodecamp.com/challenges/get-set-for-our-api-development-projects</a>.",
|
|
"Here's the specific user story you should implement for this project:",
|
|
"<strong>User Story:</strong> I can get the IP address, language and operating system for my browser.",
|
|
"Once you've finished implementing these user stories, click the \"I've completed this challenge\" button and enter the URLs for both your GitHub repository and your live app running on Glitch.",
|
|
"You can get feedback on your project by sharing it with your friends on Facebook."
|
|
],
|
|
"challengeSeed": [
|
|
"_0oqjSkGoHg"
|
|
],
|
|
"tests": [],
|
|
"isRequired": true,
|
|
"releasedOn": "January 1, 2016",
|
|
"type": "basejump",
|
|
"challengeType": 4,
|
|
"titleEs": "Microservicio para analizar el encabezado de una petición",
|
|
"descriptionEs": [
|
|
"<strong>Objetivo:</strong> Desarrolla una aplicación de Pila Completa en JavaScript que sea funcionalmente similar a esta: <a href='https://cryptic-ridge-9197.herokuapp.com/api/whoami/' target='_blank'>https://cryptic-ridge-9197.herokuapp.com/api/whoami/</a> y despliegala en Glitch.",
|
|
"Ten en cuenta que para cada proyecto, deberías crear un nuevo repositorio en GitHub y un nuevo proyecto en Glitch. Si no recuerdas como hacer esto, vuelve a visitar <a href='/challenges/get-set-for-our-api-development-projects'>https://freecodecamp.com//challenges/get-set-for-our-api-development-projects</a>.",
|
|
"Aquí están las historias de usuario específicas que debes implementar para este proyecto:",
|
|
"<strong>Historia de Usuario:</strong> Puedo obtener la dirección IP, idioma y sistema operativo de mi navegador.",
|
|
"Una vez que hayas terminado de implementar estas historias de usuarios, pulsa el botón \"I've completed this challenge\" e introduce los URLs de tu repositorio en GitHub y de tu aplicación en vivo en Glitch.",
|
|
"Puedes obtener retroalimentación sobre tu proyecto por parte de otros campistas, compartiendolo en nuestra <a href='//gitter.im/freecodecamp/codereview' target='_blank'>Sala de chat para revisión de código</a>. También puedes compartirlo en Twitter y en el campamento de tu ciudad (en Facebook)."
|
|
]
|
|
},
|
|
{
|
|
"id": "bd7158d8c443edefaeb5bd0e",
|
|
"title": "URL Shortener Microservice",
|
|
"description": [
|
|
"<strong>Objective:</strong> Build a full stack JavaScript app that is functionally similar to this: <a href='https://little-url.herokuapp.com/' target='_blank'>https://little-url.herokuapp.com/</a> and deploy it to Glitch.",
|
|
"Note that for each project, you should create a new GitHub repository and a new Glitch project. If you can't remember how to do this, revisit <a href='/challenges/get-set-for-our-api-development-projects'>https://freecodecamp.com/challenges/get-set-for-our-api-development-projects</a>.",
|
|
"Here are the specific user stories you should implement for this project:",
|
|
"<strong>User Story:</strong> I can pass a URL as a parameter and I will receive a shortened URL in the JSON response.",
|
|
"<strong>User Story:</strong> If I pass an invalid URL that doesn't follow the valid http://www.example.com format, the JSON response will contain an error instead.",
|
|
"<strong>User Story:</strong> When I visit that shortened URL, it will redirect me to my original link.",
|
|
"<strong>Pro Tip:</strong> Checkout this <a href='https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Using-MongoDB-And-Deploying-To-Heroku/' target='_blank'>wiki article</a> for tips on integrating MongoDB on Glitch.",
|
|
"Once you've finished implementing these user stories, click the \"I've completed this challenge\" button and enter the URLs for both your GitHub repository and your live app running on Glitch.",
|
|
"You can get feedback on your project by sharing it with your friends on Facebook."
|
|
],
|
|
"challengeSeed": [
|
|
"B-gY9nAtPIw"
|
|
],
|
|
"tests": [],
|
|
"isRequired": true,
|
|
"releasedOn": "January 1, 2016",
|
|
"type": "basejump",
|
|
"challengeType": 4,
|
|
"titleEs": "Microservicio para acortar URLs",
|
|
"descriptionEs": [
|
|
"<strong>Objetivo:</strong> Desarrolla una aplicación de Pila Completa en JavaScript que sea funcionalmente similar a esta: <a href='https://little-url.herokuapp.com/' target='_blank'>https://little-url.herokuapp.com/</a> y despliegala en Glitch.",
|
|
"Ten en cuenta que para cada proyecto, deberías crear un nuevo repositorio en GitHub y un nuevo proyecto en Glitch. Si no recuerdas como hacer esto, vuelve a visitar <a href='/challenges/get-set-for-our-api-development-projects'>https://freecodecamp.com//challenges/get-set-for-our-api-development-projects</a>.",
|
|
"Aquí están las historias de usuario específicas que debes implementar para este proyecto:",
|
|
"<strong>Historia de Usuario:</strong> Puedo pasar una URL como parámetro y recibiré una URL acortada en la respuesta JSON.",
|
|
"<strong>Historia de Usuario:</strong> Si paso una URL inválido que no siga el formato válido http://www.exmaple.com, en cambio la respuesta JSON contendrá un mensaje de error.",
|
|
"<strong>Historia de Usuario:</strong> Cuando visite el URL acortado, me redirigirá a mi enlace original.",
|
|
"Una vez que hayas terminado de implementar estas historias de usuarios, pulsa el botón \"I've completed this challenge\" e introduce los URLs de tu repositorio en GitHub y de tu aplicación en vivo en Glitch.",
|
|
"Puedes obtener retroalimentación sobre tu proyecto por parte de otros campistas, compartiendolo en nuestra <a href='//gitter.im/freecodecamp/codereview' target='_blank'>Sala de chat para revisión de código</a>. También puedes compartirlo en Twitter y en el campamento de tu ciudad (en Facebook)."
|
|
]
|
|
},
|
|
{
|
|
"id": "bd7158d8c443edefaeb5bdee",
|
|
"title": "Image Search Abstraction Layer",
|
|
"description": [
|
|
"<strong>Objective:</strong> Build a full stack JavaScript app that allows you to search for images like this: <a href='https://cryptic-ridge-9197.herokuapp.com/api/imagesearch/lolcats%20funny?offset=10' target='_blank'>https://cryptic-ridge-9197.herokuapp.com/api/imagesearch/lolcats%20funny?offset=10</a> and browse recent search queries like this: <a href='https://cryptic-ridge-9197.herokuapp.com/api/latest/imagesearch/' target='_blank'>https://cryptic-ridge-9197.herokuapp.com/api/latest/imagesearch/</a>. Then deploy it to Glitch.",
|
|
"Note that for each project, you should create a new GitHub repository and a new Glitch project. If you can't remember how to do this, revisit <a href='/challenges/get-set-for-our-api-development-projects'>https://freecodecamp.com/challenges/get-set-for-our-api-development-projects</a>.",
|
|
"Here are the specific user stories you should implement for this project:",
|
|
"<strong>User Story:</strong> I can get the image URLs, alt text and page urls for a set of images relating to a given search string.",
|
|
"<strong>User Story:</strong> I can paginate through the responses by adding a ?offset=2 parameter to the URL.",
|
|
"<strong>User Story:</strong> I can get a list of the most recently submitted search strings.",
|
|
"Once you've finished implementing these user stories, click the \"I've completed this challenge\" button and enter the URLs for both your GitHub repository and your live app running on Glitch.",
|
|
"You can get feedback on your project by sharing it with your friends on Facebook."
|
|
],
|
|
"challengeSeed": [
|
|
"QIpA1oP8EGQ"
|
|
],
|
|
"tests": [],
|
|
"isRequired": true,
|
|
"releasedOn": "January 1, 2016",
|
|
"type": "basejump",
|
|
"challengeType": 4,
|
|
"titleEs": "Capa de abstracción para buscar imágenes",
|
|
"descriptionEs": [
|
|
"<strong>Objetivo:</strong> Desarolla una aplicación de Pila Completa en JavaScript que te permite buscar imágenes como esta: <a href='https://cryptic-ridge-9197.herokuapp.com/api/imagesearch/lolcats%20funny?offset=10' target='_blank'>https://cryptic-ridge-9197.herokuapp.com/api/imagesearch/lolcats%20funny?offset=10</a> y examinar las búsquedas recientes como esta: <a href='https://cryptic-ridge-9197.herokuapp.com/api/latest/imagesearch/' target='_blank'>https://cryptic-ridge-9197.herokuapp.com/api/latest/imagesearch/</a>. Después, despliegala en Glitch.",
|
|
"Ten en cuenta que para cada proyecto, deberías crear un nuevo repositorio en GitHub y un nuevo proyecto en Glitch. Si no recuerdas como hacer esto, vuelve a visitar <a href='/challenges/get-set-for-our-api-development-projects'>https://freecodecamp.com//challenges/get-set-for-our-api-development-projects</a>.",
|
|
"Aquí están las historias de usuario específicas que debes implementar para este proyecto:",
|
|
"<strong>Historia de Usuario:</strong> Puedo obtener la URL de una imagen, texto alternativo y URLs de las páginas de un conjunto de imágenes que se relacionen con una cadena de texto dada.",
|
|
"<strong>Historia de Usuario:</strong> Puedo examinar página a página las respuestas añadiendo un parámetro del estilo <code>?offset=2</code> al URL.",
|
|
"<strong>Historia de Usuario:</strong> Puedo obtener una lista de las cadenas búscadas que se enviaron más recientemente.",
|
|
"Una vez que hayas terminado de implementar estas historias de usuarios, pulsa el botón \"I've completed this challenge\" e introduce los URLs de tu repositorio en GitHub y de tu aplicación en vivo en Glitch.",
|
|
"Puedes obtener retroalimentación sobre tu proyecto por parte de otros campistas, compartiendolo en nuestra <a href='//gitter.im/freecodecamp/codereview' target='_blank'>Sala de chat para revisión de código</a>. También puedes compartirlo en Twitter y en el campamento de tu ciudad (en Facebook)."
|
|
]
|
|
},
|
|
{
|
|
"id": "bd7158d8c443edefaeb5bd0f",
|
|
"title": "File Metadata Microservice",
|
|
"description": [
|
|
"<strong>Objective:</strong> Build a full stack JavaScript app that is functionally similar to this: <a href='https://aryanj-file-size.herokuapp.com/' target='_blank'>https://aryanj-file-size.herokuapp.com/</a> and deploy it to Glitch.",
|
|
"Note that for each project, you should create a new GitHub repository and a new Glitch project. If you can't remember how to do this, revisit <a href='/challenges/get-set-for-our-api-development-projects'>https://freecodecamp.com/challenges/get-set-for-our-api-development-projects</a>.",
|
|
"Here are the specific user stories you should implement for this project:",
|
|
"<strong>User Story:</strong> I can submit a FormData object that includes a file upload.",
|
|
"<strong>User Story:</strong> When I submit something, I will receive the file size in bytes within the JSON response",
|
|
"<strong>Hint:</strong> You may want to use this package: <a href='https://www.npmjs.com/package/multer' target='_blank'>https://www.npmjs.com/package/multer</a>",
|
|
"Once you've finished implementing these user stories, click the \"I've completed this challenge\" button and enter the URLs for both your GitHub repository and your live app running on Glitch.",
|
|
"You can get feedback on your project by sharing it with your friends on Facebook."
|
|
],
|
|
"challengeSeed": [
|
|
"w_W2-VOgy9g"
|
|
],
|
|
"tests": [],
|
|
"isRequired": true,
|
|
"releasedOn": "January 1, 2016",
|
|
"type": "basejump",
|
|
"challengeType": 4,
|
|
"titleEs": "Microservicio de metadatos de archivos",
|
|
"descriptionEs": [
|
|
"<strong>Objetivo:</strong> Desarrolla una aplicación de Pila Completa en JavaScript que sea funcionalmente similar a esta: <a href='https://cryptic-ridge-9197.herokuapp.com/' target='_blank'>https://cryptic-ridge-9197.herokuapp.com/</a> y despliegala en Glitch.",
|
|
"Ten en cuenta que para cada proyecto, deberías crear un nuevo repositorio en GitHub y un nuevo proyecto en Glitch. Si no recuerdas como hacer esto, vuelve a visitar <a href='/challenges/get-set-for-our-api-development-projects'>https://freecodecamp.com//challenges/get-set-for-our-api-development-projects</a>.",
|
|
"Aquí están las historias de usuario específicas que debes implementar para este proyecto:",
|
|
"<strong>Historia de Usuario:</strong> Puedo enviar un objeto FormData que incluya una subida de un archivo.",
|
|
"<strong>Historia de Usuario:</strong> Cuando envío algo, recibiré el tamao del archivo en bytes en la respuesta JSON.",
|
|
"<strong>Pista:</strong> Puede servirte este paquete: <a href='https://www.npmjs.com/package/multer' target='_blank'>https://www.npmjs.com/package/multer</a>",
|
|
"Una vez que hayas terminado de implementar estas historias de usuarios, pulsa el botón \"I've completed this challenge\" e introduce los URLs de tu repositorio en GitHub y de tu aplicación en vivo en Glitch.",
|
|
"Puedes obtener retroalimentación sobre tu proyecto por parte de otros campistas, compartiendolo en nuestra <a href='//gitter.im/freecodecamp/codereview' target='_blank'>Sala de chat para revisión de código</a>. También puedes compartirlo en Twitter y en el campamento de tu ciudad (en Facebook)."
|
|
]
|
|
}
|
|
]
|
|
}
|