Question: </blockquote> <footer>© 2018 Camper Cat</footer> </body> <ins> <style> body { height: 100%; margin: 0 !important; padding: 8px; } .overlay { margin: -8px; position: absolute; width: 100%; height: 100%; } </style> </ins> ```

Describe your problem and how to reproduce it: The info for the challenge said that.. And the challenge is.. However, after I put on the both the input and the button, then I press "TAB" it isn't the first thing that is selected! In fact, it's not even selected! And I had successfully finished the course. Also, I already checked the and I think it's trying to do the opposite. But again, as I'm a newbie, I don't know wheter I'm wrong or right, I just wanted to ask is this the desired goal? Thank you. Add a Link to the page with the problem: Tell us about your browser and operating system: Browser Name: Mozilla Browser Version: 66.0.5 (64-bit) Operating System: LSB Version: n/a Distributor ID: ManjaroLinux Description: Manjaro Linux Release: 18.0.4 Codename: Illyria
So, positive tabindices are weird. If you follow the instructions, click on the preview pane and shift-tab (i.e. tab backwards), it should focus on the submit button. Shift-tabbing again takes you to the search box. Why exactly mouse clicks put you in the middle of the tab order isn't clear to me. If you navigate to the preview pane entirely by the keyboard, it should focus in the expected order. The search box comes first, then the button and finally the three links. The easiest way I found to see this was to click on the test output box (below the editor) and tab from there. Probably not. I defer to here. In particular I think that we would be better off using this challenge to warn about the problems that come along with using positive values for .
Oh ok, thanks for clearing that up. I did try your suggestion by clicking the test output box first then tab from there, and it works like it used to be (as it should in instruction). But let me take a conclusion, so there's a mistake with the context in the course and it isn't my fault?
I don't think you did anything wrong. In fact, it was helpful that you looked into how it actually behaved and let us know it was a little weird! The challenge isn't wrong exactly, but I think the issues with positive indices could be highlighted a bit more.

Perhaps by inviting campers to tab around the preview panel and see the strange behaviour you noticed. This will need a bit more discussion before we try changing the challenge, though.


Question:
--- ## Description
 Otra forma de cambiar los datos en una matriz es con la función .pop() . .pop() se utiliza para " .pop() " un valor del final de una matriz. Podemos almacenar este valor "extraído" asignándolo a una variable. En otras palabras, .pop() elimina el último elemento de una matriz y devuelve ese elemento. Cualquier tipo de entrada se puede "extraer" de una matriz: números, cadenas, incluso matrices anidadas.
 var threeArr = [1, 4, 6];
 var oneDown = threeArr.pop();
 console.log(oneDown); // Returns 6
 console.log(threeArr); // Returns [1, 4]

 Otra forma de cambiar los datos en una matriz es con la función .pop() . .pop() se utiliza para  .pop()  un valor del final de una matriz. Podemos almacenar este valor "extraído" asignándolo a una variable. En otras palabras, .pop() elimina el último elemento de una matriz y devuelve ese elemento. Cualquier tipo de entrada se puede "extraer" de una matriz: números, cadenas, incluso matrices anidadas.
 var threeArr = [1, 4, 6];
 var oneDown = threeArr.pop();
 console.log(oneDown); // Returns 6
 console.log(threeArr); // Returns [1, 4]

  ## Instructions
 Use la función .pop() para eliminar el último elemento de myArray , asignando el valor " removedFromMyArray " a removedFromMyArray .

 Use la función .pop() para eliminar el último elemento de myArray , asignando el valor  removedFromMyArray a removedFromMyArray .
  ## Tests

In some curriculum articles, some of the code-bits highlighted by the are enclosed by a pair of quotes which are not necessary. Since the tags already highlight code, there is no need for the quotes to be there. That is, instead of: It should be: One example can be found in PRs: [x] English [x] Chinese - No instances found [] Russian [x] Arabic [] Portuguese [x] Spanish
Do we have a list of such challenges? That would help so we know when to close this issue (i.e. all have been covered).
I do not have a list of these challenges a.t.m. In the P.R. from where this originated, has said something about there being other files where we had this, he might have a lead on it, otherwise a repo wide search for can be run
OK.
If you do a quick search of the repo to see how many files might be affected by this, then I will query the open PRs to check all existing open PRs which might have such changes.
I would like to start from . Kindly let me know May I start now to avoid file merge conflict. I checked for . There are 18 files that will be affected.
we can take care of the merge conflicts if you want to submit the PR. Make sure you're working from the latest commit of the freecodecamp master branch. Please try to limit the changes in this PR to only removing the quotes so it doesn't make conflict resolution more difficult. Thanks!
I think it's better to allow a first-time contributor to work on the issue. Please feel free to look through the other issues. There are many of them we could use your help on! In case this one is still not picked up in a few days, you can then work on this.
I was already working on this. I will look for issues also from now onwards.
Is this issue still on? If yes, can I help you?
This one already has an open PR (see above ).
Okay No problem!!
Is this issue closed ? I am a first time contributor and would like to work on it.
Not yet, only the PR for English language has been merged. Check with for what languages he is making a PR for
You can start with any of the language except English language.

I am not working as of now for any other language. It would be great if we allow first timer to work on this.
hello, I would like to do this as a first timer. Where should I start?
check with for what languages they are working on, you can pick up the other languages and use the search and replace functionality of your code editor to make changes as discussed above
Hi, I'm new to freecodecamp but I'm wondering if you guys still need help on this? If so, what languages should I work on? Thanks!
Hello, I'd like to help with this issue as well. Which language folders are available? Thanks!
Thanks for helping out with this! AFAIK, so far only . Since we haven't heard from and yet, you both are welcome to pick one language each from the available four (Arabic, Chinese, Portuguese and Spanish), and start working on the corresponding files. Considering that and asked first, we'll wait for them to claim the other two language versions if they're still interested. In case they (or aren't, you can then continue with these remaining versions too (if you prefer).
Thanks I'll volunteer to do the Spanish folder.
Thanks I'll take the Portuguese folder!
Hi, after taking a cursory look in /curriculum/challenges/portuguese, and searching for <code"<codestuff </code"</code", and &quot, I haven't found any examples of <code"<codestuff </code"</code", and the only places where <code"<codeor </code" </codepop up are in Tests, and in assert fields, where it's unrelated I think. Am I missing something? Sorry for the bother!
Hi Try searching making sure there is a space in between. I noticed there were a lot of false positives when I did my search. When I searched, I was able to find in the Portuguese folder at declare-the-doctype-of-an-html-
Thank you! I removed all the instances of , and I think that that may be all of the instances in the Portuguese files. Would it be possible for me to work on the other untaken languages as well, or should I wait on and to see if they are picking up Arabic/Chinese?

Guys, try searching for and separately
I made sure to search , , , , , , , and , all separately.
Do we still need help for Arabic/Chinese? I wouldn't mind picking up those as well!
Sure! Go ahead!
Hi are you doing both Arabic/Chinese? Do you mind if I do one of the folders?
Go for it! I'll take Chinese and you can have Arabic?
Thanks I'll move forward with the Arabic folder.
Hey, Would like to give a hand as its my first contribution. Where should i start? is the quote issue resolved or are there more languages where help is needed? Thanks in advance
- It appears you can choose between Spanish and Portuguese. If you have not contributed before, I suggest starting with and . If you have any questions, then ask in our .
Actually I think that all files currently are accounted for. Me and have created PR's for Portuguese/Spanish, and now we're working on Chinese/Arabic. I think Russian and English were already taken before us.
After looking for , , , , , , , and , I couldn't find any instances of any of these in the Chinese folder. Somebody else can verify if they wish, but as far as I've searched, I can't find anything in the Chinese folder specifically, even though they exist in my local (non-fixed) Arabic, Portuguese, Spanish, etc. folders, so I don't think a PR needs to be made for the Chinese folder specifically.
Hi, this will be my first contribution. I'm wondering if Chinese is still up for grab. If not, which one can I choose? Thanks.
It appears is already working on the Chinese version.
Alright, it seems like every one of them is taken. Let me know if any one of them needs help in the future. Thanks.
I've taken a look at the Chinese version, and it seems like the quotes are already removed. I won't be submitting a PR for it, so if you want to take a look and find something that I missed then feel free to make the PR yourself!
Had this been fixed in the Portuguese and Russian folders? Someone needs to have a look
Even if those languages were not translated, it is fine. We are no longer accepting translations for the current curriculum.

We do not need any further PRs for the the non-English curriculum files.
I see. Alright


Question: # --description-- <del> In computer science, a <dfn>stack</dfn> is a data structure where items stored in an <dfn>LFIO</dfn> (last-in-first-out) manner. If you imagine a stack of books, the last book you add to the stack is the first book you can take off the stack. Or an array where you can only `.push()` and `.pop()` elements. </del> <ins> In computer science, a <dfn>stack</dfn> is a data structure where items are stored in a <dfn>LIFO</dfn> (last-in-first-out) manner. If you imagine a stack of books, the last book you add to the stack is the first book you can take off the stack. Or an array where you can only `.push()` and `.pop()` elements. </ins> The <dfn>call stack</dfn> is a collection of function calls stored in a stack structure. When you call a function, it is added to the top or of the stack, and when it returns, it is removed from the top / end of the stack.

Describe the bug The following sentence has a typo (LFIO) and "are" is missing before "stored": To Reproduce


Question: "description": [ "Another way you can represent colors in CSS is by using rgb values.", "RGB values look like this: rgb(0, 0, 0) for black and rgb(255, 255, 255) for white.",  "Instead of using six hexadecimal digits like you do with hex code, with rbg you specify the brightness of each color with a number between 0 and 255.",   "Instead of using six hexadecimal digits like you do with hex code, with rgb you specify the brightness of each color with a number between 0 and 255.",  "If you do the math, 16 times 16 is 256 total values. So rgb, which starts counting from zero, has the exact same number of possible values as hex code.", "Let's replace the hex code in our body element's background color with the RGB value for black: rgb(0, 0, 0)" ],

Challenge has a minor spelling error. The HTML5/CSS Waypoint 63: Use RGB values to Color Elements has a minor typo the term 'rbg' is referenced instead of 'rgb'. !


Question: }); } removeCookies(req, res); <del> res.redirect(origin); </del> <ins> res.redirect(returnTo); </ins> }); });

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: ], "challengeSeed":[ "function myFunction(){", <del> "  // Make myFunction return a random number between zero and nine instead of a decimal", </del> <ins> "  // Make myFunction return a random number between 'min' and 'max' instead of a decimal", </ins> "", "  // Only change code below this line.", "",

Challenge has an issue. Please describe how to reproduce it, and include links to screenshots if possible.


Question: Your `.cabin` selector should have an `animation` property set to `cabins 10s linear infinite`. ```js <del> assert(new __helpers.CSSHelp(document).getStyle('.cabin')?.animation === '10s linear 0s infinite normal none running cabins'); </del> <ins> const cabinElementStyles = new __helpers.CSSHelp(document).getStyle('.cabin'); assert( cabinElementStyles?.animationName === "cabins" && cabinElementStyles?.animationDuration === "10s" && cabinElementStyles?.animationTimingFunction === "linear" && cabinElementStyles?.animationIterationCount === "infinite" ); </ins> ``` # --seed--

We got a report that the current test for Step 23 of the Learn CSS Animation by Building a Ferris Wheel project fails in the latest version of Safari. The test works as expected in Firefox and Chrome. This test should pass with the above code like it does in Firefox and Chrome. No response Device: Macbook Air OS: macOS Browser: Safari Version: 16.5.2 In of this project, the CSS helper () returns the string when the correct code is submitted in both Chrome and Firefox. In the latest version of Safari, the CSS helper returns . The test in the should be updated to check for both strings so learners using all supported browsers can complete this step. If this is an issue for other people running Safari, this would be a good candidate for someone's first PR.
Another arguably more verbose option is to look at each individual property. I suspect they will never change values or be different between browsers so that might be more future-proof than looking at the shorthand value.
Thanks for sharing that, I agree – it would be much more future-proof to test those properties / values individually. I'm not sure what our CSS Helper library returns for each individual property in the browsers we support. But if they're consistent across Chrome, Firefox, and Safari, testing each one would be a much better approach.


Question: -   Your function must always return the entire `records` object. -   If `value` is an empty string, delete the given `prop` property from the album. -   If `prop` isn't `tracks` and `value` isn't an empty string, assign the `value` to that album's `prop`. <del> -   If `prop` is `tracks` and `value` isn't an empty string, you need to update the album's `tracks` array. First, if the album does not have a `tracks` property, assign it an empty array. Then add the `value` as the last item in the album's `tracks` array. </del> <ins> -   If `prop` is `tracks` and `value` isn't an empty string, but the album doesn't have a `tracks` property, create an empty array and add `value` to it. -   If prop is `tracks` and `value` isn't an empty string, add `value` to the end of the album's existing `tracks` array. </ins> **Note:** A copy of the `recordCollection` object is used for the tests. You should not directly modify the `recordCollection` object.

I know we have had this discussion before but I still think the requirements in the list can be improved. I saw someone link an article and the way it is put in the article by Jessica is more clear. My main gripe with what we have now is the last requirement on the list. There is no reason why it can't be more specific by adding a fourth point to the list (the last point becomes two points). Requirements we have now: If is and isn't an empty string, you need to update the album's array. First, if the album does not have a property, assign it an empty array. Then add the as the last item in the album's array. Requirements from the article: If is but the album doesn't have a property, create an empty array and add to it. If is and isn't an empty string, add to the end of the album's existing array. Better description of the requirements. 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]
Wording consistency If is and isn't an empty string, but the album doesn't have a property, create an empty array and add to it. If prop is and isn't an empty string, add to the end of the album's existing array. I still hate that we don't distinguish between a string literal and a variable name per our style guide. That makes these instructions more confusing. I think this problem is in the wrong spot and making the learners regurgitate pesudocode they don't really understand and convert it into JS isn't really helping them, but hey, this will be legacy curriculum soon, so that fixes the problem.
I agree, if a value is a string it should be denoted as such. I guess adding "the string" before/after each reference is an option. This challenge has multiple issues the main being it isn't a good function to begin with. It has far too many responsibilities and it isn't teaching good practices. Having the function delete data if the consumer of the API forgets to pass in a value or does it by mistake in dynamic code is a very poor API decision.

I would split it into three functions, add, update, and delete. Have it teach proper CRUD functions. I think you mean soon No, but in all seriousness, I haven't followed the update progress so I don't know how far off it is. However, waiting for something to be completely replaced with something new is a sure way of accumulating "technical debt".
There's a thread on the forum about the timing of the rollout
I just saw it. But we should probably not abandon the challenges if they are going to stay, even if they are legacy.
Abandon, no. But I don't think we need to burn much more effort on this challenge. Not saying I'm opposed to the wording (with my proposed tweak) above - just that we really shouldn't worry too much about fiddling more.
If someone wants to follow the article's wording to improve this lesson, then they are welcome to go for it. Personally, I am in the same boat as We have changed and re-changed this lesson so many times, and, in general, we put no effort into legacy curricula. If there is a bug preventing a lesson from passing, then that should be fixed (or the lesson removed), but we should not spend time re-wording legacy content.
Now that the new JS curriculum is live, I think it would be best to stop putting effort into rewording this challenge.
It is hardly much effort. I see no reason why if someone wants to update this they should not be allowed to do so. Just put a help wanted label on it and someone will, or won't do it. We can leave it at that.


Question: "title": "Use Spans for Inline Elements", "difficulty": 2.105, "description": [  "You can use use spans to create inline elements. Remember when we used the btn-block class to make the button grow fill the entire row?",   "You can use use spans to create inline elements. Remember when we used the btn-block class to make the button fill the entire row?",  "This image illustrates the difference between inline elements and block-level elements:", "", "By using the span element, you can put several elements together, and even style different parts of the same element differently.",

Challenge has an issue. Please describe how to reproduce it, and include links to screenshots if possible. There are two typos in this waypoint, as indicated in the screenshot: ! In the first paragraph, remove the "s" from the word "elements." In the second test, the close-paren needs to immediately follow the open-paren, and should not appear at the end of the sentence.
Thanks for reporting this! The referenced commit fixes one of your issues, and the other (closing parenthesis) had already been fixed!

Challenge has an issue. In the second sentence, Remember when we used the class to make the button grow fill the entire row? --remove the word "grow".


Question: "tape": "^4.2.2" }, "snyk": true <del> } </del>  No newline at end of file <ins> } </ins>

A caret symbol, needs to be . So the result should look like this: . Please review before opening a PR, thank you!
Hi there - can I take this one? I'm new to contributing to FCC and this issue seems like a great way to get everything set up and working properly to help out more in the future.


Question: ], "tests": [ "assert(confirmEnding("Bastian", "n") === true, 'message: confirmEnding("Bastian", "n") should return true.');",  "assert(confirmEnding("Congratulation", "on") === true, 'message: confirmEnding("Congratulation", "on") should return true.');",  "assert(confirmEnding("Connor", "n") === false, 'message: confirmEnding("Connor", "n") should return false.');", "assert(confirmEnding("Walking on water and developing software from a specification are easy if both are frozen", "specification") === false, 'message: confirmEnding("Walking on water and developing software from a specification are easy if both are frozen", "specification") should return false.');", "assert(confirmEnding("He has to give me a new name", "name") === true, 'message: confirmEnding("He has to give me a new name", "name") should return true.');",

There should be a test case for a target ending that appears anywhere else other than the end of the string. The purpose of the function is to determine whether the 'target' string appears at the end of the given string (str). The issue is that the code below will pass when it shouldn't. It looks for the first appearance of the target in the string (str), creates a substring from that to the end, and returns if it's equal to the target string. There are no test cases for the case when the target appears anywhere else than the end. <img width="286" alt="screen shot 2017-03-15 at 4 12 49 pm" src=""<img width="1376" alt="screen shot 2017-03-15 at 4 08 45 pm" src=""
You're right, nice find! I'll give it a go and make a PR.
Awesome! Thanks a lot! :)
Np, let's just hope it gets accepted! :)


Question: assert(nonMutatingSort(globalArray) !== globalArray); ``` <ins> `nonMutatingSort([1, 30, 4, 21, 100000])` should return `[1, 4, 21, 30, 100000]`. ```js assert(JSON.stringify(nonMutatingSort([1, 30, 4, 21, 100000])) === JSON.stringify([1, 4, 21, 30, 100000])) ``` `nonMutatingSort([140000, 104, 99])` should return `[99, 104, 140000]`. ```js assert(JSON.stringify(nonMutatingSort([140000, 104, 99])) === JSON.stringify([99, 104, 140000])) ``` </ins> # --seed-- ## --seed-contents--

