Question:
## Instructions

Set the font-size of the h1 tag to 68px.

Set the font-size of the h2 tag to 52px.

Set the font-size of the h3 tag to 40px.

Set the font-size of the h4 tag to 32px.

Set the font-size of the h5 tag to 21px.

Set the font-size of the h6 tag to 14px.

In the style tags, set the font-size of the:

h1 tag to 68px.

h2 tag to 52px.

h3 tag to 40px.

h4 tag to 32px.

h5 tag to 21px.

h6 tag to 14px.

 ## Tests

So, I tried submitting the following code: When I ran it through the tests, all but the last one passed. Then I in what I was supposed to do without removing the inline styles: This one passed all the tests! I know we were supposed to put stuff in the style tag, but I discovered this issue because I didn't want to do so much typing. There doesn't seem to be some check in the last test that looks at inline styles, unlike the rest. Can you look into it?
Hello there, Thank you, for taking the time to open this issue. This is expected behaviour. Recently, the test for the element was changed, because the usual method of testing did not work on some browsers (Safari, if I recall). So, unless we find a better method to test all of the elements, I would not advise any of the tests being changed. However, perhaps we could change the instructions to be explicit about requiring campers to not use inline-styles. I will leave this open for others to weigh in on.
I think this is about the only thing we can currently do.
I am good with adding a note there. Something like this: That whole thing could probably be shortened to something like this maybe: I'm fine with it either way.
I like second shortened suggestion.
Any idea why it’s only the h6 that doesn’t work? I’ve made a PR with the above but wonder if removing the h6 altogether from this challenge might be slightly more elegant in lieu of not having a different way to test?


Question: Modify your function declaration so that it takes two parameters called `message` and `offset`. <del> After that, you'll see an error appear in the terminal. As a temporary fix, comment out the `caesar()` call. </del> <ins> After that, you'll see an error appear in the terminal. You'll see how to solve it in the next steps. </ins> # --hints-- <del> You should comment out the `caesar()` function call. ```js ({test: () => assert(runPython( `not _Node(_code).find_calls('caesar')` ))}) ``` </del> Your `caesar` function should take `message` and `offset` as the parameters. Remember to separate the parameters with a comma. ```js

In the Building a Cipher project, comment is first mentioned in step 51: But in step 59, we actually introduce comment and its syntax: In step 51, we introduce function parameters, so I think mentioning comment here would be a little overwhelming. I think the comment introduction should either be moved to an earlier challenge or kept in step 59. If we move the comment introduction to an earlier challenge, step 51 can be kept as-is. But if we keep comment introduction in step 59, we should update step 51. Instead of asking the users to comment out the code, I wonder if we could ask them to remove the line entirely (though the code is in step 50, so it's probably a little odd to immediately remove it in the next step).
This does seems to be out of sequence. I would suggest to not comment out in step 51 and let the exception be(the resolution is there in the coming steps). This part of the instruction can be updated from: to:
If we don't ask to comment out the function call in step 51 and tell the campers they will work on fixing the error in the next steps, it would be logic to address the error in the console () and require to pass the two positional arguments to the function call in step 52. But then the function will seem to work fine, although it's still using the and variable inside its body instead of the function parameters. The alternative is to ignore the in the console for step 52, and address it directly in step 53. For that we should simply keep the function call instead of commenting it out and there is no need to swap the step order. Honestly, I don't like particularly any of these options.


Question: * based off of https://github.com/gitterHQ/sidecar * license: MIT */ <ins> .map { display: flex; flex-direction: column; max-height: 90vh; } </ins> .map-aside { z-index: 20000;

I really do like the SideCar (I'm assuming that's what your using) Map menu! It gives really quick access to previous challenges. It would cool if the "collapse all challenges" area was fixed to top and everything would slide under it. That way, users wouldn't have to scroll all the way up or down if they're looking for something specific - they would just collapse everything and go to the specific component they're looking for.
I agree. Totally makes sense to have it fixed to the top somehow.
I'm going to start working on this now, should have a PR open shortly.


Question: 1. Once the edits have been committed, you will be prompted to create a pull request on your fork's GitHub Page. <del> ![Image - Compare pull request prompt on GitHub](./images/github/compare-pull-request-prompt.png) </del> <ins> ![Image - Compare pull request prompt on GitHub](https://contribute.freecodecamp.org/images/github/compare-pull-request-prompt.png) </ins> 2. By default, all pull requests should be against the freeCodeCamp main repo, `main` branch. Make sure that your Base Fork is set to freeCodeCamp/freeCodeCamp when raising a Pull Request. <del> ![Image - Comparing forks when making a pull request](./images/github/comparing-forks-for-pull-request.png) </del> <ins> ![Image - Comparing forks when making a pull request](https://contribute.freecodecamp.org/images/github/comparing-forks-for-pull-request.png) </ins> 3. Submit the pull request from your branch to freeCodeCamp's `main` branch.

! Our local images currently do not render in the translated documentation views. This is due to the use of a relative link, which breaks with the new path generated for i18n pages. A couple of potential fixes: Use an absolute link (<filename). This, IMHO, is the most effective. Have translators fix the link in the translation flow. Host the images through our CDN and fetch them.
We should use the absolute path.
Sounds good. I'll get a PR up shortly.


Question: "async": "^0.9.0", "bcrypt-nodejs": "^0.0.3", "body-parser": "^1.9.3", <ins> "chai-jquery": "^2.0.0", </ins> "cheerio": "^0.18.0", "clockwork": "^0.1.1", "compression": "^1.2.1",

<!-- NOTE: If you're reporting a security issue, don't create a GitHub issue. Instead, email We will look into it immediately. --From CSS variable lesson, I just want to inform that IE doesn't supports as well as it's fallback value. It'd be great if your team will curate those lessons/challenges or add alternate CSS property with that. Started from lesson. Browser Name: Chrome Browser Version: 67+ Operating System: Windows 10
Thanks for raising this. Fallbacks as described in this lesson are not for older browsers that lack CSS variable support, they are for when the variable has not been defined yet, or otherwise not able to be resolved. The technique you mention of using a preceding more broadly supported CSS rule is also referred to as a fallback. Ideally, I think there should be two lessons, one describing each. whats the situation with adding additional lessons?
yes we are open to adding new lessons.
what did you have in mind for additional lessons? How about just a message in the first variable lesson that or something
In my opinion: needs corrected additional lesson should be after the lessons in screenshot below, lesson to show how to use this principle to form resilient css - ie fallback behaviour for css rules not understood by browser !
I'd like to work on this. Should I lump this all into on PR or separate it into two since part one is technically a fix while part two is a feature?
great! Looking forward to seeing what you come up with. I would say it's better to have two separate PRs, one for the fix and another for the new lesson.


Question:
"tests": [], "type": "zipline", "challengeType": 3,  "nameEs": "Tribute",   "nameEs": "Construye una página Tributo",  "descriptionEs": [  "Objetivo: Crea una aplicación con CodePen.io que reproduzca efectivamente mediante ingeniería inversa este app: http://codepen.io/FreeCodeCamp/full/pgNRoJ.",   "Objetivo: Crea una aplicación con CodePen.io que funcionalmente sea similar a esta: http://codepen.io/FreeCodeCamp/full/wMQrXV",  "Regla #1: No veas el código del proyecto de ejemplo en CodePen. Encuentra la forma de hacerlo por tu cuenta.",  "Regla #2: Puedes usar cualquier librería o APIs que necesites.", "Regla #3: Usa ingeniería inversa para reproducir la funcionalidad del proyecto de ejemplo, pero también siéntete en la libertad de personalizarlo.", "Las siguientes son las historias de usuario que debes satisfacer, incluyendo las historias opcionales:", "Historia de usuario: Como usuario, puedo navegar las publicaciones recientes de Camper News.", "Historia de usuario: Como usuario, puedo pulsar en una publicación y ser llevado al URL original de la historia.", "Historia de usuario opcional: Como usuario, puedo ver cuántos votos tiene cada historia.", "Pista: Este es el endpoint del API de Noticias calientes de Camper News: http://www.freecodecamp.com/news/hot.", "Recuerda utilizar Read-Search-Ask si te sientes atascado.", "Cuando hayas terminado, pulsa el botón de "I've completed this challenge" e incluye un link a tu CodePen. Si programaste en pareja, debes incluir también el nombre de usuario de Free Code Camp de tu compañero.", "Si quieres retroalimentación inmediata de parte de tus compañeros campistas, pulsa este botón y pega el link de tu proyecto en CodePen.

Pulsa aquí y agrega tu link en el texto del tweet"   "Regla #2: Satisface las siguientes historias de usuario. Usa cualquier librería que necesites. Dale tu estilo personal.", "Historia de usuario: Puedo ver una página tributo con una imagen y un texto.", "Historia de usuario: Puedo pulsar un enlace que me llevará a un sitio web externo con mayor información sobre el tema.", "Recuerda utilizar Leer-Buscar-Preguntar si te sientes atascado.", "Cuando hayas terminado, pulsa el botón de "I've completed this challenge" e incluye un link a tu CodePen. ", "Puedes obtener retroalimentación sobre tu proyecto por parte de otros campistas, compartiéndolo en nuestra Sala de chat para revisión de código. También puedes compartirlo en Twitter y en el campamento de tu ciudad (en Facebook)."  ], "isRequired": true },

[x] Get Set for our Front End Development Projects [x] Build a Personal Portfolio Webpage [x] Build a Random Quote Machine [x] Build a JavaScript Calculator [x] Build a Pomodoro Clock
Working on this one


Question:
## Instructions
  Use simple fields with object literals to create and return a Person object.   Use simple fields with object literals to create and return a Person object with name, age and gender properties.
 ## Tests

<!-- NOTE: If you're reporting a security issue, don't create a GitHub issue. Instead, email We will look into it immediately. --1) Add any code into the challenge field (other than a valid solution) that will not result in a syntax error. 2) Run the tests Expected result: The test should fail Actual result: The test passes Browser Name: Firefox Browser Version: 61.0 Operating System: 10.12.6 !
The problem is this test in the : It returns true if returns an object with no keys, or just not-an-object. I assume we should really be using something like to check the expected object and the user's output object are the same.
Working on a fix.