<!-- 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: Below mentioned challenge can be passed using simple .sort() function instead of using .sort((a,b) =a-b) Link to the page with the problem: Possible solutions the existing array from [5, 6, 3, 2, 9] to something like [1, 30, 4, 21, ] another test case with array [1, 30, 4, 21, ] So that the challenge cannot be passed without using .sort((a,b) =a-b) function
https://user- Here is my simple solution to this problem. I just use ES6 syntax using spread. return [].sort(); and that is it!
I think this is a change that may be necessary, there often cases where users are stumped in following lessons because they use without an argument and can't understand why the numbers are not ordered from lowest to highest but I will wait for others to comment
The risks of using without a callback function are pretty well covered in the previous challenge : I think changing the test case could be a good way to help campers remember this. And/or adding some sort of warning in the challenge description : "Caution : remember that in order to work as expected, should be used with a callback function"
In order to ensure that the callback function is provided, a test case with the array [, 104, 99] can also be


Question: # --instructions-- <del> Add `mongodb` and `mongoose` to the project’s `package.json`. Then, require mongoose as `mongoose` in `myApp.js`. Store your MongoDB Atlas database URI in a private `.env` file as `MONGO_URI`. Surround the the URI with single or double quotes, and make sure no space exists between both the variable and the `=`, and the value and `=`. Connect to the database using the following syntax: </del> <ins> 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: </ins> ```js mongoose.connect(<Your URI>, { useNewUrlParser: true, useUnifiedTopology: true });

<!-- 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: A couple of concerns were brought up in the Discord server regarding the verbiage on this challenge. First, the language "make sure no space exists between both the variable and the and the value and " is not particularly clear, and could possibly be re-written to something like "make sure no space exists between the variable, the , and the value." Second, it seems that Glitch has a GUI to the .env file which is confusing some users. We could either add text to the instructions to say "We recommend you click to switch the .env file to a text view", or change the instructions to match Glitch's format. I definitely recommend the first option, as it would be more universal to other IDE platforms. This change would likely need to be made in a few places, though. Add a Link to the page with the problem: Tell us about your browser and operating system: Browser Name: Chrome Browser Version: Operating System: Windows 10 Home 1909 If possible, add a screenshot here (you can drag and drop, png, jpg, gif, etc. in this box): Glitch's new GUI !
I agree. The instructions can be made simpler. Also, we should teach how to use the proper syntax in file.... not the GUI that Glitch offers.


Question: --- <del> title: Bash ssh </del> <ins> title: Bash ssh (Secure SHell) </ins> --- ## Bash command: ssh <del> This command is used **to connect to a remote computer**, for example `ssh 123.456.789.012` will try to establish a connection with that host. The address of the remote computer can be provided using an IP address or, if provided, an identifier. </del> <ins> **Used to securly connect to a remote server** using Diffie-Hellman algorythm for key exchange, ssh replaces the archaic telnet program for remote shell sessions. </ins> <del> If the remote computer requires the user to login, they can use the form `ssh username@remote_address`, which will then prompt them for the user password on a successful connection. </del> <ins> for example `ssh 192.0.2.1` will try to establish a connection with that host. The address of the remote computer can be provided using an IP address resolvable hostname or FQDN. </ins> <del> It also has command line options which can be found on the SSH website. </del> <ins> If you wish to use a different username then the one initiating the session (i.e. you're using ssh from root but wish to log in as different user to a remote system), the form `ssh username@remote_address` can be used, which will then prompt for the user password on successful connection. </ins> <del> One thing to note, if the server is configured to listen to any port other than `22`, then you have to use `-p` option to specify the port. For example: `ssh -p 2024 123.456.789.012`. If the remote computer requires user login, the form `ssh username@remote_address` can be used, which will then prompt for the user password on successful connection. </del> <ins> Basic usage arguments: - `-p` - use a different port then configured in ssh_config file (usually 22) - `-u` - pass username outside of hostname URI - `-i` - use a different location for private key </ins> ### More Information: * [Wikipedia](https://en.wikipedia.org/wiki/Secure_Shell)

<!-- 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: this needs more work, but to begin a process - adding the proper acronym explanation (which is almost 50% of understanding the topic) and reducing misinformation about identifiers. also some explanation on the benefit of using this tool compared to its predecessor also adding basic usage and giving some more basic understanding of this tool Add a Link to the page with the problem:
I created a pull request for adding some basic information. Still need to correct the misinformation about identifiers.


Question: ## --sentence-- <del> `Those are great traits for someone in her position, I think. What _ she _ as our team lead?` </del> <ins> `Those are great traits for someone in her position, I think. What _ she _ as the team lead?` </ins> ## --blanks--

The fill-in-the-blank sentence doesn't match what the character says. The written sentence is: The character says: Note the "the", instead of "our". No response Device: all OS: all Browser: all Version: all No response
Thank you for reporting the issue. Note for maintainers: Step 54 () uses "our" instead of "the" in the quiz. I think it's fine as-is since there isn't associated audio/caption text, but I'd vote updating it, too, for consistency. This issue is open to first-time code contributors to this repository. Requirements: In Change the text in the tag from to In Change the text in the tag from to Change the fill-in-the-blank text from to Change the backtick placement in the description text from ` In Change the text of the answers from to 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.
Hi I've created a PR addressing these changes.


Question: assert.isNotNaN(Number(cols)); ``` <del> You should give the `textarea` placeholder text describing an example answer. </del> <ins> You should give the `textarea` a `placeholder` attribute with text describing an example answer. </ins> ```js <del> assert.notEmpty(document.querySelectorAll('div.answer')?.[1]?.querySelector('textarea')?.textContent); </del> <ins> assert.notEmpty(document.querySelectorAll('div.answer')?.[1]?.querySelector('textarea')?.getAttribute('placeholder')); </ins> ``` # --seed--

<!-- NOTE: If you're reporting a security issue, don't create a GitHub issue. Instead, email We will look into it immediately. --<!-- Add a link to the coding challenge with the problem. -- The final instructions for this step say: "Then, give the placeholder text describing an example answer." Since the instructions mention "placeholder" I think it is safe to assume that some people will think they should use the attribute on the to fulfill this requirement. But the code check test checks the of the : So using the attribute will result in the following hint: "You should give the placeholder text describing an example answer." Which does not make it clear that the example answer should be embedded in the instead of using the attribute. Based on the current instructions I think most users will assume that the attribute should be used to complete this step and the test should be updated accordingly. <!-- Please complete the following information. --- Device: Desktop OS: Linux/Fedora 34 Browser: Firefox Version: 95.0.2
On
I was going to fix this issue by updating the test in step 38 to check the placeholder attribute on the textarea but then I realized that if we make this change then the HTML in each step after 38 would also need to be updated to use the placeholder attribute as well. So the question is, do we want to use the placeholder attribute and update all of the remaining steps or do we want to reword the instructions in step 38 to make it clear that you should embed the question text in the textarea and not use the placeholder attribute?
That's a good question. The placeholder text matches wording from referring to the attribute. That would make me think, the intention is to use the attribute.
Agreed, this should probably be updated to use the placeholder attribute. Looks like I've got a lot of updates to include in the PR.
Thank you, for opening this. When I wrote this, I vaguely remember reading a resource mentioning using the attribute on was not the recommended approach. However, as I cannot find that, I agree using the attribute in this case seems like the better option. Yes, this will require a rewrite for all subsequent lessons. However, this usually is a simple Find and Replace.
Perfect. I'll submit a PR for this in just a bit.


Question: # --instructions-- <del> In this exercise, use `helmet.contentSecurityPolicy()`, and configure it setting the `defaultSrc directive` to `["self"]` (the list of allowed sources must be in an array), in order to trust only your website address by default. Set also the `scriptSrc` directive so that you will allow scripts to be downloaded from your website, and from the domain 'trusted-cdn.com'. </del> <ins> In this exercise, use `helmet.contentSecurityPolicy()`. Configure it by adding a `directives` object. In the object, set the `defaultSrc` to `["'self'"]` (the list of allowed sources must be in an array), in order to trust only your website address by default. Also set the `scriptSrc` directive so that you only allow scripts to be downloaded from your website (`'self'`), and from the domain `'trusted-cdn.com'`. </ins> <del> Hint: in the `self` keyword, the single quotes are part of the keyword itself, so it needs to be enclosed in double quotes to be working. </del> <ins> Hint: in the `'self'` keyword, the single quotes are part of the keyword itself, so it needs to be enclosed in double quotes to be working. </ins> # --hints-- <del> helmet.csp() middleware should be mounted correctly </del> <ins> helmet.contentSecurityPolicy() middleware should be mounted correctly </ins> ```js (getUserInput) =>

Challenge: this challenge need instructions on how to actually install the specified version? On if you search for a package it will just give you the latest version. you run it will add the package with the caret in front of the version number but the test does not allow for that. Should the test allow for the caret?
If changing the tests to allow does not cause any of the versioning issues mentioned previously, then we should go with that. Otherwise, we could add a note that the camper should use :
Just bringing this back up: Are we changing the tests, or changing the instructions to be explicit about the versioning?
Personally, I'd say both. Show the npm command for how to install a specific package version and make the test ignore/accept the caret.
I like that. This kind of lesson is so short, I also think it would be useful to add the information about . I am going to open this up for general help
Hi, I do exactly like npm install --save-exact helmet and helmet = require('helmet'); but still not pass the challenge, anyone, please help me, thanks
Hey , Without seeing your code, or being able to test your project, it will be difficult to assist. Please make use of the to open a topic, and provide as much detail as possible. It will be easier to assist that way.
my code: var express = require('express'); var app = express(); const helmet = require('helmet'); { "name": "fcc-infosec-challenges", "version": "0.0.1", "description": "fcc backend boilerplate", "main": "", "scripts": { "start": "node " }, "dependencies": { "express": "^4.14.0", "helmet": "3.21.3" }, "keywords": [ "node", "hyperdev", "express", "freecodecamp" ], "license": "MIT" } and the test result: // running tests helmet version 3.21.3 should be in // tests completed Please help me to solve this. thanks
As mentioned, please use for questions that involve debugging challenge or project solutions. Thank you.