Question: ```yml tests: - text: arr2 should be correct copy of arr1.  testString: assert(arr2.every((v, i) => v === arr1[i]));   testString: assert(arr2.every((v, i) => v === arr1[i]) && arr2.length);  - text: ... spread operator should be used to duplicate arr1. testString: assert(code.match(/Array(s*...arr1s*)|[s*...arr1s*]/)); - text: arr2 should remain unchanged when arr1 is changed.

<!-- NOTE: If you're reporting a security issue, don't create a GitHub issue. Instead, email We will look into it immediately. --Describe your problem and how to reproduce it: In the challenge that I mentioned in the title there is an issue. Even when the output doesn't match with the challenge requirements but it still passes the challenge. I have linked some gifs so it is more understandable. Add a Link to the page with the problem: Tell us about your browser and operating system: Browser Name: Google Chrome Browser Version: 85.0.4183.121 Operating System: Windows 10 64-bit If possible, add a screenshot here (you can drag and drop, png, jpg, gif, etc. in this box): The output doesn't match with the requirements but it still passes the challenge: While this is the correct code and output: This also passes the challenge:
Good catch! The first test on this page uses: A fun quirk with that I ran in to yesterday is that it returns true on an empty array. This error could likely be fixed by adding an assertion for .
Honestly I didn't know why it passed the challenge. Thank you for the explanation.
Opening this up for contributions. As mentions, we just need an additional condition in the to test that is non-zero (which means it would be truthy).
you can find in stackovervlow


Question: "descriptionEs": [ "Compara y actualiza el inventario actual, almacenado en un arreglo bidimensional, contra otro arreglo bidimensional de inventario nuevo. Actualiza las cantidades en el inventario actual y, en caso de recibir una nueva mercancía, añade su nombre y la cantidad recibida al arreglo del inventario en orden alfabético.", "Recuerda utilizar Read-Search-Ask si te sientes atascado. Intenta programar en pareja. Escribe tu propio código."  ], "titleIt": "Aggiornamento dell'inventario", "descriptionIt": [ "Confronta e aggiorna l'inventario, contenuto in un array bidimensionale, con un secondo array bidimensionale relativo ad una nuova consegna. Aggiorna le quantità disponibili in inventario (dentro arr1). Se uno degli articoli non è presente nell'inventario, aggiungi allo stesso il nuovo articolo e la sua quantità. Ritorna un array con l'inventario aggiornato, che deve essere ordinato alfabeticamente per articolo.", "Ricorda di usare Leggi-Cerca-Chiedi se rimani bloccato. Prova a programmare in coppia. Scrivi il codice da te."  ] }, {

Advanced Algorithm Scripting () Translate the challenge Advanced Algorithm Scripting in Italian
I'll be working on this


Question: export const devLoginRedirect = () => { return (req, res) => { <del> // this mirrors the production approach, but without any validation </del> <ins> // this mirrors the production approach, but only validates the prefix </ins> let { returnTo, origin, pathPrefix } = getRedirectParams( req, <del> params => params </del> <ins> ({ returnTo, origin, pathPrefix }) => { pathPrefix = availableLangs.client.includes(pathPrefix) ? pathPrefix : ''; return { returnTo, origin, pathPrefix }; } </ins> ); returnTo += isRootPath(getRedirectBase(origin, pathPrefix), returnTo) <del> ? 'learn' </del> <ins> ? '/learn' </ins> : ''; return res.redirect(returnTo); };

If I am signed in as a user while on and log out, I am redirected to the english home page. redirects to the chinese page.
wrong endpoint in server code? Thats what I would assume, but am not sure how to locate where the correct endpoint would be placed in the code.
Here is the endpoint: and most likely the issue is with the redirect "predictor" utility: However we would want to confirm the cause before we open this up for contributions.
yes, that's the issue. To fix it we can grab the from and combine that with to get the desired redirect.
Should that be done in the getRedirectParams function or should the path be put together from the data set returned by getRedirectParams in
You need to construct the URL from the values you get from the as a consumer of the function and not change its existing behavior. In simple terms the change is required within the endpoint handler.
That makes sense.
I got the codebase installed locally is there a way to run just
Not sure what you mean by running only one file? The API server is an express based application (Loopback 3). You need to start up at least the api-server app. If you want to do that, you should be able to do that by navigating to directory and using the run-script commands in its
I'm trying to figure out what gets passed in pathPrefix, from getRedirectParams, when one signs out from the Spanish page. But when running the site locally, switching to Espanol leads to a "This site can't be reached" error. Just for clarity's sake, I realize now that is not meant to be run alone and I am using the "npm run develop" command to try and recreate this bug locally. Is this a bad approach?
Ah - right. Sorry about sending you on a goose-chase. When you build locally, we do not have a way yet to develop both and at the same time alongside the API app. I am going to untag this from help-wanted and assign this instead. Oliver, you should be able to test / reproduce and recommend a fix on our staging instance - not sure because this may be needing access for "close to prod" type setup.
I was just in the process of going through the steps, when you commented Mrugesh!

I'll leave them here for the curious: Unfortunately testing locally is quite a pain, because we use since is entirely separate from . It's a bit of a slow, memory intensive process, but you can do this: in your .env file Then you can go to


Question: The quotient variable should only be assigned once ```js <del> assert(code.match(/quotient/g).length === 1); </del> <ins> assert(code.match(/quotients*=/g).length === 1); </ins> ``` # --seed--

It would be nice if we allowed the camper to log out the result without having the last test fail because of it. One option might be to use code comments as delimiters to help make the regex more targeted. The camper should be allowed to log out the result without failing with the correct code. No response Device: [e.g. iPhone 6, Laptop] OS: [e.g. iOS 14, Windows 10, Ubuntu 20.04] Browser: [e.g. Chrome, Safari] Version: [e.g. 22]
We could update the test to check for the assignment operator, instead of just a variable reference:
To fix the issue change the third test: To what Naomi suggested Here is the file for the challenge: If you would like to fix this issue, please make sure you read , we prioritize contributors following the instructions in our guides. Join us in or if you need help contributing, our prolific contributors will guide you through this.
Can I work on this issue ? It would mean a lot
Go for it.
Can I work on this issue?


Question: You should give `.left-mountain` a `background` of `linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255))`. ```js <del> assert.include(['linear-gradient(rgb(203,241,228),rgb(80,183,255))', 'rgba(0,0,0,0)linear-gradient(45deg,rgb(118,201,255),rgb(247,255,222))repeatscroll0%0%'], new __helpers.CSSHelp(document).getStyle('.left-mountain')?.getPropVal('background', true)); </del> <ins> assert.include(['linear-gradient(rgb(203,241,228),rgb(80,183,255))', 'rgba(0,0,0,0)linear-gradient(rgb(203,241,228),rgb(80,183,255))repeatscroll0%0%'], new __helpers.CSSHelp(document).getStyle('.left-mountain')?.getPropVal('background', true)); </ins> ``` # --seed--

An issue was brought up in the forum where the user could not pass the challenge using firefox. They had the correct code and weren't using browser extensions. On google chrome and safari the test does pass. The test will only pass on Firefox using this code Correct answer not passing in firefox <img width="936" alt="Screen Shot 2022-01-25 at 8 44 56 AM" src="https://user-"Incorrect answer passing in firefox <img width="981" alt="Screen Shot 2022-01-25 at 8 45 31 AM" src="https://user-"- Device: [macbook pro] OS: [macOs Catalina] Browser: [Firefox] Version: [96.0.2]
Step 14 has the same issue. This is the correct code that passes in google chrome <img width="905" alt="Screen Shot 2022-01-25 at 8 57 21 AM" src="https://user-"Here is the same code but it doesn't pass with firefox <img width="915" alt="Screen Shot 2022-01-25 at 9 00 09 AM" src="https://user-"


Question: # --instructions-- <del> Create a second `p` element after the existing `p` element with the following kitty ipsum text: `Purr jump eat the grass rip the couch scratched sunbathe, shed everywhere rip the couch sleep in the sink fluffy fur catnip scratched.` </del> <ins> Create a second `p` element with the following kitty ipsum text: `Purr jump eat the grass rip the couch scratched sunbathe, shed everywhere rip the couch sleep in the sink fluffy fur catnip scratched.` </ins> <del> Then, create a `main` element and nest the two `p` elements inside the `main` element. </del> <ins> Then, create a `main` element and nest only the two `p` elements inside the `main` element. </ins> # --hints--

Maybe this was done intentionally to give learning programmers more leeway. If that's not the case though, it's a bug. Describe your problem and how to reproduce it: In the -challenge, the request clearly is to add the new tag AFTER the previous p-tag. However, the following code also gets accepted as a correct solution. Add a Link to the page with the problem: Tell us about your browser and operating system: Browser Name: Firefox Browser Version: 87.0 (64-bit) Operating System: Linux (Linux Mint) If possible, add a screenshot here (you can drag and drop, png, jpg, gif, etc. in this box): ! !
I think this can go either way, but I'm leaning towards changing the directions, and removing the to give the more leeway for newcomers, to somewhat like: This is ofcourse just my opinion, I would love for others to pitch in...
I like the change. The less explicit version seems to better describe how the page is already behaving.
I agree that this sounds like a good change :) Maybe is the way to go, to indicate it shouldn't be over the tag.
As we do not want any confusion about what the element should wrap. I suggest the following: I am opening this up to first timers An issue with the help wanted or first timers only label is open for contribution. The first comprehensive PR created will be reviewed and merged. We typically do not assign issues to anyone other than long-time contributors. If you would like to contribute, and have not read the contributors docs, please do so here: If you have any issues with contributing, be sure to join us on the , or on the
Sure, I'll do my best!
See . I wrote this. I changed the second line to improve it with , while still keeping it similar to the previous description.


Question: **User Story:** I can win the game by getting a series of 20 steps correct. I am notified of my victory, then the game starts over. <del> **Hint:** Here are mp3s you can use for each button: `https://s3.amazonaws.com/freecodecamp/simonSound1.mp3`, `https://s3.amazonaws.com/freecodecamp/simonSound2.mp3`, `https://s3.amazonaws.com/freecodecamp/simonSound3.mp3`, `https://s3.amazonaws.com/freecodecamp/simonSound4.mp3`. </del> <ins> **Hint:** Here are mp3s you can use for each button: `https://cdn.freecodecamp.org/curriculum/take-home-projects/simonSound1.mp3`, `https://cdn.freecodecamp.org/curriculum/take-home-projects/simonSound2.mp3`, `https://cdn.freecodecamp.org/curriculum/take-home-projects/simonSound3.mp3`, `https://cdn.freecodecamp.org/curriculum/take-home-projects/simonSound4.mp3`. </ins> When you are finished, include a link to your project on CodePen and click the "I've completed this challenge" button.

We need to replace all images and audio samples for the legacy content with the ones that were just to our freeCodeCamp cdn. Here are all of the files that will need to be updated Here are all of the new asset links


Question: { id: '5e44412c903586ffb414c94c', title: 'Arithmetic Formatter', <del> link: `${sciCompPyBase}/arithmetic-formatter`, </del> <ins> link: `${sciCompPyBase}/build-an-arithmetic-formatter-project/build-an-arithmetic-formatter-project`, </ins> certSlug: Certification.SciCompPy }, { id: '5e444136903586ffb414c94d', title: 'Time Calculator', <del> link: `${sciCompPyBase}/time-calculator`, </del> <ins> link: `${sciCompPyBase}/build-a-time-calculator-project/build-a-time-calculator-project`, </ins> certSlug: Certification.SciCompPy }, { id: '5e44413e903586ffb414c94e', title: 'Budget App', <del> link: `${sciCompPyBase}/budget-app`, </del> <ins> link: `${sciCompPyBase}/build-a-budget-app-project/build-a-budget-app-project`, </ins> certSlug: Certification.SciCompPy }, { id: '5e444147903586ffb414c94f', title: 'Polygon Area Calculator', <del> link: `${sciCompPyBase}/polygon-area-calculator`, </del> <ins> link: `${sciCompPyBase}/build-a-polygon-area-calculator-project/build-a-polygon-area-calculator-project`, </ins> certSlug: Certification.SciCompPy }, { id: '5e44414f903586ffb414c950', title: 'Probability Calculator', <del> link: `${sciCompPyBase}/probability-calculator`, </del> <ins> link: `${sciCompPyBase}/build-a-probability-calculator-project/build-a-probability-calculator-project`, </ins> certSlug: Certification.SciCompPy } ]

Describe the bug Clicking on the certification project name results in both in settings and from the view certification page. ! To Reproduce Steps to reproduce the behavior: to either or (note that you must replace in the link) on a certification project name 404 Page Not Found


Question:
"", "", "",  "
", "
jQuery Playground
", "
", "
", "
#left-well
", "
", "        <button class="btn btn-default target" id="target1">#target1</button>", "        <button class="btn btn-default target" id="target2">#target2</button>", "        <button class="btn btn-default target" id="target3">#target3</button>", "
", "
", "
", "
#right-well
", "
", "        <button class="btn btn-default target" id="target4">#target4</button>", "        <button class="btn btn-default target" id="target5">#target5</button>", "        <button class="btn btn-default target" id="target6">#target6</button>",   "", "
", "
jQuery Playground
", "
", "
", "
#left-well
", "
", "          <button class="btn btn-default target" id="target1">#target1</button>", "          <button class="btn btn-default target" id="target2">#target2</button>", "          <button class="btn btn-default target" id="target3">#target3</button>", "
", "
", "
", "
#right-well
", "
", "          <button class="btn btn-default target" id="target4">#target4</button>", "          <button class="btn btn-default target" id="target5">#target5</button>", "          <button class="btn btn-default target" id="target6">#target6</button>", "
",  "
", "
", "
",  "
"   ""  ], "type": "waypoint", "challengeType": 0

Challenge text reads: "For example, your jQuery Playground h3 element has the parent element of , which itself has the parent body." However, the placeholder code doesn't have the <bodyelement. It should include this to allow the reader to follow along the chain of parent elements.
Looks like the seed code for that waypoint has the following, which would seem to fit that description, unless I'm misunderstanding.
I'm sorry, doesn't have the body element. The div element is there.
Apologies for my confusion. I've put in a PR to fix this.