Question: `dispatch` method is what you use to dispatch actions to the Redux store. Calling `store.dispatch()` and passing the value returned from an action creator sends an action back to the store. <del> Recall that action creators return an object with a type property that specifies the action that has occurred. Then the method dispatches an action object to the Redux store. Based on the previous challenge's example, the following lines are equivalent, and both dispatch the action of type `LOGIN`: </del> <ins> Recall that action creators return an object with a type property that specifies the type of action that has occurred. Then the method dispatches an action object to the Redux store. Based on the previous challenge's example, the following lines are equivalent, and both dispatch the action of type `LOGIN`: </ins> ```js store.dispatch(actionCreator());

Currently, the second paragraph in module, happens to be as follows: The first line of the second paragraph seems to be a bit incomplete. Considering that, I believe the first line of the second paragraph should be as follows: The first line of the second paragraph of module, should be as follows: <img width="513" alt="image" src=""- Device: Laptop OS: macOS 13.0.1 Browser: Chrome Version: 107.0.5304.110
This issue is still open?


Question:
<Col md={7} sm={12}>
 Issued   {issueDate}   {format(new Date(issueDate), 'MMMM D, YYYY')}
 </Col>

Describe the bug New certificate displays incorrect date. To Reproduce Steps to reproduce the behavior: I can't say I'm really sure of the steps - I claimed the certificate just a few moments ago, and it is still 3 July 2020 local time. The certificate shows "Issued July 4, 2020" however. Expected behavior Certificate earned date should be based on local time? Screenshots ! Desktop (please complete the following information): OS: Windows 10 v. 1909 Browser: Chrome Version: 83.0.4103.116 Additional context The Quality Assurance certification had no such issue.
Is this reproducible locally?
when Date constructor is called on the server-side it outputs date in UTC, right?
timezones are tricky, but the server creates a object and then stores that. There's no timezone information stored with it, so the date sent back is just i.e. the UTC date.
Indeed - timezones are tricky. Thanks for confirming that datetime given back by Node is in UTC. I saw the above code just now. You are absolutely correct I looked at GitHub profile, he lives in USA. Timezone of USA is UTC -4 hours. What I think might be the case here is that might have claimed the certificate after 3 July 2020 8:00 PM. Adding four hours to 3 July 2020 8:00 PM brings it in UTC timezone which gives us date of 4 July 2020. Can you confirm this Do you remember at what time you claimed the cert? What do you think about all this
There are 3 time zones (PST, CST - GMT-6, EST ) in the mainland US or 5 times zone if you include Alaska (GMT-8) and Hawaii (GMT-10). It also depends on the time of year, because of DST (Daylight Savings Time).
I am in the Pacific Timezone, which is currently PDT (due to Daylight Savings Time). I claimed the certificate in question at approximately 17:18 PTD, which translates to 00:18 UTC (pushing the time into the next day). This may be the source of that bug.
oh my god. Timezones are actually complex. Amazing - I believe we have found the source of this bug.

IMO, the best solution to this issue will be to append "UTC" to the issued date to make things clear for users. Going after local time will involve getting timezone from users via settings and then querying db for their timezone while claiming cert. This'll be bad in terms of UX as well as perf. So, let's add UTC at the end of issued date... what do you all think?
We should be able to allow users to set a timezone in their user profiles for the correct offset.
Is this in line with what we are wanting: ! ! Or, would something more explicit be necessary?
Something more along the lines of the snippet here:
, Would it be beneficial for a JSON file to be made in the api-server directory, in case the values need to be referenced elsewhere in the platform?
Even if they're only used in one place, it would be better to have the data imported from a separate file. It's just less cluttered that way.
Just so its clear about the implementation, we will need to store the timezone on the user record, and do any computation of the display on the client only.
Just so its clear about the implementation, we will need to store the timezone on the user record, and do any computation of the display on the client only. Thank you, for this clarification. Makes it easier, I suppose.


Question: # --description-- <del> Users will be allowed to chose either a `Personal Account` or `Business Account`. </del> <ins> Users will be allowed to choose either a `Personal Account` or `Business Account`. </ins> To do this, within each of the first two `label` elements, add one `input` element with `type="radio"`.

In the file curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration- There is a typo, "chose" should be "choose". 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 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.
I would like to work on this
Go for it.
Added updated wording and is linked to issue.
We have two pull requests with the same change.


Question: var bonfireSolution = myCodeMirror.getValue(); var thisBonfireHash = passedBonfireHash || null; var didCompleteWith = $('#completed-with').val() || null; completedBonfire(didCompleteWith, bonfireSolution, thisBonfireHash); });

<!-- 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: ## Feedback on pull requests <del> > Congratulations! :tada: on making a PR and thanks a lot for taking the time to contribute. </del> <ins> > :tada: Congratulations on making a PR and thanks a lot for taking the time to contribute. </ins> Our moderators will now take a look and leave you feedback. Please be patient with the fellow moderators and respect their time. All pull requests are reviewed in due course.

<!-- NOTE: If you want to become an author on freeCodeCamp, you can find everything here: --<!-- If you are reporting an issue with an article on our News publication, please follow this link to send an email to our editorial team -- <!-- Add a link to the page with the problem. --View the string in Crowdin where the is being parsed as a separate sentence. This is grammatically incorrect anyway and should be updated. <!-- Describe the problem and how to reproduce it. --Update the sentence to: <!-- A clear and concise description of how you want to update it. --<!-- If possible, add a screenshot here (you can drag and drop, png, jpg, gif, etc. in this box). --


Question: return array; // Only change code above this line } <del> selectionSort([1, 4, 2, 8, 345, 123, 43, 32, 5643, 63, 123, 43, 2, 55, 1, 234, 92]); </del> ``` # --solutions--

The following challenges have an example function call in the seed code. These function calls should be removed and the related tests should be clarified to reflect the call instead. This sorting challenge is correct and could be used for reference.
Hi, nhcarrigan. I'd like to try to help and solve it. I'm still learning about the project so I would like to ask a question so I can understand the issue better. There is a function call in the file.. bubleSort([1,2,3....]) (example: implement-bubble-) ! And it should be removed from the seed section and transferred to here, similarly to implement-quick-sort: ! ! Is it correct or are there other files that I should be concerned about?
That is correct, yes - this same change should be completed on the four files I've linked. I would, however, recommend holding off on working on this until we receive additional consensus that this is the best way to proceed. If you run in to any questions, feel free to review our or ask in our or the .
Sounds great!! Thanks for the fast response. I will wait until further notice.
Hi MuriloMarquesSantos, are you still interested in fixing this issue?


Question: dashedName: task-50 --- <del> <!-- (audio) Tom: Those are great traits for someone in her position, I think. What does she do as our team lead? --> </del> <ins> <!-- (audio) Tom: Those are great traits for someone in her position, I think. What does she do as the team lead? --> </ins> # --description--

The fill-in-the-blank sentence doesn't match what the character says. The written sentence is: The character says: Note the "the", instead of "our". No response Device: all OS: all Browser: all Version: all No response
Thank you for reporting the issue. Note for maintainers: Step 54 () uses "our" instead of "the" in the quiz. I think it's fine as-is since there isn't associated audio/caption text, but I'd vote updating it, too, for consistency. This issue is open to first-time code contributors to this repository. Requirements: In Change the text in the tag from to In Change the text in the tag from to Change the fill-in-the-blank text from to Change the backtick placement in the description text from ` In Change the text of the answers from to 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.
Hi I've created a PR addressing these changes.


Question: function* logToConsole(channel) { yield takeEvery(channel, function*(args) { <del> yield put(updateLogs(args)); </del> <ins> yield put(updateLogs(escape(args))); </ins> }); }

I stumbled upon this issue when playing around with the challenge. If a user wanted to see what the output of the final variable (the converted version of the string) to the FCC console, it does not get rendered showing the converted entities. You can see in the screenshot below that the browser console has the correct values but the FCC console does not show the same thing. ! I am guessing there are several other challenges where the user would not see the HTML code and would instead send the rendered version in the FCC console.