Question: When you attempt to save a translation, you may see a warning message appear with a notification regarding your proposed translation. <del> ![Image - QA Warning Message](./images/crowdin/qa-message.png) </del> <ins> ![Image - QA Warning Message](https://contribute.freecodecamp.org/images/crowdin/qa-message.png) </ins> This message appears when Crowdin's QA system has identified a potential error in the proposed translation. In this example, we have modified the text of a `<code>` tag and Crowdin has caught that.

! Our local images currently do not render in the translated documentation views. This is due to the use of a relative link, which breaks with the new path generated for i18n pages. A couple of potential fixes: Use an absolute link (<filename). This, IMHO, is the most effective. Have translators fix the link in the translation flow. Host the images through our CDN and fetch them.
We should use the absolute path.
Sounds good. I'll get a PR up shortly.


Question: Modify the new array `myArray` so that it contains both a `string` and a `number` (in that order). <del> **Hint** Refer to the example code in the text editor if you get stuck. </del> # --hints-- `myArray` should be an `array`.

<!-- NOTE: If you're reporting a security issue, don't create a GitHub issue. Instead, email We will look into it immediately. --Describe your problem and how to reproduce it: the challenge contains Refer to the example code in the text editor if you get stuck. There is no example code in the editor Add a Link to the page with the problem: If possible, add a screenshot here (you can drag and drop, png, jpg, gif, etc. in this box): ! !
Let's just remove the .
I have opened this issue up for first timers to contribute.
First timers contributing to this repository or first timers in general?
! This is weird the sample code does exist on my view. Which broswer are you using?
First timers to this repository. An issue with the help wanted or first timers only label is open for contribution. The first comprehensive PR created will be reviewed and merged. We typically do not assign issues to anyone other than long-time contributors. If you would like to contribute, and have not read the contributors docs, please do so here: If you have any issues with contributing, be sure to join us on the , or on the
To this repo.
That is an example in the challenge description - but the refers to a non-existent sample in the editor and should thus be removed.
Well, then I would like to work on it
issues are not assigned, the first comprehensive PR is reviewed


Question: It's better practice to choose one color as the dominant color, and use its complementary color as an accent to bring attention to certain content on the page. <del> First, in the `h1` rule, use the `rbg` function to set its background color to cyan. </del> <ins> First, in the `h1` rule, use the `rgb` function to set its background color to cyan. </ins> # --hints--

!
Thanks for opening this issue. This looks something that can be fixed by "first time" code contributors to this repository. Here are the files that you should be looking at to work on a fix: List of files: Please make sure you read , we prioritize contributors following the instructions in our guides. Join us in or if you need help contributing, our moderators will guide you through this. Sometimes we may get more than one pull requests. We typically accept the most quality contribution followed by the one that is made first. Happy contributing.
Thank you so much! Will do


Question: ```yml tests: - text: The first <code>div</code> should have a <code>height</code> of 12 pixels. <del> testString: assert($('div').eq(0).css('height') == '12px'); </del> <ins> testString: assert($('div').eq(0)[0].style.height === '12px'); </ins> - text: The second <code>div</code> should have a <code>height</code> of 31 pixels. <del> testString: assert($('div').eq(1).css('height') == '31px'); </del> <ins> testString: assert($('div').eq(1)[0].style.height === '31px'); </ins> - text: The third <code>div</code> should have a <code>height</code> of 22 pixels. <del> testString: assert($('div').eq(2).css('height') == '22px'); </del> <ins> testString: assert($('div').eq(2)[0].style.height === '22px'); </ins> - text: The fourth <code>div</code> should have a <code>height</code> of 17 pixels. <del> testString: assert($('div').eq(3).css('height') == '17px'); </del> <ins> testString: assert($('div').eq(3)[0].style.height === '17px'); </ins> - text: The fifth <code>div</code> should have a <code>height</code> of 25 pixels. <del> testString: assert($('div').eq(4).css('height') == '25px'); </del> <ins> testString: assert($('div').eq(4)[0].style.height === '25px'); </ins> - text: The sixth <code>div</code> should have a <code>height</code> of 18 pixels. <del> testString: assert($('div').eq(5).css('height') == '18px'); </del> <ins> testString: assert($('div').eq(5)[0].style.height === '18px'); </ins> - text: The seventh <code>div</code> should have a <code>height</code> of 29 pixels. <del> testString: assert($('div').eq(6).css('height') == '29px'); </del> <ins> testString: assert($('div').eq(6)[0].style.height === '29px'); </ins> - text: The eighth <code>div</code> should have a <code>height</code> of 14 pixels. <del> testString: assert($('div').eq(7).css('height') == '14px'); </del> <ins> testString: assert($('div').eq(7)[0].style.height === '14px'); </ins> - text: The ninth <code>div</code> should have a <code>height</code> of 9 pixels. <del> testString: assert($('div').eq(8).css('height') == '9px'); </del> <ins> testString: assert($('div').eq(8)[0].style.height === '9px'); </ins> ```

<!-- NOTE: If you're reporting a security issue, don't create a GitHub issue. Instead, email We will look into it immediately. --Tests are not passing with correct code. Curiously, the "The fifth div should have a height of 25 pixels" test is passing, but none of the others. DOM elements are rendering correctly with appropriate inline style. Browser Name: Chrome Browser Version: 68 Operating System: Chrome OS !
it passed for me on firefox and chrome with the code in the picture - were you able to get it to pass?
Oddly enough, no. I find it very strange that I can get the fifth test to pass, but none of the others, no matter what I do.
yea, im not sure - did you try resetting the code and doing it again? is there any errors in the console? Try another browser maybe
Yes to reset, no to errors. If it's a browser problem, that's an issue for people using Chromebooks like myself.
I got the same scenario as . Only the fifth test is passing. Browser Name: Chrome Browser Version: Version 71.0.3578.98 (Official Build) (64-bit) Operating System: MacOS Mojave Version 10.14.2 I tried completing the challenge in Firefox and it passed. Similar users are having problems:
does not work on Chromium - Version 75.0.3770.100 (Official Build) Arch Linux (64-bit) works on Firefox 67.0.3
my browser: Versione 77.0.3865.120 (Build ufficiale) (a 32 bit) on Windows 10 Home v1803 no test passes with callback
Pretty sure the problem is similiar to the problem on
Yep looks like yet another zoom bug with Chrome. We can check the inline styles set instead for the test. I will make a PR.


Question: #### Relevant Links *   String global object  *   JS Regex Resources   *   JS Regex Resources  *   JS String Prototype Replace *   JS String Prototype ToLowerCase

Describe your problem and how to reproduce it: There is no link mentioned for Regex Resources in the Spinal Tap Case Guide Article. Add a Link to the page with the problem: Tell us about your browser and operating system: Browser Name: Chrome Browser Version: 73.0.3683.103 Operating System: Windows 10
Hi I have created a PR that should close this issue. Please reference PR


Question: # --instructions-- <del> If you have a large set of styles, you can assign a style `object` to a constant to keep your code organized. Initialize a `styles` constant and assign an `object` with three style properties and their values to it. Give the `div` a color of `purple`, a font-size of `40`, and a border of `2px solid purple`. Then set the `style` attribute equal to the `styles` constant. </del> <ins> If you have a large set of styles, you can assign a style `object` to a constant to keep your code organized. Declare your styles constant as a global variable at the top of the file. Initialize `styles` constant and assign an `object` with three style properties and their values to it. Give the `div` a color of `purple`, a font-size of `40`, and a border of `2px solid purple`. Then set the `style` attribute equal to the `styles` constant. </ins> # --hints--

<!-- NOTE: If you're reporting a security issue, don't create a GitHub issue. Instead, email We will look into it immediately. --Describe your problem and how to reproduce it: Correct answer doesn't get evaluated to true. Add a Link to the page with the problem: Tell us about your browser and operating system: Browser Name: Firefox Browser Version: Operating System: Windows 10 Home If possible, add a screenshot here (you can drag and drop, png, jpg, gif, etc. in this box): !
Hello there, You have not done what the lesson has asked. Whilst your code does cause the styling of the element to be what is expected, the lesson is about , your code is not using inline-styles to style the element, and so should not pass the challenge. As such, I am closing this issue. In general, if you have further questions, I recommend you make use of the I hope this clarifies.
Forum thread: I'm reopening this because I don't really understand the reason given for closing the issue. More importantly, I think we can make it more clear where the object is supposed to be located. That or make the tests accept a class field as well (seems unnecessary to allow both though).
I think that the failing example does use inline styles (at least as I understand it), it just does it in a way that doesn't use the typical pattern (but I have declared and modified inline styles dynamically in the component before). But then we're assuming that the learner is already familiar with the pattern we are trying to teach. Perhaps we could add to the instructions: I was thinking about an example, but it might be too similar to the answer. I think the above addition would make it clear with minimal disruption. Addendum: Sorry, I just read lasjorg's answer - that may be better than my suggestion. I could support either.
I think updating the seed code with the example I posted would be fine. But suggestion might work as well. I'm fine with either really. I was thinking that it seems like a good first-time PR but because issues are not visibly bumped up (can you bump issues?), I'm guessing this issue might be buried too far down. I can label it and see what happens, otherwise, we might just have to do it ourselves.

/assign
Hello, I would like to work on this issue. Can it be assigned to me?
Hello An issue with the help wanted or first timers only label is open for contribution. The first comprehensive PR created will be reviewed and merged. We typically do not assign issues to anyone other than long-time contributors. If you would like to contribute, and have not read the contributors docs, please do so here: If you have any issues with contributing, be sure to join us on the , or on the


Question: <del> name: CI - Node.js Test Upcoming env: NODE_OPTIONS: '--max_old_space_size=6144' on: # Run on push events, but only for the below branches push: branches: - 'main' - 'prod-**' # Run on pull requests, but only for the below targets pull_request: branches: - 'main' - 'next-**' schedule: # run this Action every 14 days - cron: '0 * */14 * *' # Run on demand workflow_dispatch: permissions: contents: read jobs: lint: name: Lint runs-on: ubuntu-20.04 strategy: matrix: node-version: [18.x] fail-fast: false steps: - name: Checkout Source Files uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3 - name: Setup pnpm uses: pnpm/action-setup@v2 with: version: 8 - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c # v3 with: node-version: ${{ matrix.node-version }} cache: pnpm - name: Set Environment variables run: | cp sample.env .env echo 'SHOW_UPCOMING_CHANGES=true' >> .env echo 'SHOW_NEW_CURRICULUM=true' >> .env cat .env - name: Lint Source Files run: | pnpm install pnpm run create:config npm i --prefix=curriculum-server npm i --prefix=web pnpm run build:curriculum pnpm run lint test: name: Test needs: lint runs-on: ubuntu-20.04 strategy: fail-fast: false matrix: node-version: [18.x] steps: - name: Checkout Source Files uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3 - name: Setup pnpm uses: pnpm/action-setup@v2 with: version: 8 - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c # v3 with: node-version: ${{ matrix.node-version }} cache: pnpm - name: Set Environment variables run: | cp sample.env .env echo 'SHOW_UPCOMING_CHANGES=true' >> .env echo 'SHOW_NEW_CURRICULUM=true' >> .env cat .env - name: Start MongoDB uses: supercharge/mongodb-github-action@d26215f71b2ce60420a2a3776a25893d11a65f85 # 1.9.0 with: mongodb-version: 6.0 mongodb-replica-set: test-rs mongodb-port: 27017 - name: Install Dependencies run: | pnpm install pnpm run create:config pnpm run build:curriculum - name: Run Tests run: pnpm test </del>

Looking forward for reporting a security issue: Please report security issues by following our security policy: Describe the bug I don't know if fcc is paying for CI runs so maybe this doesn't matter. While waiting for CI to run, I noticed that both and run . What actually takes the longest is which is only linting .md files so that probably doesn't need to run twice eh? To Reproduce Steps to reproduce the behavior: output of pnpm run lint Expected behavior A clear and concise description of what you expected to happen. Screenshots If applicable, add screenshots to help explain your problem. Desktop (please complete the following information): n/a Smartphone (please complete the following information): n/a Additional context Add any other context about the problem here.


Question: : defaultAmount[durationSelected] || this.amounts[durationSelected][0]; } <del> convertToTimeContributed(amount, duration) { const timeContributed = duration === 'month' ? Math.round(((amount / 100) * 50) / 12) : (amount / 100) * 50; return `${numToCommas(timeContributed)} hours`; </del> <ins> convertToTimeContributed(amount) { return `${numToCommas((amount / 100) * 50)} hours`; </ins> } getFormatedAmountLabel(amount) {

Currently the donate page always has the left-most value selected by default. Instead, we want the center value selected by default. For example, here we would want the 50 is selected by default): <img width="517" alt="Supportournonprofit_freeCodeCamp_org" src="https://user-"

At freeCodeCamp's current level of efficiency, every dollar donated to our nonprofit translates to 50 hours worth of learning. Both the One-time and Annual options have the correct amounts, but for some reason the monthly doesn't have the correct amount: $50 should be 25,000 hours: <img width="507" alt="SupportournonprofitfreeCodeCamporg" src="https://user-"$35 should be 1,750 hours: <img width="517" alt="SupportournonprofitfreeCodeCamporg" src="https://user-"$5 should be 250 hours: <img width="522" alt="Supportournonprofit_freeCodeCamp_org" src="https://user-"
~The hour is calculated for the month like we discussed? For example $5: ~ Edit: Never mind, I realised the issue. Will fix.


Question: A useful property of an _SVG_ (scalable vector graphics) is that it contains a `path` attribute which allows the image to be scaled without affecting the resolution of the resultant image. <del> Currently, the `img` is assuming it's default size, which is too large. Correctly, scale the image using it's `id` as a selector, and setting the `width` to `max(100px, 18vw)`. </del> <ins> Currently, the `img` is assuming its default size, which is too large. Correctly, scale the image using it's `id` as a selector, and setting the `width` to `max(100px, 18vw)`. </ins> # --hints--

There's a consistent grammatical issue. The author uses "it's" to indicate possession, when the correct word is "its". Due to this, I am also willing to look for other grammatical errors. They could cause confusion, or, at the very least, annoyance. /Note: this issue is present throughout the entire challenge/ n/a n/a Device: Macbook Air OS: Mac OS Ventura Browser: Chrome This is more of a writing issue than a tech one. I hope that's ok.
Thank you for taking the time to open this. I am only able to see the use of in 2 challenges: step-8 step-10 Would you mind sharing any more?
An issue with the label is open for contribution. The first comprehensive PR created will be reviewed and merged. We typically do not assign issues to anyone other than long-time contributors. If you would like to contribute, and have not read the contributors docs, please do so here: If you have any issues with contributing, be sure to join us on the , or on the


Question: <!-- AUDIO REFERENCE: <del> Jake: Hey. You are Sarah, right? I'm Jake, from Security. I'm here to give you your access card. </del> <ins> Jake: Hey. You're Sarah, right? I'm Jake, from Security. I'm here to give you your access card. </ins> Sarah: Thanks, Jake. Is it contactless? -->

Change "You are Sarah" to "You're Sarah" in step 150, 154, and 155 of Learn Greetings in your First Day at the Office. The change is to match the caption text. (The text isn't visible on the Task 155 page, but in the code.) Change "You are Sarah" to "You're Sarah" in the following files:
We introduce contraction form in task 1 () so I assume we would want to use contractions in later tasks. But I'll wait for the curriculum team to confirm before opening this issue up for contribution. (If we don't want to use contraction in these tasks, the caption text should be updated to match the fill the blank text.)


Question: code[class*='language-'], pre[class*='language-'] { border-radius: 0; <del> border: none; </del> } pre {

Unnecessary borders are displayed around each line in the solution code of certification projects. For example: to someone's certification page on 'View' ('View Code') to see the solution code Each line in the solution code should not have borders around it ! Device: Laptop OS: Windows 10 Browser: Chrome Version: 114.0.5735.199 (Official Build) (64-bit) The border seems to be in
Hi the borders on the code doesnt seem to be a good UX. I would like to take up this issue.
Hello! I would like to work on this issue. Seems to be a quick fix.
Hey. Contributions are very welcome. Please take a look at to get started.
! Would this sample look better ?
I have fixed the issue and created a pull request . Please review it and let me know if there are any concerns.
To solve the issue move the properties in , to CSS selector that affects the challenges' layout, or doesn't affect the setting layout.
Simply removing the border property in fixes the issue ! ! Is it fine if done this way? I have reverted the changes I made to the bootstrap file back to its original form.
How can we find those code files from the repo ? If the particular link to the file is not provided in the issue.
Hello I would like to request to be assigned to fix this
Hi! I would like to take up this issue


Question: # --description-- <del> Move the right eye into position with a `position` property of `absolute` a `top` of `54px`, and a `left` of `134px`. </del> <ins> Move the right eye into position with a `position` property of `absolute`, a `top` of `54px`, and a `left` of `134px`. </ins> # --hints--

this sentence is missing a comma after "absolute". This looks like something that can be fixed by "first-time" code contributors to this repository. You should look at the file linked above. Please make sure you read our , we prioritize contributors following the instructions in our guides. Join us in our or our if you need help contributing; our moderators will guide you through this. Sometimes we may get more than one pull request. We typically accept the most quality contribution followed by the one that is made first. Happy contributing.


Question: You can use the built-in function `print()` to print the output of your code on the terminal. <del> Functions are reusable code blocks that you can call (run) when you need them. To call (or invoke) a function, you just need to write a pair of parentheses next to its name. You will learn more about functions very soon. </del> <ins> Functions are reusable code blocks that you can call, or invoke, to run their code when you need them. To call a function, you just need to write a pair of parentheses next to its name. You will learn more about functions very soon. </ins> For now, go to a new line and add an empty call to the `print()` function. You should not see any output yet.

The second paragraph of the instructions (shown below) uses parentheses twice. <img width="615" alt="Screenshot 2024-03-27 at 13 27 32" src=""Given that this is a lesson about the syntax for how to call a function, I think the use of parentheses is confusing N/A (not a coding issue) N/A (not a coding issue) No response Device: [MacBook Air] OS: [macOS] Browser: [Firefox] Version: [123.0] No response
Hi I do not see the word "parentheses" used twice, I hope I understood the issue correctly. Also, what would you suggest the updated instruction to be?
If I understood correctly you mean the parentheses in , right?
The only parentheses I can see on second paragraph are the following: ... call (run) ... call (invoke) If I understood correctly, right? If so, these are just used syntactically, so they should be ignored
Hi thanks for the questions. By "parentheses", I mean the symbols "(" and ")", not the word. Apologies for the confusion. My proposed solution would be rewriting the second paragraph as follows: Functions are reusable code blocks that you can call/run/invoke when you need them. To call a function, you just need to write a pair of parentheses next to its name. You will learn more about functions very soon. My issue with the previous was that the use of parentheses in the paragraph previously indicated to me examples of syntax, while not actually being examples of syntax. I think this rewriting clears up that confusion, and means that parentheses are used in this step during examples of function calls, which I think reads clearer
Okay, I had missed the first sentence of your post . I would go with:
Thanks for the clearification I'd suggest we go with this modified instruction.


Question: "jquery": "^3.4.1", "lodash": "^4.17.15", "loop-protect": "^2.1.6", <del> "monaco-editor": "^0.17.1", </del> <ins> "monaco-editor": "^0.18.1", </ins> "monaco-editor-webpack-plugin": "^1.7.0", "nanoid": "^1.2.2", "prismjs": "^1.17.1",

Describe the bug When viewing any challenge in Firefox, I can scroll in the instructions/theory part of the window, but the scrolling does not work in the code editor. I have tried with an external mouse as well as with the Trackpad in my Mac. In the same computer and with the same devices it works perfectly using Chrome. To Reproduce to any challenge. to scroll inside the code editor. does not work. Expected behavior It should scroll. Desktop: macOS 10.14.6 Mozilla Firefox 69.0.3 Additional context So far, to scroll in Firefox I have to click and drag the side scrolling bar in order to navigate the code. I think I'm only having this issue since the last redesign, but I may be wrong on this.
I've noticed this for quite a while - but I don't recall if it was present before the latest redesign.
I am also experiencing this problem as of the update. Windows 10 desktop Firefox 69.0.3 External mouse with a scroll wheel In order to scroll I have to find the very small and hard to see scroll bar inside the code editor and click+drag
Having the same issue as you Might take a dig in the code/inspector and see what's up.
It looks like a possible bug with the monaco editor (we are using monaco-editor": "^0.17.1") I confirmed the bug locally first and I then updated to the latest version of monaco and the scroll works again in Firefox. So it has been fixed. I'm just not sure how involved it is for us to update the editor?
Thanks for digging into this and finding the updates. I think we should be able to update monaco-editor itself which we have as a dep: But the issue right now is to confirm if react-monaco-editor is going to play along as well: I think I could not bump it last time I was trying to update it. Opening up for investigation and fix. A PR is most welcome, or any pointers are welcome as well.
I am also experiencing this problem after the update. MacOS 10.14.6 Firefox 69.0.3 Both external mouse with a scroll wheel and Macbook Pro trackpad cannot scroll the code window however Chrome and Safari browser does not have this problem.
I was able to update to both and .

I updated react-monaco to 0.18.1 and react-monaco-editor to 0.31.0, did a few challenges locally and didn't see any immediate issues from the editor update. A PR would just be a chore update to and package- correct?
Thanks for reporting, please use the voting feature instead of confirming further. We know this is a confirmed bug, more so in an underlying library that we have little control over. We are working on a solution. Keeping the thread free for solutions will help.
Yes please. You are the rockstar.


Question: ], [ "http://i.imgur.com/sfsidp6.jpg", <del> "El texto "Volverse bueno programa requiere tiempo."", </del> <ins> "El texto "Volverse bueno programando requiere tiempo."", </ins> "Volverse bueno programando requiere tiempo. No esperarías derrotar a un maestro del ajedrez después de jugar por 3 meses. No esperes crear el próximo Facebook después de programar 3 meses.", "" ],

[X] Learn how Free Code Camp Works [X] Create a GitHub Account and Join our Chat Rooms [X] Configure your Code Portfolio [X] Join a Campsite in Your City [X] Learn What to Do If You Get Stuck


Question: ```js assert.strictEqual( (function () { <del> bob.setFirstName('Haskell'); return bob.getFullName(); </del> <ins> _test_bob.setFirstName('Haskell'); return _test_bob.getFullName(); </ins> })(), 'Haskell Ross' );

A user can fail with correct code because the tests secretly rely upon global variables accessible to the user. This code fails because the user has the correct solution but deleted the instantiation of the object. Tests should instantiate any data they need. We should update the seed code to We should then add and modify the test suite to use instead of . No response All No response
Hello, Just to clarify, did you want to add in the user code block? Because I noticed when I attempted to reproduce the bug you encountered that two test cases still passed, despite not being initialized in the user's code. I checked the lesson's markdown file and found out that those two test cases did have their own initialized. I was thinking of adding to all the test cases instead. For reference, here's the code for one of the test cases that still passed, despite the bug.
Those tests initiate their own values so they are fine. I'm talking about the tests that fail if users modify their seed code to not have the object initialization. The new variable would go into a new --after-user-code-- part; that's not currently present. Just adding this new variable inside of the seed creates the exact same problem. Note - this issue isn't marked as ready for contributions yet. Maybe we should review if the tests logic too to see if they are independent
Opening this up for contribution.
Hi assign this issue for branch bugfix/. I have resolved it, need to create PR for same
We don't assign issues. The first PR that fully covers the issue will be accepted.
Hi ok !! I have raised PR . thanks for reply.


Question: <Spacer size='medium' /> <h2>{t('learn.fill-in-the-blank')}</h2> <Spacer size='small' /> <del> <ObserveKeys> </del> <ins> {/* what we want to observe is ctrl/cmd + enter, but ObserveKeys is buggy and throws an error if it encounters a key combination, so we have to pass in the individual keys to observe */} <ObserveKeys only={['ctrl', 'cmd', 'enter']}> </ins> <div> <p> {splitSentence.map((s, i) => {

The English curriculum was as an upcoming change. A new "Fill in the blank" style challenge was created for it. When you go to one of these challenges and try to type an , it doesn't show up (sometimes). If you type it really quickly after a different character, it does show up. I'm quite sure the hotkeys are interfering - if you turn them off, the problem goes away. The is the one that we noticed, but there could be other characters that have this issue as well. Fill in the blank style challenges the codebase with the upcoming changes shown to one of the fill in the blank challenges: http://localhost:8000/learn/a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/right to type an in the blank, it doesn't work of keyboard shortcuts in settings, it does work All keys to work all the time. Related discussion:


Question: "title": "Generate Random Whole Numbers within a Range", "difficulty":"9.9829", "description":[  "We can use a certain mathematical expression to get a random number between between two numbers.",   "We can use a certain mathematical expression to get a random number between two numbers.",  "Math.floor(Math.random() * (max - min + 1)) + min", "By using this we can control the output of a random number." ],

Challenge has an issue. "We can use a certain mathematical expression to get a random number between between two numbers." double between Best regards. misuta !


Question: | passport-linkedin-oauth2        | Sign-in with LinkedIn plugin.                                        | | passport-oauth                  | Allows you to set up your own OAuth 1.0a and OAuth 2.0 strategies.   | | request                         | Simplified HTTP request library.                                     | <del> | lodash                          | Handy JavaScript utlities library.                                   | </del> <ins> | lodash                          | Handy JavaScript utilities library.                                   | </ins> | uglify-js                       | Dependency for connect-assets library to minify JS.                  | | mocha                           | Test framework.                                                      | | chai                            | BDD/TDD assertion library.                                           |

The updated topic banner on the is covering up a couple of the table headers here <img width="1087" alt="Screen Shot 2023-01-03 at 9 51 13 PM" src="https://user-" to for a new update topic banner to show up on homepage. the issue There should be some space between the banner and the table headers in the forum like it was before. <img width="1112" alt="Screen Shot 2023-01-03 at 9 47 33 PM" src="https://user-"- Device: [mac book pro] OS: [MacOS] Browser: [ Chrome] No response
div id="ember47" class="categories-and-latest ember-view" Try adding a padding-top to this element. I used around 100px
this issue may be with the discourse forum, itself. If it's in the discourse forum and it's repeated in different forums, not just freeCodeCamp, then it should be solved there. Removing the below properties fixed it in my devtools.
I looked at the following communities that use discourse and didn't notice the problem there. At first glance, it looks like it is only on the fcc forum page.


Question: A game is played with three piles of stones and two players. <del> On each player's turn, the player removes one or more stones from the piles. However, if the player takes stones from more than one pile, the same number of stunes must be removed from each of the selected piles. </del> <ins> On each player's turn, the player removes one or more stones from the piles. However, if the player takes stones from more than one pile, the same number of stones must be removed from each of the selected piles. </ins> In other words, the player chooses some $N > 0$ and removes:

! there is written stUnes instead of stOnes This looks something that can be fixed by "first time" code contributors to this repository. Here are the files that you should be looking at to work on a fix: List of files: Please make sure you read , we prioritize contributors following the instructions in our guides. Join us in or if you need help contributing, our moderators will guide you through this. Sometimes we may get more than one pull requests. We typically accept the most quality contribution followed by the one that is made first. Happy contributing.


Question: const { close, isOpen, <ins> isSignedIn, </ins> submitChallenge, handleKeypress, message,

I'm testing beta. Describe the bug When submitting a challenge using Ctrl+Enter it automatically completes also the following challenge. To Reproduce Steps to reproduce the behavior: a logged out user to the first challenge it Ctrl+Enter marks as solved also the following challenge and you can go ahead Expected behavior It should solve the current challenge and present the following one. Screenshots As you can see I can submit multiple challenges: ! Desktop (please complete the following information): OS: Ubuntu Browser Firefox Version 69.0.1 Additional context I've been able to reproduce it on but I could skip only one challenge. On my local dev I managed to skip 4.
I've digged a bit on this issue, and I think the problem is somehow related to this line: As this is triggered also when I'm submitting the finished challenge. If I comment that line out everything works fine, meaning I can Ctrl+Enter to run the tests and submit and the bug disappear. I'm going to dig a bit more, but does that makes any sense to you?
Thanks for testing our beta version and reporting this! You rock. /cc
Thanks It looks like I didn't test the logged out behaviour. so, what do we want to happen for logged out users? The issue I see is that it currently says 'Submit and go to the next challenge', but clearly they can't submit. For now, do we just want them to see the same as logged in users (and quietly not submit)?
Here is what I would do: ! Of course the modal should close as well like you mentioned. The signin button can link to same as the home page CTA. And we could remove from the first button
Turns out it's not working properly even when the user is logged in. I think it's a race condition between and . was quite right, the problem is on that line. It shouldn't be called if the modal is open since it's listening to as well.
yes I think it's with the in the editor and the in the . I can give a further look later if you wish.
Thanks for the offer but I think (with your help!) I've fixed it. It seemed only fair, since I introduced the bug.
Excellent!
Release on its way, should be available within the hour.


Question: import PropTypes from 'prop-types'; import { reduxForm } from 'redux-form'; <del> import { FormFields, BlockSaveButton, BlockSaveWrapper } from './'; </del> <ins> import { FormFields, BlockSaveButton, BlockSaveWrapper, formatUrlValues } from './'; </ins> const propTypes = { buttonText: PropTypes.string,

Describe the bug Submitting the solution link as "" produces an error. Submitting "" does not. Whenever we submit a solution link "" it is appended with "/api/" so resultant solution gives "Not Found/Timeout error" and the same link submitted without "/" like "" gives solution as accepted. To Reproduce Steps to reproduce the behavior: to on 'solution input box' "https://freecodecamp-" solution gets accepted. "https://freecodecamp-" error Expected behavior This should be tackled as Chrome appends "/" by default to any domain URL you copy, so people who would copy URL from search bars will get URLs appended with "/" hence producing wrong results. This file shows the testString is directly appended with "/api" without checking if the input URL contains "/" at the end or not. Screenshots ! Desktop (please complete the following information): OS: Ubuntu 18 Browser: Google Chrome Version 73.0.3683.75
I am not having this problem - my project will pass the tests with or without the trailing https://fcc-manage-npm- and https://fcc-manage-npm- both pass for me in chrome Can you share a share a screen shot of the error?
Updated
hmm, it's strange that my project will give a good response when that string is appended but not yours https://fcc-manage-npm- - package as response https://freecodecamp- - not found as response not sure what is causing this - the only difference seems to be that I'm using glitch and you're using heroku in fact mine will work like this... https://fcc-manage-npm- so maybe how the two websites process a route or something? can they do that? glitch strips out the extra or something? weird Either way - I think a solution like you suggested would probably work - check if the submitted URL ends in a and remove it if it's there. This same problem probably occurs throughout the whole backend area all over the place.
Weird, would u check with an alternative hosting if the problem persists? If the problem persists the last solution would be stripping the las from input url
Did you try this Above is the actual link processed in the test with an appended , It gives a response with the same as it is shown in the screenshot I posted. So I guess the problem is with the routing of Heroku.


Question: font-size: 1.5rem; } <ins> .donation-modal .btn-link:focus { outline-width: 1px; outline-style: solid; } </ins> @media screen and (max-width: 991px) { .donation-icon-container { margin: 30px;

Describe the bug The popup modal for becoming a sponsor cannot be closed by just using the keyboard. To Reproduce Steps to reproduce the behavior: some challenges which triggers the modal Expected behavior The modal closes when pressing the Esc key The modal closes when clicking somewhere outside of the modal I can navigate to the "Ask me later" button with the tab key to close the modal Screenshots ! Desktop (please complete the following information): OS: Ubuntu Browser: chrome and firefox Version: Latest Smartphone (please complete the following information): Unknown
This is by design to the best of my knowledge. I would defer to Quincy for a confirmation.
Thanks for reporting that the "ask me later" link should be accessible by tab but you're correct - it isn't. We will fix this. We decided not to have escape key / clicking outside of the modal to dismiss this modal (like we do with other modals) since the goal is to get people to actually slow down and consider donating to our nonprofit - not to just mash the escape key.


Question: assert(document.querySelectorAll('.characters > div')?.length === 4); ``` <del> Your two new `div` elemnts should have the `class` set to `blue`. </del> <ins> Your two new `div` elements should have the `class` set to `blue`. </ins> ```js const divs = document.querySelectorAll('.characters > div');

There is a typo in learn-intermediate-css-by-building-a-picasso-painting, is used instead of . Here is the typo Here is the markdown file Please make sure you read , we prioritize contributors following the instructions in our guides. Join us in or if you need help contributing, our moderators will guide you through this. Sometimes we may get more than one pull requests. We typically accept the most quality contribution, followed by the one that is made first. Happy contributing.
can i take this up
feel free to open pull request after you have read the guidelines


Question: } ::selection { <del> background-color: rgba(var(--highlight-color), 0.3); </del> <ins> background-color: var(--selection-color); </ins> } @media (max-width: 500px) {

If I try to select text with my mouse so I can copy/paste it or something - the selected text has the same background as the rest of the page. Making it difficult to see what is selected, and frustrating to try and select, well anything. ! This seems to occur across the entire site. Perhaps it was intentional or something, but I don't think it's a good ux. Note: the text does actually get selected, so you can still copy/paste it. Tested on Chrome and Firefox
Good catch. It'll be this PR: which didn't scope the change to challenge descriptions. I'll put together a quick fix. Edit: nevermind, it's just that has to be passed four values, not two. I don't quite understand how this ever worked.


Question:
## Description
  A side effect of the sort method is that it changes the order of the elements in the original array. In other words, it mutates the array in place. One way to avoid this is to first concatenate an empty array to the one being sorted (remember that concat returns a new array), then run the sort method.   A side effect of the sort method is that it changes the order of the elements in the original array. In other words, it mutates the array in place. One way to avoid this is to first concatenate an empty array to the one being sorted (remember that slice and concat return a new array), then run the sort method.
 ## Instructions

Feature Request: Add as valid method to clone/copy array and as an alternative to Link to challenge: I often use () to return an array copy, as this is what MDN recommends. When I was working on this challenge I could not get it to pass, even though my solution was returning the correct answer. The challenge ONLY accepts answers that use the format [].concat(arr). The wording in the challenge is clear, but experience from earlier challenges hava been lenient as long as you provide a valid solution. Other reasons: When googling for array copying the top result from MDN recommends slice.()MDN's Array page recommends using () for array copying opinion, is more readable than
You have to also view the test text as part of the instructions for the challenges. In this case, one of the the challenge test expects you to use the method. It even mentions the method in the Description section of the challenge. Always read the test text to make sure you understand what is being asked of you.
If anyone working on this issue? I would like to take care of this. In my opinion, has a point in that the test should allow .slice() if the effect is the same - we know that many times people can solve a problem in multiple ways, and that should be ok. Please let me know. I can either clarify the text so that the user knows to use concat, or I can modify both the description and the test so that .slice(0) is accepted ( I am inclining more towards the second option though).
I bring it up since alternative solutions has been accepted previously in the corriculum. As long as the final solution is correct. It was frustrating to have the tests fail even though the output was correct.
I normally would agree, but the description mentioned and the test case specifically tells you to use
Does it have to be specifically .concat() though? The test seems to be about learning mutation and which functions have side effects and how to work around that. We learn about both concat and slice earlier on, and it seems arbitrary to only accept concat. If the point of the challenge is to learn about concat that's fair. I'd recommend mentioning that .slice() is also an option, but ask to use .concat() still.

If the point is avoiding mutation and being aware that certain methods like .sort() will have side effects on the original array. Then I don't understand why it's so strict.
and After thinking a bit more about your points, I agree this challenge could be updated to allow any valid method for copying the array (, , , ) and other possible ways not mentioned. While looking at the challenge tests, I also realized someone could still technically hard-code the final return value, so I created a PR to address your concerns and attempt to not allow hard coding of the final array returned.


Question: You are provided sentences with some missing words, like nouns, verbs, adjectives and adverbs. You then fill in the missing pieces with words of your choice in a way that the completed sentence makes sense. <del> Consider this sentence - It was really **____**, and we **____** ourselves **____**. This sentence has three missing pieces- an adjective, a verb and an adverb, and we can add words of our choice to complete it. We can then assign the completed sentence to a variable as follows: </del> <ins> Consider this sentence: ```md It was really ____, and we ____ ourselves ____. ``` This sentence has three missing pieces- an adjective, a verb and an adverb, and we can add words of our choice to complete it. We can then assign the completed sentence to a variable as follows: </ins> ```js const sentence = "It was really " + "hot" + ", and we " + "laughed" + " ourselves " + "silly" + ".";

The following sentence in the Word Blanks lesson should have a code block (three backticks) surrounding the code section which is directly referring to the completed code block below it on the page. Instead of: Consider this sentence - It was really , and we ourselves . It should say: Consider this sentence - The sentence has been translated because of the missing code blocks (and will not make sense as it's a direct reference to the actual code shown below it) The sentence with the blanks should be in a code block that does not wrap. (three backticks above and below it) Instead of: Consider this sentence - It was really , and we  ourselves . It becomes: Consider this sentence - No response n/a No response
Question for those in the know. Do we have a way to keep content from being translated that doesn't involve using the triple back tick code block? I would be cool to use sr-only text "Blank" (or something similar) for those underlines to represent missing text. But we can't do that using the code blocks since they are wrapped in a .
Do they get wrapped in a if they're inline code?
It looks like they are just wrapped in strong tags in crowdin at least. I don't see a pre tag.
pre sounds like a plausible idea. We should go ahead with that.
The challenge require the sentence to not be translated, and element don't stop translation, it gives the choice to the translation to translate or not, which isn't ideal. Here is the file, to solve this issue, change the structure of the sentence to md It was really , and we ourselves . ` If you would like to fix this issue, please make sure you read , we prioritize contributors following the instructions in our guides. Join us in or if you need help contributing, our prolific contributors will guide you through this.
nope, but we can open an issue for this yes
Can you assign me this issue
Only issues with the or label is open for contribution. The first comprehensive PR created will be reviewed and merged. We typically do not assign issues to anyone other than long-time contributors. If you would like to contribute, and have not read the contributors docs, please do so here: If you have any issues with contributing, be sure to join us on the , or on the


Question: button1.onclick = buyHealth; button2.onclick = buyWeapon; button3.onclick = goTown; } --fcc-editable-region--

In step 41 of the RPG project in the JS beta curriculum, the instruction states: Change the property of the to be "You enter the store.". I believe this sentence is not 100% clear without either removing the word “the” in front of or adding the word “variable” to the right of . As it is, the sentence misleads a bit because it says “the ” which makes it sound like it is referring to some text somewhere, instead of the text variable. so either: Change the property of to be "You enter the store.". or Change the property of the variable to be "You enter the store.". will be clearer. Please look at questions posted on the forum for examples of people missing the point of the request with the current wording. I personally prefer the second one. N/A N/A N/A Example of confused learner:


Question: } if (provider === 'email') { <del> return User.findOne$({ where: { email } }) </del> <ins> return User.findOne$({ where: { email: new RegExp(email.replace('.', '.'), 'i') } }) </ins> .flatMap(user => { return user ? Observable.of(user)

I can't change my email address on the settings page. Anyone one else want to confirm this?
Happy to help on this - I poked around a bit and believe I've found the source of the bug. Also glad to point you in that direction if you prefer to handle this since you've already assigned it to yourself.
Sure, thing go for a PR if you have something ready.
I have a WIP PR ready - cool if I open that?
Do it you can use draft mode if it's not ready.

Describe the bug TL;DR – first signed up with GitHub (which has email # 1 set as primary). Lately changed the email on FCC to email # 2 and since then unable to log in using any of the available methods. I have two emails: .domain On GitHub, I have the first one as a primary email and the second one as a secondary. IIRC, I first signed up to FCC with GitHub, so the letters were going to my first email. Then I set my email at FCC to the second one and this is where the fun begins. What happens when I try to log in using different methods: As you can see, no method allows me to log into my original account. Email bindings shown in each of the accounts: My session cookie is still present in one of the browsers and when I try to change the email back to # 1, it says that it is already bound to another account, which is fair enough.
Does something need to be clarified? It's not a "Help" issue, it's a bug report.
What if you try to change your email to some other email - then go to the browser that's still logged in with the original account, and change the email back to - or if you're still logged in on a browser with your original account, maybe change the email to a new email and see if that will allow you on to your original account. It doesn't get to the root of the problem, but it may get you back on to your original account.
Hi Thanks for your report. Can you send me an email with details of your emails. I'll fix up your account, and investigate the root cause and possible fix there on.
I no longer have this session. I've sent an email, the subject is as the name of the issue.
I can see that we indeed have two accounts for each of your emails listed in the email. For all intents and purposes, we only use email as the primary identifier of your account. So, it literally depends on what a provider returns us as an email address to lookup and sign you into the account. For example: First email: Changed email: Scenario 1: When you sign-in through email, you must use your changed email "", using the old email will indeed create a new account for "". We do not track old emails per account as a measure of privacy.

Scenario 2: When you sign-in through social providers like GitHub, they should be returning us the changed email, or indeed it will simply create a new account for the email they returned to us. We do not bind email to social provider again for privacy reasons. Essentially by design, we will create or return an account as per the authentication method used.
Well, the thing is – there are now three accounts. The original one is .
Okay, I found the issue. Thanks for the additional information. This indeed is a validation bug, when someone changes email. So, when you entered your email on the update form in settings: You entered something like: , this was stored on our DB as is without sanitising it to lowercase. And the providers will always return lowercase emails. We unfortunately treated this incorrectly. If you are okay, I am going to delete your 'new accounts' and restore the email that you intended as per the change lower-cased, which should give you access back to your original account. As for the fix, I'll audit the code and get back to you.
I don't use them, so yeah.
thanks for confirming, I have updated the email to be lowercased on your original account and removed the new accounts. Can you test this and let me know, if it's all fixed.
Yep, it's working.
The fix for this is dependent on


Question: "Vamos a darle un id único a cada uno de nuestros elementos div que tienen la clase well.", "Recuerda que puedes darle a un elemento un id como el siguiente:", "<div class="well" id="center-well">",  "Dale al pozo de la izquireda el id left-well. Al pozo de la derecha, dale un id de right-well."   "Dale al pozo de la izquireda el id left-well. Al pozo de la derecha, dale un id right-well."  ] }, {

[ ] Use Responsive Design with Bootstrap Fluid Containers [ ] Make Images Mobile Responsive [ ] Center Text with Bootstrap [ ] Create a Bootstrap Button [ ] Create a Block Element Bootstrap Button [ ] Taste the Bootstrap Button Color Rainbow [ ] Call out Optional Actions with Button Info [ ] Warn your Users of a Dangerous Action [ ] Use the Bootstrap Grid to Put Elements Side By Side [ ] Ditch Custom CSS for Bootstrap [ ] Use Spans for Inline Elements [ ] Create a Custom Heading [ ] Add Font Awesome Icons to our Buttons [ ] Add Font Awesome Icons to all of our Buttons [ ] Responsively Style Radio Buttons [ ] Responsively Style Checkboxes [ ] Style Text Inputs as Form Controls [ ] Line up Form Elements Responsively with Bootstrap [ ] Create a Bootstrap Headline [ ] House our page within a Bootstrap Container Fluid Div [ ] Create a Bootstrap Row [ ] Split your Bootstrap Row [ ] Create Bootstrap Wells [ ] Add Elements within your Bootstrap Wells [ ] Apply the Default Bootstrap Button Style [ ] Create a Class to Target with jQuery Selectors [ ] Add ID Attributes to Bootstrap Elements [ ] Label Bootstrap Wells [ ] Give Each Element a Unique ID [ ] Label Bootstrap Buttons [ ] Use Comments to Clarify Code
Working on this one


Question: "assert.deepEqual(inventory([], [[2, 'Hair Pin'], [3, 'Half-Eaten Apple'], [67, 'Bowling Ball'], [7, 'Toothpaste']]), [[2, 'Hair Pin'], [3, 'Half-Eaten Apple'], [67, 'Bowling Ball'], [7, 'Toothpaste']]);", "assert.deepEqual(inventory([[0, 'Bowling Ball'], [0, 'Dirty Sock'], [0, 'Hair pin'], [0, 'Microphone']], [[1, 'Hair Pin'], [1, 'Half-Eaten Apple'], [1, 'Bowling Ball'], [1, 'Toothpaste']]), [[1, 'Bowling Ball'], [1, 'Dirty Sock'], [1, 'Hair pin'], [1, 'Half-Eaten Apple'], [1, 'Microphone'], [1, 'Toothpaste']]);" ] <ins> }, { "_id": "a2f1d72d9b908d0bd72bb9f6", "name": "Make a Person", "difficulty": "3.12", "description": [ "Fill in the object constructor with the methods specified in the tests.", "Those methods are getFirstName(), getLastName(), getFullName(), setFirstName(), setLastName(), and setFullName().", "These methods must be the only available means for interacting with the object.", "There will be some linting errors on the tests, you may safely ignore them. You should see undefined in the console output." ], "challengeEntryPoint": "var bob = new Person('Bob Ross');", "challengeSeed": "var Person = function(firstAndLast) {n    return firstAndLast;rn};", "tests": [ "expect(Object.keys(bob).length).to.eql(6);", "expect(bob instanceof Person).to.be.true;", "expect(bob.firstName).to.be.undefined();", "expect(bob.lastName).to.be.undefined();", "expect(bob.getFirstName()).to.eql('Bob');", "expect(bob.getLastName()).to.eql('Ross');", "expect(bob.getFullName()).to.eql('Bob Ross');", "bob.setFirstName('Happy');", "expect(bob.getFirstName()).to.eql('Happy');", "bob.setLastName('Trees');", "expect(bob.getLastName()).to.eql('Trees');", "bob.setFullName('George Carlin');", "expect(bob.getFullName()).to.eql('George Carlin');" ] </ins> } ]

<!-- NOTE: If you're reporting a security issue, don't create a GitHub issue. Instead, email We will look into it immediately. --In the challenge CSS Flexbox: Use the flex-wrap Property to Wrap a Row or Column, the value wrap-reverse is defined: wrap-reverse: "wraps items from right-to-left if they are in a row, or bottom-to-top if they are in a column." This definition is not correct. Actually wrap-reverse wrap content changing de cross-axis direction, bottom to top in a row, and left to right in a column. Browser Name: Browser Version: Operating System:
I'd like to take on this issue please
Since the curriculum content is in the repo, I submitted the PR there.
Ok, thanks Simon.


Question: ```yml tests:  - text: The globalTitle variable should not change. testString: assert(globalTitle === "Winter Is Coming");  - text: Your code should not use the replace method for this challenge. testString: assert(!code.match(/.?[sS]*?replace/g)); - text: urlSlug("Winter Is Coming") should return "winter-is-coming".

<!-- NOTE: If you're reporting a security issue, don't create a GitHub issue. Instead, email We will look into it immediately. --In the exercise, one of the condition is "The globalTitle variable should not change." but it returns an error if you modified the var (for debugging) at the top, even if your function doesn't mutate it. The verification should be that the initial globalTitle variable is the same as the final one, instead of simply looking to match it to a string. Add a Link to the page with the problem:
Hello there, Ideally, I agree, the tests would be robust enough to account for something like this. However, there is usually a reason for the comments, and users should not expect their code to pass, if they ignore this. If others agree to change this, I would not be opposed to the first test being removed. I cannot see it being used in any meaningful way in the seed.
I would argue that, as this lesson comes after the section, users should be somewhat comfortable with using . Changing a global variable's hard-coded value seems like a less practical debugging method than logging a function call with the argument value to debug. Additionally, as mentioned, the is present to indicate which portions of the seed code should not be modified.
for debugging purposes, instead of changing a variable you are told to not change you should change the function call, wiritng there but, yeah, it's a thing that trips many up. But dealing with small details is also something that should be learned
I believe the original purpose of the global variable was to actually pass a variable with a known value () to the function and validate that the function does not mutate it. However, the tests do not even check for this case. Such a test would look like: As states, the user should be writing their own calls to the function to test it, instead of changing the global variable. One way to possibly handle this, would be to remove the global variable declaration and use something similar as I mentioned above: I would argue, this kind of test should be to all the functional programming challenges, since this is one of the main concepts to learn.
I can go ahead and submit a PR if we'd like to go this route.
can a string even be mutated in that way? shouldn't strings be immutable and so that is not possible in any case?

the test should be to make sure the user reference function parameter instead of a global variable even if the global variable is present, I think To see if passed in argument is not mutated should be a thing to check with arrays and objects, as those are mutable
you are correct that strings are immutable, but it is possible to reassign the value of the variable within the function (which is bad practise, thus the reason for the test I believe).
I mean if the global variable is removed from the editor you can't change a global string by operating on function parameter, right?
Correct - if we remove the global variable entirely, then it cannot be modified. If we leave it, it can only be modified by assigning the value to that variable name within the function. However, in general it is bad practise to modify the values of a function's arguments directly - with strings, it is less harmful than it is with arrays, but I believe that was the intent behind this particular test case. !
I should not have used the word "mutable". Looking at the challenge again, I think it would be fine to remove the global variable all together as it is not used in any other test (except the first). So, my suggestion is to remove the declaration and remove the first test, unless someone else can find a good reason to keep them.
I have some errands to run, but can submit a PR later this evening. If anyone else would like to tackle this before then, let me know and I'll gladly step back and give you the opportunity!
I would like to work on this issue, if that's okay with you .
By all means, go ahead! As a note, issues labelled with the "help wanted" tag (like this one) don't require permission before submitting a PR - I only made my earlier comment to ensure my interest didn't deter other contributors. Feel free to let me know if you have any questions!


Question: ## --video-solution-- <del> 1 </del> <ins> 2 </ins>

The answer is wrong for this page. N/A I expected the correct answer to be 'They focus on presenting information rather than programming logic.' But the correct answer appears to be 'They lack the ability to create webpages.'. <img width="845" alt="image" src=""I think the system is irrelevant, so I am skipping this. No response


Question: Given a positive integer `num`, return the sum of all odd Fibonacci numbers that are less than or equal to `num`. <del> The first two numbers in the Fibonacci sequence are 1 and 1. Every additional number in the sequence is the sum of the two previous numbers. The first six numbers of the Fibonacci sequence are 1, 1, 2, 3, 5 and 8. </del> <ins> The first two numbers in the Fibonacci sequence are 0 and 1. Every additional number in the sequence is the sum of the two previous numbers. The first seven numbers of the Fibonacci sequence are 0, 1, 1, 2, 3, 5 and 8. </ins> For example, `sumFibs(10)` should return `10` because all odd Fibonacci numbers less than or equal to `10` are 1, 1, 3, and 5.

This should be a relatively easy fix for a first-time contributor :) This challenge says the first two numbers are 1 and 1 when in fact the first two numbers are 0 and 1. The first few numbers are: 0, 1, 1, 2, 3, 5 and 8 So when you update the text to also check the tests and make sure this doesn't change any of the expected test outcomes. The text should correctly state the first numbers as 0, 1, 1, 2, 3, 5 and 8 No response Device: [e.g. iPhone 6, Laptop] OS: [e.g. iOS 14, Windows 10, Ubuntu 20.04] Browser: [e.g. Chrome, Safari] Version: [e.g. 22] No response
An issue with the label is open for contribution. The first comprehensive PR created will be reviewed and merged. We typically do not assign issues to anyone other than long-time contributors. If you would like to contribute, and have not read the contributors docs, please do so here: If you have any issues with contributing, be sure to join us on the , or on the The affected file can be found here:
Hello! I'm a rookie software developer and I'm looking for a "good first issue" to start contributing to open-source projects. So could I be assigned to fix this issue please?


Question: # --solutions-- ```js <del> function knapsackUnbounded(items, maxweight, maxvolume) { var n = items.length; var best_value = 0; var count = new Array(n); var best = new Array(n); function recurseKnapsack(i, value, weight, volume) { var j, m1, m2, m; if (i == n) { if (value > best_value) { best_value = value; for (j = 0; j < n; j++) { best[j] = count[j]; } } return; </del> <ins> function knapsackUnbounded(items, maxWeight, maxVolume) { function getPickTotals(items, pick) { let totalValue = 0; let totalWeight = 0; let totalVolume = 0; for (let i = 0; i < items.length; i++) { totalValue += pick[i] * items[i].value; totalWeight += pick[i] * items[i].weight; totalVolume += pick[i] * items[i].volume; } return [totalValue, totalWeight, totalVolume]; } function getMaxes(items, maxWeight, maxVolume) { const maxes = []; for (let i = 0; i < items.length; i++) { const maxUnitsInWeight = Math.floor(maxWeight / items[i].weight); const maxUnitsInVolume = Math.floor(maxVolume / items[i].volume); const maxUnitsInLimit = Math.min(maxUnitsInWeight, maxUnitsInVolume); maxes.push(maxUnitsInLimit); </ins> } <del> m1 = Math.floor(weight / items[i].weight); m2 = Math.floor(volume / items[i].volume); m = m1 < m2 ? m1 : m2; for (count[i] = m; count[i] >= 0; count[i]--) { recurseKnapsack( i + 1, value + count[i] * items[i].value, weight - count[i] * items[i].weight, volume - count[i] * items[i].volume ); </del> <ins> return maxes; } function isInLimit(value, limit) { return value <= limit; } function getCombinations(maxValues, curPicks, combinations) { if (maxValues.length === 0) { combinations.push(curPicks); } const curMax = maxValues[0]; const leftMaxValues = maxValues.slice(1); for (let i = 0; i <= curMax; i++) { getCombinations(leftMaxValues, curPicks.concat(i), combinations); } return combinations; } let bestValue = 0; let bestPick = []; const maxes = getMaxes(items, maxWeight, maxVolume); const combinations = getCombinations(maxes, [], []); for (let i = 0; i < combinations.length; i++) { const curPick = combinations[i]; const [curValue, curWeight, curVolume] = getPickTotals(items, curPick); if (!isInLimit(curWeight, maxWeight) || !isInLimit(curVolume, maxVolume)) { continue; } if (curValue > bestValue) { bestValue = curValue; bestPick = [curPick]; } else if (curValue === bestValue) { bestPick.push(curPick); </ins> } } <del> recurseKnapsack(0, 0, maxweight, maxvolume); return best_value; </del> <ins> return bestValue; </ins> } ```

Describe your problem and how to reproduce it: One of the tests in this challenge has wrong result, both in test code and description. It says: This isn't correct. For example: knapsack having 11 panacea, 3 ichor and 15 gold has value , while being within the weight and value constrains: This seems to be case of precision issue. Multiplication input item weights, volumes and max values for those parameters, to start operations without decimals, makes result as it should be, also for the problematic test. Add a Link to the page with the problem:
Yes, it seems you are right - do you want to propose a solution?
Yes, sorry. The least invasive way to correct the seems to be to multiply in function, by the same factor, initial items weights, volumes, and in the first recursive call multiply and . This is enough to make calculations on integers and get correct answers. I don't know if just such change would be okay or if more desirable would be more elaborate rewrite of solution. Or at least changing to / and renaming some variables to better names.
would you be willing to open a PR for it so that the challenge can be changed? you can also contribute to the guide by opening a topic in the #subforum category in the forum
Definitely yes, although I need advice which approach here would be preferred. Considering that the sample solution in code is just used for internal testing and just small change to it can fix the issue.


Question: <div id='js-seed'> ```js <del> function tokenize(str, esc, sep) { </del> <ins> function tokenize(str, sep, esc) { </ins> return true; } ```

Describe your problem and how to reproduce it: and parameters are swapped in the starting code. As description and tests suggests second parameter should be separator character and third one escape character. Add a Link to the page with the problem:
Thank you, for pointing this out. Not a major issue, but makes sense to change. I am opening this up for first-timers


Question: # --instructions-- <del> Add `mongodb` and `mongoose` to the project’s `package.json`. Then, require mongoose as `mongoose` in `myApp.js`. Create a `.env` file and add a `MONGO_URI` variable to it. Its value should be your MongoDB Atlas database URI. Be sure to surround the URI with single or double quotes, and remember that you can't use spaces around the `=` in environment variables. For example, `MONGO_URI='VALUE'`. When you are done, connect to the database using the following syntax: </del> <ins> Add `mongodb@~3.6.0` and `mongoose@~5.4.0` to the project’s `package.json`. Then, require mongoose as `mongoose` in `myApp.js`. Create a `.env` file and add a `MONGO_URI` variable to it. Its value should be your MongoDB Atlas database URI. Be sure to surround the URI with single or double quotes, and remember that you can't use spaces around the `=` in environment variables. For example, `MONGO_URI='VALUE'`. When you are done, connect to the database using the following syntax: </ins> ```js mongoose.connect(<Your URI>, { useNewUrlParser: true, useUnifiedTopology: true });

The lesson at doesn't work with mongoose 6+ because now it just returns the , which causes the code from , lines through , to fail. Mongoose 6.0.1 ! Mongoose 5.4.13: ! This would fix it:
Now that I think of it, why does the boilerplate need to be backwards compatible with older versions of mongoose? I mean, the student would install the latest version always, right?
Thanks, for brining this up. We have discussed versioning in the lessons. I think we just missed this one. Solution Require Campers to install specific versions of and in the first lesson: Typically, we have gone with allowing only patch versions. So, the sentence should be something along the lines of: Does this sound about right?
I see! That sentence seems right to me and definitely would solve the problem without modifying the boilerplate
An issue with the help wanted or first timers only label is open for contribution. The first comprehensive PR created will be reviewed and merged. We typically do not assign issues to anyone other than long-time contributors. If you would like to contribute, and have not read the contributors docs, please do so here: If you have any issues with contributing, be sure to join us on the , or on the
I'll create the PR
note that you are not a first timer contributor
I would like to create a PR for this as I am a first time contributor and I reported this issue on the FCC forum. It will be a few hours until I can submit. I understand these are not assigned so if it's still open when I'm home, I'll gladly take it as my first contribution.
That's right! I didn't read the first timers only


Question: function nonMutatingSplice(cities) { return cities.slice(0,3); } <del> const inputCities = ["Chicago", "Delhi", "Islamabad", "London", "Berlin"]; </del> ```

This code has the comments, but really we shouldn't be using variables in the user code for tests. Rewrite test to use private variable. No response All No response


Question: text-shadow: none !important; } <ins> /* remove horizontal scrollbars for text-only code */ code[class='language-markup'] { white-space: normal !important; } </ins> /* a11y color adjustments */ :not(.dark-palette) .token.comment, :not(.dark-palette) .token.prolog,

Some steps are placing unnecessary horizontal scrollbars on plain text content. The content is being treated as a code example and thus is not line wrapping normally. Also, the content is coded as one continuous line with no newlines, thus causing a very long horizontal scroll and making it more difficult to copy. There are exceptions for having horizontal scrollbars in WCAG, but those exceptions are for content "which require two-dimensional layout for usage or meaning" (). Actual code examples can fall under this exception, but I think it would be much harder to argue that pure text content like this "requires" that it not line wrap normally in order to be understood. There are several instances of this in the CSS Magazine course: Steps 11, 12, 13, 15, 16, 17. These are the ones I know of. N/A Present this non-code content on the page in a way that it is allowed to line wrap normally. I am able to do this by removing from the element. I'm noticing we are using to code this in the challenge files: markup Soon the freeCodeCamp curriculum will be 100% project-driven learning... This causes the element to have the class . If we are only using for these types of non-code examples then perhaps we can use that class to remove the property. No response N/A No response
Hello can I work on this issue