Question: challenge: ChallengeWithCompletedNode; }) => ( <Link to={challenge.fields.slug}>       <CheckMark isCompleted={challenge.isCompleted} />  {challenge.title}

A2 English blocks have challenges whose title is displayed next to a completion indicator. The indicator is having a right margin, which creates a gap between the indicator and the text. <img width="746" alt="Screenshot 2024-05-31 at 22 49 13" src=""This issue is because the indicator has a class: This class was harmless as it didn't have any CSS rules associated, until we badges to the user profile page, which caused a class name collision: Remove the class from: Rename the class in to to avoid future collision
I can take this one, but I don't seem to have the permissions to assign myself to this issue.
We typically do not assign issues. Instead, we accept the first pull request that comprehensively solves the issue. Issues labelled with or are open for contributions. Please make sure you read . We prioritize contributors following the instructions in our guide. Join us in or if you need help contributing - our community will be happy to assist you.
Awesome, thanks for clarifying!


Question: ### 1. Ensure that MongoDB and Client Applications are Running <del> - [Start MongoDB and seed the database](how-to-setup-freecodecamp-locally.md#step-3-start-mongodb-and-seed-the-database) </del> <ins> - [Start MongoDB and seed the database](how-to-setup-freecodecamp-locally.md#step-3-start-mongodb-and-seed-the-database). In order for Playwright tests to work, be sure that you use the `pnpm run seed:certified-user` command. </ins> - [Start the freeCodeCamp client application and API server](how-to-setup-freecodecamp-locally.md#step-4-start-the-freecodecamp-client-application-and-api-server)

I had a facepalm moment when I was working on a set of Playwright tests. The tests passed locally but failed in CI, and turned out I was seeding my DB with demo user () while we seed CI with certified user (): The failure was expected then, because the tests were working with different user data. I'm now wondering if we should recommend developing with over in general. If we are okay with this, we will need to update the following section of the : <img width="1088" alt="Screenshot 2023-11-09 at 17 12 23" src=""If we still recommend developing with , then we should add a note in the following section of the to ensure is run before tests are written and executed: <img width="1074" alt="Screenshot 2023-11-09 at 17 15 49" src=""
I think most people want to use the 'new' user and we do mention , so the setup docs seem fine. However, it's definitely not correct to recommend in the Playwright guide. Seems like a simple enough fix, though: the Playwright should say .
I think updating the playwright guide would be enough - but we could add a note in the main area that says something like "Use this if you are going to run playwright tests"


Question: ```js <ins> // The global variable </ins> var fixedValue = 4; <del> const incrementer = val => val + 1; </del> <ins> // Only change code below this line function incrementer (fixedValue) { return fixedValue + 1; // Only change code above this line } </ins> ```

<!-- 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: Challenge criteria are updated but solution is not updated yet. Here's the and hers's the on GitHub which is currently unable to pass all the tests for the challenge. Add a Link to the page with the problem: Tell us about your browser and operating system: Browser Name: Google Chrome Browser Version: 81.0.4044.138 Operating System: Windows OS If possible, add a screenshot here (you can drag and drop, png, jpg, gif, etc. in this box): !


Question: const statusInt = parseInt(status, 10); return (statusInt >= 200 && statusInt < 400) || statusInt === 402; } <ins> export function transformEditorLink(url) { return url .replace( /(?<=//)(?<projectname>[^.]+).(?<username>[^.]+).repl.co/?/, 'replit.com/@$<username>/$<projectname>' ) .replace( /(?<=//)(?<projectname>[^.]+).glitch.me/?/, 'glitch.com/edit/#!/$<projectname>' ); } </ins>

In , if a user has submitted a project link, it will display the project's working view instead of the source code. I am not so sure adding the solution links as is currently functioning is helping much. See . Instead of showing the final project link, it would be more useful to show the source code link. In the linked forum post, going to the project results in the "Hmmm.... We Couldn't Reach Your Repl" page. For at least , we should restructure the link (if needed) to show the editable version of the project. For example, if the user submits , then we show . For Codepen projects, this is not an issue, but for Backend projects where the source code is not readily available, we either need to make my above suggested changes or remove this feature for backend challenges/projects. If a user is hosting their own project, then the same issue arises. Unless they submit a GitHub link to their project source code, a final project view does not help us identify problems for the user.
I was recently thinking about this, and just wondered how stable it would be to transform the Camper's URL into the project code URL. If you think this is a decent feature to have, and worth it, then I am willing to throw something together. I will put out a POC, now. Side Note: I have been looking into the fiasco, as some lessons still cause the dents.


Question:
"
" ], "challengeType": 0,  "type": "waypoint"   "type": "waypoint", "nameEs": "Pre-filtra JSON", "descriptionEs": [ "Si no queremos presentar cada foto de gato que obtengamos de la API JSON de fotos de gato de Free Code Camp, podemos pre-filtrar el json antes de iterar a través de este.", "Vamos a filtrar el gato cuya llave "id" tiene un valor de 1.", "Aquí está el código para hacer esto:", "json = json.filter(function(val) {", "  return(val.id !== 1);", "});" ]  }, { "id": "bb000000000000000000006",  "title":  "Get Geo-location Data",   "title": "Get Geo-location Data",  "description": [ "Another cool thing we can do is access our user's current location. Every browser has a built in navigator that can give us this information.", "The navigator will get our user's current longitude and latitude.",

[x] Trigger Click Events with jQuery [x] Change Text with Click Events [x] Get JSON with the jQuery getJSON Method [x] Convert JSON Data to HTML [x] Render Images from Data Sources [x] Prefilter JSON [x] Get Geo-location Data
Trabajando en esta


Question: 'say-hello-to-html-elements', jQuery: '/learn/front-end-development-libraries/jquery/' + <del> 'target-html-elements-with-selectors-using-jquery' </del> <ins> 'target-html-elements-with-selectors-using-jquery', js: '/learn/javascript-algorithms-and-data-structures/basic-javascript/' + 'comment-your-javascript-code' </ins> }; const defaultOutput = `

<!-- NOTE: If you're reporting a security issue, don't create a GitHub issue. Instead, email We will look into it immediately. --Javascript Code Editor Steps to reproduce the behavior: the following code; ! Device: Laptop OS: Windows 10 Browser: Edge Version: 96.0.1054.34
Same goes for Map. I don't believe we teach Set or Map anywhere so it's maybe not super relevant. But the output should be as close to the browser console as possible I would think.
cc
My best guess is it has to do with the on the log here: But debugging has been a pain because that file does not hot-reload in the client.
Set is used in this under the coding interview prep section. While using is not specifically required for the task, the example code shown does have with an expected output underneath which with this bug will not be displayed in the output. This would be quite misleading for someone who pastes in the example code to the editor.
I dug into this a little bit: the problem is that relies on a fallback when running in the browser. This fallback does not know how to handle sets or maps and just returns . If anyone wants to work on this, the obvious approach is to check if the input is an or and then write some custom code to format them.
I take it we are leaving this open, as tests should probably be ?


Question: <ins> /* eslint-disable max-len */ import React from 'react'; function freeCodeCampLogo() { return ( <svg height='38' viewBox='0 0 263 31' width='263' xmlns='http://www.w3.org/2000/svg' > <g fill='#FFF' fillRule='evenodd' stroke='none' strokeWidth='1'> <path d='M3.622 9.586H1.337c-.802 0-1.215-.344-1.215-1.057 0-.688.413-1.057 1.215-1.057h2.285v-2.04c0-3.54 1.774-5.285 5.347-5.285 1.434 0 2.65.295 3.622.812 1.215.762 1.847 1.868 1.847 3.244 0 .934-.34 1.327-1.045 1.327-.462 0-.85-.295-1.094-.81-.291-.935-.583-1.451-.753-1.672-.413-.516-1.264-.811-2.528-.811-2.188 0-3.209 1.106-3.209 3.244v1.966H9.99c.924 0 1.386.344 1.386 1.057 0 .688-.462 1.057-1.386 1.057H5.81v13.297c0 .811-.341 1.229-1.046 1.229-.68 0-1.045-.418-1.045-1.229V9.586h-.097zM22.265 21.727V9.586h-3.111c-.851 0-1.264-.344-1.264-1.057 0-.688.413-1.057 1.264-1.057h4.132c.68 0 1.094.639 1.094 1.794 1.264-1.4 2.65-2.138 4.083-2.138 1.216 0 2.115.344 2.82 1.106.68.762 1.045 1.745 1.045 2.9 0 .811-.34 1.229-1.045 1.229-.413 0-.68-.295-.85-.811-.293-.983-.463-1.5-.511-1.573-.292-.516-.851-.811-1.605-.811-.802 0-1.555.295-2.236.86-.413.295-.972.934-1.726 1.868v9.684h3.914c.85 0 1.264.344 1.264.983 0 .688-.413 1.106-1.264 1.106h-9.14c-.85 0-1.263-.344-1.263-1.057 0-.688.413-1.057 1.263-1.057h3.16l-.024.172zM37.943 16.025v2.31c0 2.508 1.726 3.712 5.226 3.712 1.264 0 2.285-.123 3.111-.418.413-.123 1.143-.516 2.115-1.229.632-.59 1.094-.86 1.264-.86.583 0 .85.295.85.934s-.413 1.278-1.263 1.966c-1.386 1.106-3.452 1.672-6.199 1.672-4.812 0-7.243-1.918-7.243-5.752v-5.8c0-1.328.51-2.507 1.483-3.417 1.312-1.278 3.281-1.868 5.906-1.868 4.716 0 7.05 2.384 7.05 7.079 0 1.155-.463 1.745-1.313 1.745H37.919l.024-.074zm0-2.089h10.282c0-3.146-1.726-4.694-5.226-4.694a7.124 7.124 0 00-3.452.86c-1.045.762-1.604 1.622-1.604 2.605v1.23zM55.954 16.025v2.31c0 2.508 1.726 3.712 5.226 3.712 1.264 0 2.285-.123 3.112-.418.413-.123 1.142-.516 2.114-1.229.632-.59 1.094-.86 1.264-.86.584 0 .851.295.851.934s-.413 1.278-1.264 1.966c-1.385 1.106-3.452 1.672-6.198 1.672-4.813 0-7.244-1.918-7.244-5.752v-5.8c0-1.328.51-2.507 1.483-3.417 1.313-1.278 3.281-1.868 5.907-1.868 4.715 0 7.049 2.384 7.049 7.079 0 1.155-.462 1.745-1.313 1.745H55.93l.024-.074zm0-2.089h10.282c0-3.146-1.726-4.694-5.226-4.694a7.124 7.124 0 00-3.451.86c-1.094.762-1.605 1.622-1.605 2.605v1.23zM72.094 17.377V8.332c0-4.768 2.48-7.078 7.462-7.078 2.018 0 3.622.467 4.886 1.327 1.434 1.106 2.115 2.605 2.115 4.473 0 .86-.34 1.327-1.094 1.327-.51 0-.85-.418-1.094-1.278-.121-.688-.413-1.4-.802-2.04-.632-1.155-2.018-1.671-4.18-1.671-1.848 0-3.16.467-3.963 1.4-.753.861-1.142 2.213-1.142 4.13v7.546c0 1.966.413 3.367 1.215 4.227.85.934 2.188 1.45 4.01 1.45 2.82 0 4.425-.983 4.813-2.95.17-.761.22-1.105.22-1.154.17-.418.461-.64.85-.64.68 0 1.094.468 1.094 1.328 0 1.794-.754 3.195-2.236 4.301-1.216.811-2.747 1.23-4.716 1.23-2.285 0-4.084-.517-5.396-1.623-1.361-1.254-2.042-2.999-2.042-5.26zM89.887 18.655v-5.972c0-3.663 2.406-5.457 7.243-5.457s7.244 1.794 7.244 5.457v5.972c0 3.662-2.358 5.457-7.122 5.457-4.959 0-7.365-1.82-7.365-5.457zm12.348 0v-5.972c0-2.262-1.726-3.417-5.226-3.417-3.33 0-5.056 1.155-5.056 3.417v5.972c0 2.261 1.726 3.417 5.177 3.367 3.427 0 5.105-1.106 5.105-3.367zM120.149 22.12c-.973.763-1.848 1.23-2.577 1.5-.802.295-1.774.467-2.917.467-1.944 0-3.5-.418-4.715-1.229-1.386-.934-2.066-2.31-2.066-4.227v-6.096c0-1.794.68-3.195 2.017-4.13 1.143-.81 2.698-1.228 4.546-1.228 1.215 0 2.236.123 3.038.418.802.295 1.653.81 2.576 1.573V1.67c0-.983.34-1.499.973-1.499.68 0 1.094.516 1.094 1.5V22.98c0 .762-.34 1.106-.973 1.106-.413 0-.68-.221-.802-.688-.146-.344-.194-.738-.194-1.278zm-.122-2.433v-8.356c-1.045-.762-1.847-1.278-2.48-1.5-.85-.344-1.774-.516-2.819-.516-1.312 0-2.406.221-3.208.762-1.045.64-1.556 1.573-1.556 2.728v5.752c0 1.229.51 2.138 1.604 2.777.851.467 1.945.762 3.282.762 1.094 0 2.066-.172 2.868-.516a19.118 19.118 0 002.31-1.893zM127.951 16.025v2.31c0 2.508 1.726 3.712 5.226 3.712 1.264 0 2.285-.123 3.111-.418.414-.123 1.143-.516 2.115-1.229.632-.59 1.094-.86 1.264-.86.583 0 .85.295.85.934s-.412 1.278-1.263 1.966c-1.386 1.106-3.452 1.672-6.198 1.672-4.813 0-7.244-1.918-7.244-5.752v-5.8c0-1.328.51-2.507 1.483-3.417 1.312-1.278 3.281-1.868 5.906-1.868 4.716 0 7.05 2.384 7.05 7.079 0 1.155-.462 1.745-1.313 1.745h-11.011v-.074h.024zm0-2.089h10.282c0-3.146-1.726-4.694-5.226-4.694a7.124 7.124 0 00-3.452.86c-1.093.762-1.604 1.622-1.604 2.605v1.23zM144.09 17.377V8.332c0-4.768 2.48-7.078 7.463-7.078 2.018 0 3.622.467 4.886 1.327 1.434 1.106 2.115 2.605 2.115 4.473 0 .86-.34 1.327-1.094 1.327-.51 0-.851-.418-1.094-1.278-.122-.688-.413-1.4-.802-2.04-.632-1.155-2.018-1.671-4.181-1.671-1.847 0-3.16.467-3.962 1.4-.754.861-1.142 2.213-1.142 4.13v7.546c0 1.966.413 3.367 1.215 4.227.85.934 2.188 1.45 4.01 1.45 2.82 0 4.424-.983 4.813-2.95.17-.761.219-1.105.219-1.154.17-.418.462-.64.85-.64.681 0 1.095.468 1.095 1.328 0 1.794-.754 3.195-2.237 4.301-1.215.811-2.746 1.23-4.715 1.23-2.285 0-4.084-.517-5.396-1.623-1.313-1.254-2.042-2.999-2.042-5.26zM173.478 22.12c-1.045.763-1.847 1.279-2.406 1.5-.754.295-1.653.467-2.82.467-1.726 0-3.16-.344-4.254-1.106-1.264-.86-1.944-2.138-1.944-3.834 0-1.672.68-3.023 2.017-3.957 1.143-.86 2.65-1.279 4.351-1.279 1.434 0 3.038.345 4.886.984v-2.557c0-1.228-.584-2.089-1.726-2.605-.802-.344-1.774-.516-2.917-.516-2.698 0-4.132.762-4.424 2.261-.121.688-.218 1.057-.218 1.106-.17.344-.462.516-.851.516-.754 0-1.143-.417-1.143-1.229 0-1.106.414-2.089 1.264-3.023 1.046-1.155 2.917-1.745 5.567-1.745 2.114 0 3.67.344 4.715 1.057 1.215.86 1.847 2.31 1.847 4.35v7.423c0 .86.17 1.45.51 1.745.05.05.414.222.973.467.34.172.51.467.51.983 0 .59-.291.86-.923.86-.17 0-.462-.048-.924-.22-.802-.295-1.312-.467-1.434-.517-.316-.147-.559-.54-.656-1.13zm-.122-2.187v-3.072c-1.604-.516-3.16-.811-4.545-.811-3.111 0-4.643.983-4.643 3.023 0 1.057.462 1.868 1.386 2.31.753.418 1.653.64 2.82.64.972 0 1.895-.173 2.698-.59.632-.222 1.36-.762 2.284-1.5zM181.5 8.947c.51-.64.971-1.106 1.312-1.278.462-.295 1.045-.467 1.774-.467 1.143 0 2.115.59 2.99 1.794.583-.688 1.094-1.155 1.556-1.401.51-.295 1.215-.418 2.017-.418 2.48 0 3.743 1.229 3.743 3.662v11.773c0 .983-.34 1.45-1.094 1.45-.68 0-1.045-.467-1.045-1.45v-11.06c0-1.5-.632-2.31-1.847-2.31-.924 0-1.847.59-2.65 1.67v11.725c0 .983-.34 1.45-1.045 1.45-.705 0-1.045-.467-1.045-1.45v-10.84c0-1.67-.68-2.506-2.017-2.506-.851 0-1.653.59-2.528 1.671v11.675c0 .983-.34 1.45-1.094 1.45-.68 0-1.045-.467-1.045-1.45V8.234c0-.688.291-1.057.85-1.057.292 0 .584.221.754.639.316.32.413.737.413 1.13zM200.167 8.947c1.604-1.156 3.5-1.745 5.566-1.745 4.351 0 6.539 1.868 6.539 5.505v6.046c0 1.746-.632 3.073-1.848 4.056-1.094.86-2.576 1.327-4.472 1.327-2.236 0-4.132-.59-5.81-1.794v6.857c0 1.057-.34 1.573-1.045 1.573-.68 0-1.045-.516-1.045-1.573V8.775c0-1.057.292-1.573.85-1.573.293 0 .584.22.803.639.17.344.34.762.462 1.106zm0 11.035c1.483 1.328 3.33 2.04 5.445 2.04 1.312 0 2.357-.22 3.16-.762.972-.59 1.434-1.45 1.434-2.556v-6.046c0-1.278-.51-2.138-1.556-2.728-.802-.418-1.896-.64-3.209-.64-1.215 0-2.187.173-2.916.517-.681.295-1.435.934-2.358 1.868v8.307zM219.394 14.231c0-4.596 1.555-8.652 4.715-12.24 1.142-1.327 2.066-1.966 2.698-1.966.219 0 .462.049.632.22.17.173.292.345.292.59 0 .345-.413.86-1.216 1.672-3.281 3.195-4.934 7.128-4.934 11.847 0 5.235 1.726 9.463 5.105 12.707.68.64 1.045 1.155 1.045 1.573 0 .221-.122.467-.292.64-.17.171-.413.294-.632.294-.802 0-1.896-.934-3.33-2.777-2.77-3.441-4.083-7.62-4.083-12.56zM262.854 15.386c0 4.596-1.555 8.652-4.715 12.24-1.143 1.328-2.066 1.967-2.698 1.967-.22 0-.462-.05-.632-.222-.17-.172-.292-.417-.292-.639 0-.344.413-.86 1.215-1.622 3.282-3.195 4.935-7.128 4.935-11.847 0-5.235-1.726-9.462-5.105-12.707-.68-.639-1.045-1.155-1.045-1.573 0-.221.121-.467.292-.639.17-.172.413-.295.632-.295.753 0 1.896.934 3.33 2.778 2.698 3.514 4.083 7.693 4.083 12.56zM251.02 28.6h-19.89a1.226 1.226 0 01-1.216-1.23c0-.677.487-1.23 1.217-1.23h19.89c.608 0 1.216.492 1.216 1.23s-.486 1.23-1.216 1.23zM236.919 2.507s1.653 1.155 1.653 3.244c0 3.613-4.862 7.644-4.862 11.38 0 4.056 3.063 6.71 6.028 7.497.414.098.608-.394.073-.516-1.19-.295-2.552-1.893-2.552-4.4 0-2.31 2.188-3.17 3.087-4.301.9-1.155.68-2.606.17-3.023-.535-.418-.17-.984.778-.32.948.664 1.75 1.917 1.458 3.122-.364 1.523.122 2.408.9 2.507.778.098 1.653-.295 1.58-1.033-.098-.737-.535-1.524-.268-1.524.56 0 1.75 1.401 1.75 3.613 0 2.213-1.823 3.761-2.357 4.35-.34.345.097.812.559.59.218-.098.705-.392 1.02-.614 1.435-1.032 3.67-3.121 3.67-7.005 0-4.055-1.53-5.874-3.062-7.373-1.531-1.524-1.92-1.13-1.482-.393 1.312 2.26.51 3.023-.438 3.023-1.118 0-1.191-2.556-1.629-4.523-.972-4.35-4.86-5.087-5.59-5.137-.705.025-1.361.467-.486.836z' transform='translate(-4 -6) translate(4 6)' /> </g> </svg> ); } freeCodeCampLogo.displayName = 'freeCodeCampLogo'; export default freeCodeCampLogo; </ins>

Nav logo should be served a react svg component in the codebase for reference. The alt text should read: ''
Removing the first timers, because it may not be very trivial.
I would love to get this done. Please assign it to me.
Issue assignment is not necessary, we accept the first valid PR, which follows our contribution guidelines.
Thanks for the heads up, I thought we still followed the assignment rule like in the past. I will submit a PR soon.
There you go, making an exception because of your interest :) Happy contributing!
Hi how is this coming along. Are you still working on this?
Hi I will be making a PR today hopefully. Was stuck in some other work.
Hi I ran into an Eslint issue, when I converted SVG to JSX the svg path code is so lengthy that I get Any hint on how I can manage this? tried running the but it doesn't work.
You should be able to wrap using the lines at 80 in your code editor if you happen to use VS Code? Let's make a PR or share a link to your repo/branch for more context. Thanks.
Created a PR with ESLint max-len disabled. I tried wrapping the code to multiple lines but some string blocks are very long and would break the svg if put on a new line.


Question: bsStyle='primary' onClick={submitChallenge} >  Submit and go to next challenge{' '}   {isSignedIn ? 'Submit and g' : 'G'}o to next challenge{' '}  (Ctrl + Enter) </Button>  {isSignedIn ? null : ( <Login block={true} bsSize='lg' bsStyle='primary' className='btn-invert' > Sign in to save your progress </Login> )}  {this.state.downloadURL ? ( <Button block={true}

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: ], "tests": [ "assert(lastLetterOfLastName === "e", 'lastLetterOfLastName should be "e"');",  "assert(editor.getValue().match(/.length/g), 'You have to use .length to get the last letter');"   "assert(editor.getValue().match(/.length/g).length === 2, 'You have to use .length to get the last letter');"  ], "challengeSeed": [ "var firstName = "Ada";",

Challenge has an issue. test asserting is used will always be true, as the example code in the editor uses it.
thanks for pointing this out! You're right. Actually that assert should check if there are minimum two 's in the code.


Question: "name":"Seek and Destroy", "difficulty":"1.60", "description":[ <del> "Remove all values (last argument(s)) from an array (first argument) and return as a new array." </del> <ins> "You will be provided with an initial array (the first argument in the destroyer function), followed by one or more arguments. Remove all elements from the initial array that are of the same value as these arguments." </ins> ], "challengeSeed": "function destroyer(arr) {n  // Remove all the valuesrn  return arr;rn}nndestroyer([1, 2, 3, 1, 2, 3], 2, 3);", "tests": [ "assert.deepEqual(destroyer([1, 2, 3, 1, 2, 3], 2, 3), [1, 1], 'should remove correct values from an array');", "assert.deepEqual(destroyer([1, 2, 3, 5, 1, 2, 3], 2, 3), [1, 5, 1], 'should remove correct values from an array');" ], <del> "MDNlinks" : ["Array.filter()"] </del> <ins> "MDNlinks" : ["Arguments object","Array.filter()"] </ins> }, { "_id": "a24c1a4622e3c05097f71d67",

source: Currently Reads: "Remove all values (last argument(s)) from an array (first argument) and return as a new array." Issue: From my understanding, the user is all the values from an array. However, the information in the parentheses (e.g "last argument(s) and "first argument") seem confusing. Can you please ellaborate further?
Here's another way of saying it: You will be provided with an array (the first argument in the function) and one or more values (the remaining arguments in the function) that must be removed from that array. If you look at the current tests, the arguments are similar: 1 array and 2 values. The instructions are asking you to remove as many values as are provided, but you will pass the tests if you only account for two (this will most likely be updated in the future). Does that help?
In the more information section we should mention about the object of JavaScript, and also perhaps link to the MDN page of it.
See updated copy: and pull request


Question: context: . dockerfile: Dockerfile.tests volumes: <del> - .:/app - node_modules:/app/node_modules - client_node_modules:/app/client/node_modules - server_node_modules:/app/api-server/node_modules - curriculum_node_modules:/app/curriculum/node_modules - challenge_md_parser_node_modules:/app/tools/challenge-md-parser/node_modules - seed_node_modules:/app/tools/scripts/seed/node_modules - client_plugin_nav_data_node_modules:/app/client/plugins/fcc-create-nav-data/node_modules </del> <ins> - .:/app:delegated - node_modules:/app/node_modules:delegated - client_node_modules:/app/client/node_modules:delegated - server_node_modules:/app/api-server/node_modules:delegated - curriculum_node_modules:/app/curriculum/node_modules:delegated - challenge_md_parser_node_modules:/app/tools/challenge-md-parser/node_modules:delegated - seed_node_modules:/app/tools/scripts/seed/node_modules:delegated - client_plugin_nav_data_node_modules:/app/client/plugins/fcc-create-nav-data/node_modules:delegated </ins> working_dir: /app volumes:

Is your feature request related to a problem? Please describe. Building project using docker on macOS is notoriously slow, after some googling, I found that there's some ways to boost the performance of this process. I post the link to the posts I read in here just in case someone want some reference Here's the link to performance comparison Here's the GitHub issue related to the subject In a nutshell, building project with docker on mac is unbearably slow, so, I use flag when run docker, here's the screenshot on how I modified my docker- to make the build process from almost forever to just a few second: (I still modify a section but there's no enough space to include that to the screenshot, anyway, you can tell from the preview pane on the upper right) ! Describe the solution you'd like So, I suggest include this change to yaml file in the project, or(see next) Describe alternatives you've considered Add an extra notice to , letting those who use mac be aware this issue and let them know how to alleviate the pain. PS: I'm also happy to help with this issue
Sure, the docker setup guide has not seen much love lately. Its intial intention was to remove the friction of installing the services like MongoDB, etc. However, it has become painfully slow when setting up from scratch. Please feel free to open a PR for benifit of everyone.
Thanks for the response! So, which option do you recommend? modify the docker- file and make the PR add a new notice in the contribution guide for those who run the project from scratch PS: thanks to the usage of flag , I never hear those crazy fan noise from my old MBP anymore and the CPU usage of the docker is really low now~
Lets start by adding the flag like you have tested. We could merge the PR and keep it under observation for a few days. We could add a warning or remove/overhaul the docker setup if the flags break something, later.
Hey, man, thanks for the advice and sorry for not keeping the update or work on it for several days, I'm currently dealing with some life emergency, and magically, the only thing that can let me feel less painful or pain-free is immerse myself in the world of coding how crazy!

Anyway, I just opened a PR and hopefully that can help a lot of people using mac and try to build the project from docker~ PS: I kind of favor adding a note on the guide to remind those with mac to do the flag thing when they build the project, because slow building only happen on mac I think, although this could lead to problems like forgot to remove the flag in the file when they commit so they push to the remote and cause a lot of conflicts... Anyway, adding this flag while building on PC or Linux shouldn't cause any problem I think, because means the change between host and container is not in sync immediately... hmm... sounds like a problem... but for more on it I think you should consult the docker doc I posted above
Hey Benjamin. Hope that you are hanging in well. Stay strong and I wish you the very best in whatever you are dealing with. Keep doing what you love. Thanks a lot for the PR, and your contributions during these hard times. I will take a look at the PR and will check your recommendations. I hope you have a great day ahead. Goodluck.
Thank you so much for the kind words you said, you have no idea what they means to me during this time... thank you!!!! And I am really grateful that I am able to find peace inside the world of code... Also, there seems some problems of the cypress testing of my pr.... dang it... anyway, I will have a look on it as well later. Thank you guys! Stay safe! And have a great day!
Hey I'm glad you're able to find some peace, that's some good news. As for the cypress testing, don't worry about it - I'll investigate. It's almost certainly not your code. It looks like a old bug that I thought I'd squashed.


Question: "order": 1, "superBlock": "project-euler", "disableLoopProtectTests": true, <ins> "disableLoopProtectPreview": true, </ins> "challengeOrder": [ { "id": "5900f3d21000cf542c50fee4",

Timeout limits are too aggressive on this problem and blocking users from computing the correct answer. Verified via , the code above produces the correct number of semiprimes for 1, 10, ..., . However, for , we have a timeout. This code could probably be a bit more efficient, but even if I just cut it down to finding all primes < , it times out, indicating that it is not possible for campers to complete this exercise with the current infinite loop protections on this problem. All?
Seems like a good challenge to just remove the loop protect from entirely.
Seems like a reasonable fix to me


Question: "tests": [], "type": "basejump", "challengeType": 4,  "isRequired": true   "isRequired": true, "nameEs": "Capa de abstracción para buscar imágenes", "descriptionEs": [ "Objetivo: Arma una aplicación de Pila Completa en JavaScript que te permite buscar imágenes como esta: https://cryptic-ridge-9197.herokuapp.com/api/imagesearch/lolcats%20funny?offset=10 y examinar las búsquedas recientes como esta: https://cryptic-ridge-9197.herokuapp.com/api/latest/imagesearch/. Después, despliegala en Heroku.", "Ten en cuenta que para cada proyecto, deberías crear un nuevo repositorio en GitHub y un nuevo proyecto en Heroku. Si no recuerdas como hacer esto, vuelve a visitar http://freecodecamp.com//challenges/get-set-for-our-back-end-development-projects.", "Aquí están las historias de usuario específicas que debes implementar para este proyecto:", "Historia de Usuario: Puedo obtener la URL de una imagen, texto alternativo y URLs de las páginas de un conjunto de imágenes que se relacionen con una cadena de texto dada.", "Historia de Usuario: Puedo examinar página a página las respuestas añadiendo un parámetro del estilo ?offset=2 al URL.", "Historia de Usuario: Puedo obtener una lista de las cadenas búscadas que se enviaron más recientemente.", "Una vez que hayas terminado de implementar estas historias de usuarios, pulsa el botón "I've completed this challenge" e introduce los URLs de tu repositorio en GitHub y de tu aplicación en vivo en Heroku.", "Puedes obtener retroalimentación sobre tu proyecto por parte de otros campistas, compartiendolo 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)." ]  }, { "id": "bd7158d8c443edefaeb5bd0f",

[x] Get Set for our Back End Development Projects [x] Timestamp Microservice [x] Request Header Parser Microservice [x] URL Shortener Microservice [x] Image Search Abstraction Layer [x] File Metadata Microservice
Currently working on this.
I just used part of the PR that you closed. Thank you. Blessings.


Question: </Modal.Body> <Modal.Footer className='reset-modal-footer'> <Button <del> data-cy='exit-exam-modal-confirm' block={true} bsStyle='danger' onClick={exitExam} > {t('learn.exam.exit-yes')} </Button> <Button </del> data-cy='exit-exam-modal-deny' block={true} bsStyle='primary'

In the exit exam modal, the primary button comes first then the close button, while the reset progress and delete account modals have it the other way around. We have been displaying buttons from the most used/important to the least (check code -save code -get help), so I think the reset progress and delete account modals should be changed to follow the pattern. It's to maintain the consistency and to prevent the user from clicking the wrong button with their muscle memory (the color in this case helps, but non-sighted users won't have the cue). The button order of the reset progress and delete account modals should be flipped.
Other way around, I think. The exit exam should be flipped. If the top button is the most commonly used one, then we should set that to the non-destructive action here. That way, if someone clicks it out of muscle memory and not intention, they haven't done something irreversible.
Yup, I think the exam one should be flipped - that's how it is in the danger zone on the settings too
Okay, thanks everyone for the input. We are going to proceed with an update in the exit exam modal. This issue is open to first-time code contributors to this repository. The file that you should be updating is 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.
Yes, I agree. The 'Reset progress' and 'Delete account' buttons should be reversed. The affirmative option always comes first, followed by the negative option.
Hello, I have flipped the order of the buttons. This should reflect the structure that it appears as.
Follow the
I have flipped the order of exit-exam model buttons, Please review it


Question: assert(new __helpers.CSSHelp(document).getStyle('html')?.fontSize === '62.5%'); ``` <del> Your `html` selector should have a `box-sizing` property set to `border-box`. ```js assert(new __helpers.CSSHelp(document).getStyle('html')?.boxSizing === 'border-box'); ``` </del> # --seed-- ## --seed-contents--

Someone in the forums pointed out that adding the property just to will not have the intended effect since the property is not inherited. It appears to me that removing this property completely from in the final product does not seem to make any difference to the layout. Do we need ? If so, if the intent is to apply it to all elements then it should probably be moved to the rule set. Either remove completely or move it into the ruleset. No response N/A No response
Pretty sure I saw this in another challenge too and it got fixed. The CSS used looks like the of setting the but with the actual inheriting missing from the code. It should be fixed, but I would not suggest we remove , setting that (in my opinion) is pretty much a best pratice.
I'm guessing it would be easier and take less explaining to update step 26 to add the on that selector and then remove the mention of it in step 27. Then update all the seed code.
Just a heads up, if lasjorg PR merged without issue, balance sheet project suffer the same issue, we can open a PR or issue for it, if the PR is merged. Except that the balance sheet project , doesn't do much and moving it break the layout.


Question:
className="text-center challenge-title" > title text      Passed  <svg height="50" style={ Object { "height": "15px", "marginLeft": "5px", "width": "15px", } } viewBox="0 0 200 200" width="50" xmlns="http://www.w3.org/2000/svg" > <g> <title> Passed </title> <circle cx="100" cy="99" fill="#858591" r="95" stroke="#858591" strokeDasharray="null" strokeLinecap="null" strokeLinejoin="null" /> <rect fill="#ffffff" height="30" stroke="#ffffff" strokeDasharray="null" strokeLinecap="null" strokeLinejoin="null" transform="rotate(-45, 120, 106.321)" width="128.85878" x="55.57059" y="91.32089" /> <rect fill="#ffffff" height="30" stroke="#ffffff" strokeDasharray="null" strokeLinecap="null" strokeLinejoin="null" transform="rotate(45, 66.75, 123.75)" width="80.66548" x="26.41726" y="108.75" /> </g> </svg>
 <a aria-label="Next lesson"

In the new beta (currently at ), it would be great if a challenge page indicated somehow when the challenge has already been completed. Currently, since user inputed code is not saved, there is no indication on a challenge page that it has already been completed.
We need a check mark in the title or a badge or to indicate the same?
The most elegant thing I can think of to have something like the little circular check mark next to the title like how it is on the learn homepage - only if it's been solved, and don't show anything if it hasn't.
That would be a nice way to handle it. Please go forth if you are interested in this?


Question: .footer .col-header { padding-bottom: 5px; <ins> padding-left: 5px; </ins> font-weight: bold; } .footer a:not([class*='inline']) { display: block; <ins> padding-left: 5px } .footer a:hover { outline-offset: 1px; outline: 1px dashed #A0A0A0; background-color: #ffbe41; </ins> } .night .footer {

<!-- 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: At the moment, the clickable area of footer links are spanning the full width of their parent div. I'm not sure if this is on purpose, but IMHO, they should fit to their content instead, since a user could get navigated to another page if they accidentally click somewhere within the clickable area. This issue is on , but it is down for maintenance at the moment. The screenshot is of my local fCC. !
Is that actually a problem, though? I think having list items spread like that is pretty common. It could be a problem if you aimed for, say, Learn and got News, but there's a reasonable amount of space between them. How about if the box were subtly highlighted on hover?
Thanks for the threads
Tbh, this is the first time I have seen footer items spread like that, though it is common to me to see that on a navbar. I have no problem with leaving it as is, but adding background color on hover would be great.
I, personally, would prefer if only the text was clickable - but it works either way.
Personally I like the wider boxes, because I'm lazy and click in the general vicinity of things. So, I've a PR for the highlight approach, since that was a really easy fix. If that doesn't seem right we can always shrink the links onto the text.


Question: This will make it easier for you to work with `rem` units later, as `2rem` would be 20px. <del> Also, set the `box-sizing` property to `border-box`. </del> # --hints-- You should create an `html` selector.

Someone in the forums pointed out that adding the property just to will not have the intended effect since the property is not inherited. It appears to me that removing this property completely from in the final product does not seem to make any difference to the layout. Do we need ? If so, if the intent is to apply it to all elements then it should probably be moved to the rule set. Either remove completely or move it into the ruleset. No response N/A No response
Pretty sure I saw this in another challenge too and it got fixed. The CSS used looks like the of setting the but with the actual inheriting missing from the code. It should be fixed, but I would not suggest we remove , setting that (in my opinion) is pretty much a best pratice.
I'm guessing it would be easier and take less explaining to update step 26 to add the on that selector and then remove the mention of it in step 27. Then update all the seed code.
Just a heads up, if lasjorg PR merged without issue, balance sheet project suffer the same issue, we can open a PR or issue for it, if the PR is merged. Except that the balance sheet project , doesn't do much and moving it break the layout.


Question: assert.equal(allSongs[2].artist, "Quincy Larson"); ``` <del> The third object in your `allSongs` array should have a `duration` property set to the string `4:15`. </del> <ins> The third object in your `allSongs` array should have a `duration` property set to the string `3:51`. </ins> ```js assert.equal(allSongs[2].duration, "3:51");

The description shows the property should have a value of but the hint shows instead The property should have a value of the string . ! 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


Question: it('returns a boolean', () => { const result = isWhiteListedPath(); expect(typeof result).toBe('boolean'); }); it('returns true for a white listed path', () => { <del> expect.assertions(2); </del> const resultA = isWhiteListedPath( '/auth/auth0/callback?code=yF_mGjswLsef-_RLo', whiteList

These should be available without any access tokens: [x] Used for public profile views. [x] Used for confirming and email. [x] Health Check


Question: } .challenge-title-wrap > a { <ins> margin-top: 10px; </ins> align-self: flex-start; }

The new buttons hug the top of the panel. <img width="347" alt="Screen Shot 2019-08-20 at 10 54 27 AM" src="https://user-"I can fix this one.


Question: Alternatively you can follow official documentation referenced below: <del> To install and configure Playwright on your machine check out this [documentation](https://playwright.dev/docs/intro#installing-playwright) </del> <ins> To install and configure Playwright on your machine check out this [documentation](https://playwright.dev/docs/intro#installing-playwright). </ins> To learn how to write Playwright tests, or 'specs', please see Playwright's official [documentation](https://playwright.dev/docs/writing-tests).

In the , we say that: But IMHO, test IDs should be used sparingly in cases where we can't use any other locators as an alternative. The issue with test IDs is that it doesn't guarantee the page has the correct text or the page / section of the page has proper element usages (which is important to ensure that our pages are accessible). Here is an example, let's pretend we have the following HTML: If our test only checks for the test ID, the test would pass while this is not a valid implementation of a button and will cause a severe accessibility issue: But if we write the assertion with , the test would fail, which enables us to ensure the validity of the DOM: https://testing- N/A Update the guide and recommend using and instead of . We can also add the link to the for other recommended locators. No response
I agree. Recently, I've opened two PRs with E2E tests, and although I followed the guide and used , it just doesn't feel right to do it this way.
can you assign to me
I've created to update the guide with the new recommendation. For Hacktoberfest PRs that have already been using test IDs, I think we should still respect the authors' efforts and accept their code addition, and we can always improve the tests later on.


Question: ); const ShowProjectAndGithubLinks = ( <del> <div className='solutions-dropdown'> </del> <ins> <div> </ins> <Dropdown id={`dropdown-for-${id}-${randomIdSuffix}`}> <Dropdown.Toggle className='btn-invert'> {viewText}{' '}

contains a single CSS rule: This rule is not needed as the underline of the is already turned off by the component library. Remove Remove the class from
This issue is open for contribution. Please make sure you read our as well as 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: "tests": [], "type": "basejump", "challengeType": 4,  "isRequired": true   "isRequired": true, "nameEs": "Microservicio de metadatos de archivos", "descriptionEs": [ "Objetivo: Arma una aplicación de Pila Completa en JavaScript que sea funcionalmente similar a esta: https://cryptic-ridge-9197.herokuapp.com/  y despliegala en Heroku.", "Ten en cuenta que para cada proyecto, deberías crear un nuevo repositorio en GitHub y un nuevo proyecto en Heroku. Si no recuerdas como hacer esto, vuelve a visitar http://freecodecamp.com//challenges/get-set-for-our-back-end-development-projects.", "Aquí están las historias de usuario específicas que debes implementar para este proyecto:", "Historia de Usuario: Puedo enviar un objeto FormData que incluya una subida de un archivo.", "Historia de Usuario: Cuando envío algo, recibiré el tamao del archivo en bytes en la respuesta JSON.", "Pista: Puede servirte este paquete: https://www.npmjs.com/package/multer", "Una vez que hayas terminado de implementar estas historias de usuarios, pulsa el botón "I've completed this challenge" e introduce los URLs de tu repositorio en GitHub y de tu aplicación en vivo en Heroku.", "Puedes obtener retroalimentación sobre tu proyecto por parte de otros campistas, compartiendolo 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)." ]  } ] }

[x] Get Set for our Back End Development Projects [x] Timestamp Microservice [x] Request Header Parser Microservice [x] URL Shortener Microservice [x] Image Search Abstraction Layer [x] File Metadata Microservice
Currently working on this.
I just used part of the PR that you closed. Thank you. Blessings.


Question: executeChallenge: PropTypes.func.isRequired, ext: PropTypes.string, fileKey: PropTypes.string, <ins> inAccessibilityMode: PropTypes.bool.isRequired, setAccessibilityMode: PropTypes.func.isRequired, </ins> setEditorFocusability: PropTypes.func, theme: PropTypes.string, updateFile: PropTypes.func.isRequired

Looking forward for reporting a security issue: Please report security issues by sending an email to instead of raising a Github issue. Describe the bug A clear and concise description of what the bug is. The Monaco editor contains features for accessibility, specifically a mode for screen reader users which helps in navigating and using the editor effectively. This feature, as of now, must be enabled at the start of each lesson, even after enabling it once at the beginning of the session. To Reproduce Steps to reproduce the behavior: to any lesson in the curriculum. the code editor, set focus to it. alt+f1 to show accessibility help for the editor, and choose to enable the screen reader mode the lesson, advance to the next, and repeat steps two and three Expected behavior A clear and concise description of what you expected to happen. The screen reader mode should have stayed enabled across lessons. Screenshots If applicable, add screenshots to help explain your problem. Desktop (please complete the following information): OS: [e.g. iOS] Windows Browser [e.g. chrome, safari] Chrome Version [e.g. 22] 69.0.3497.100 (Official Build) (64-bit) Smartphone (please complete the following information): Device: [e.g. iPhone6] OS: [e.g. iOS8.1] Browser [e.g. stock browser, safari] Version [e.g. 22] Additional context Add any other context about the problem here. Tested screen reader: NVDA version 2018.3.2 from
Hey, As a part of hacktoberfest, I would like to work on this issue. Can I expect mentorship on this?
I'm new on this too. But if you need help, I would like to work on this issue too.
Can you reproduce this issue?
A group of us are working on this issue for a class project in university. We aim to address this in the next couple of days. We will try and at least present the community with a first iteration of our proposed solution. Just a heads up. If the current developers have any advice or tips, feel free to contact me. Thank you. is the primary developer in the team, working alongside me.
Any updates on this ?
This looks to be fixed, the editor is focused on load.

Can you confirm that this is fixed If so, this can probably be closed.
I don't think it is fixed. It focuses on load by default, but I think that turning on the screen reader mode is separate from just focusing. I don't have a screen reader installed, but if I follow the steps above I keep having to re-enable that mode each time I go to a new challenge.
Sorry, I don’t think the editor should be focused on load, as that means the screen reader user most unfocus it, move back to the heading to read the challenge, then focus it again to write code. Also, I still have to enable accessibility mode on each challenge.
I see now. And I can say that the built in screen reader on osx doesn't do anything with the editor. Is this something we can control? Or is it just part of the monaco editor and we are at their mercy?
VoiceOver on MacOS is… not the best, sadly, when it comes to web apps. If possible, you can send technical info about this to <mailto: is Microsoft’s editor, which seems to be VSCode stripped down to the editor. Perhaps you could contact Microsoft and see if they could add a way to make accessibility states persistent across loads, if this isn’t possible already.
That is annoying. For now you should be able to focus the description by pressing escape (at the moment, it's still in a state of flux), but I'll see about making screen-reader mode something that persists between challenges.
Seeing as how this issue is beyond our control, should we close this and make a new issue about the editor being focused on load? You can feel free to email apple or microsoft if you want Thanks for the advice though.
no need to close this. I think I can fix it.
Yes, we can close this issue.
Quick update. Both the auto-focusing and the persistence of accessibility mode should be fixable. I think I'm about 90% of the way there, but for some reason it stops letting you toggle the accessibility support after a couple of toggles. This, obviously, isn't ideal, but most of the functionality is there.