Question:
## Instructions
  Access the myStorage object and assign the contents of the glove box property to the gloveBoxContents variable. Use bracket notation for properties with a space in their name.   Access the myStorage object and assign the contents of the glove box property to the gloveBoxContents variable. Use dot notation for all properties where possible, otherwise use bracket notation.
 ## Tests

Based on and others like it, I am wondering if we should slightly modify the instructions for the challenge. The last test is written to only accept a solution were the properties "car" and "inside" must use dot notation and the "glove box" property (of course) has to use bracket notation. The instructions only state the camper to use bracket notation on the "glove box", but does not make it clear bracket notation can not be used on "car" and "inside". Many campers don't understand why their solution (which would technically get the "glove box" property's value) fails the last test. With the current instructions, all three of the following should be accepted because the only real requirement in the current instructions is "Use bracket notation for properties with a space in their name." Since it is a "best practice" for more readable code to use dot notation where possible, I am wondering what others think about changing the instructions to something like the following: This way the existing test can be used and the camper gets to use the knowledge they have already obtained from previous lessons (i.e. properties with spaces need bracket notation) without us explicitly telling them to use bracket notation (which felt a bit like hand-holding to me).
Seems good to me. It should help them realise that they need both forms without straight up telling them the answer.
I'm actually not a fan of this. I don't like when valid code will fail - I think it can get people thinking their method is wrong when it is actually correct - I would rather see something like it is and maybe just add a note about how using the dot is best practice when applicable. - my two cents edit: after taking a second look - I think it would be fine to go either way here. Many of the other challenges in this area force a certain syntax.
When possible, we try to imply "best practices" without just coming out and saying it is a "best practice". If we don't care about teaching a "best practice", then I have already written the necessary to allow all three of the following: I would be comfortable in doing this too, but I lean slightly towards my other idea for two reasons: to use dot notation possible over bracket notation promotes better code readability. users to think about alternative ways of accessing object properties (not just using bracket notation for everything) gets the users out of their comfortable zone.

I've thought about this a little more and I think just changing the instructions is the way to go. Requiring campers to use both dots and brackets serves as a nice reminder that both forms of notation work. Since this lesson appears a little bit after they're introduced, it should serve as useful reinforcement. Ordinarily I prefer fairly permissive tests, but the strictness has a use here.
Hey , I think it's a good idea. Can I take this up to make my first contribution(PR) to freecodecamp?
Go for it. It is all yours. Let us know if you have any questions. For fastest replies, visit our .
I was one of the folks who was confused by this and posted on the forum so I'm definitely in favor of a change. Either making bracket notation a valid solution when it is indeed valid for the code to work, or indicating that FCC requires dot notation unless the outcome requires bracket notation (string with space/variable). I am curious why FCC doesn't state 'best practices'. Not a criticism at all, just wondering. I obviously hadn't picked up that is was implied that dot notation should take precedence over bracket if they serve the exact same purpose in that particular situation. FWIW I found that helped a lot but not sure FCC wants to start linking to codeburst.
I wonder what about the changes in other languages?
Don't worry about the other languages. We are no longer translating the current curriculum challenges.
I submitted a PR for the update by following the contribution guidelines.


Question: font-size: 1.2rem; } <del> .completion-challenge-name, </del> .completion-block-name { font-size: 1rem; }

The contains a lot of unused CSS rules, which should be cleaned up. The unused rules/classes are: .challenge-success-modal .btn-lg .btn-cta-big .completion-modal-body .completion-message .completion-challenge-nameRemove the above classes from Test and confirm that the modal displays properly after the changes
Hi, I can help with this If you would like to assign it to me.


Question: "  return str;", "}", "",  "friendly(['2015-07-01', '2015-07-04']);"   "friendly(['2016-07-01', '2016-07-04']);"  ], "tests": [  "assert.deepEqual(friendly(['2015-07-01', '2015-07-04']), ['July 1st','4th'], 'message: friendly(["2015-07-01", "2015-07-04"]) should return ["July 1st","4th"].');", "assert.deepEqual(friendly(['2015-12-01', '2016-02-03']), ['December 1st','February 3rd'], 'message: friendly(["2015-12-01", "2016-02-03"]) should return ["December 1st","February 3rd"].');", "assert.deepEqual(friendly(['2015-12-01', '2017-02-03']), ['December 1st, 2015','February 3rd, 2017'], 'message: friendly(["2015-12-01", "2017-02-03"]) should return ["December 1st, 2015","February 3rd, 2017"].');", "assert.deepEqual(friendly(['2016-03-01', '2016-05-05']), ['March 1st','May 5th'], 'message: friendly(["2016-03-01", "2016-05-05"]) should return ["March 1st","May 5th"]');", "assert.deepEqual(friendly(['2017-01-01', '2017-01-01']), ['January 1st, 2017'], 'message: friendly(["2017-01-01", "2017-01-01"]) should return ["January 1st, 2017"].');",   "assert.deepEqual(friendly(['2016-07-01', '2016-07-04']), ['July 1st','4th'], 'message: friendly(["2016-07-01", "2016-07-04"]) should return ["July 1st","4th"].');", "assert.deepEqual(friendly(['2016-12-01', '2017-02-03']), ['December 1st','February 3rd'], 'message: friendly(["2016-12-01", "2017-02-03"]) should return ["December 1st","February 3rd"].');", "assert.deepEqual(friendly(['2016-12-01', '2018-02-03']), ['December 1st, 2016','February 3rd, 2018'], 'message: friendly(["2016-12-01", "2018-02-03"]) should return ["December 1st, 2016","February 3rd, 2018"].');", "assert.deepEqual(friendly(['2017-03-01', '2017-05-05']), ['March 1st','May 5th'], 'message: friendly(["2017-03-01", "2017-05-05"]) should return ["March 1st","May 5th"]');", "assert.deepEqual(friendly(['2018-01-01', '2018-01-01']), ['January 1st, 2018'], 'message: friendly(["2018-01-01", "2018-01-01"]) should return ["January 1st, 2018"].');",  "assert.deepEqual(friendly(['2022-09-05', '2023-09-04']), ['September 5th, 2022','September 4th, 2023'], 'message: friendly(["2022-09-05", "2023-09-04"]) should return ["September 5th, 2022","September 4th, 2023"].');" ], "MDNlinks": [

With the the new year now recently 2016... The test still stays: friendly(["2015-07-01", "2015-07-04"]) should return ["July 1st","4th"]. But shouldn't both years be ommited only if first year is the current year (which is 2016, not 2015). However, the test also says: friendly(["2016-03-01", "2016-05-05"]) should return ["March 1st","May 5th"] which implies it is following the rule that the current year is 2016. Am I missing something here?
This is for Bonfire: Friendly Dates.
Sounds like we need to update the tests on this one . . . or maybe make them more generic.
I incremented the year in every test except the last one in , some of the tests didn't need to be updated but I did it anyways. That should be enough for passing the tests during 2016, but I think those tests could be more generic
I think this issue can be closed now.


Question: console.log(greeting()); // Hello Anonymous ``` <del> Add a new parameter to your `setPlayerCards` function called `arr` and assign it a default value of `players`. </del> <ins> Add a new parameter to your `setPlayerCards` function called `arr` and assign it a default value of `players`. Remember that you destructured the `players` variable from the `myFavoriteFootballTeam` object on line `175`. </ins> # --hints--

it is confusing whether campers will pass string of 'Players' or variable named . i think the wording should be cleared on the hint. ! Your parameter should have a default value pointing towards the variable named . something like this should be on the hint ? ! OS: [Windows 11] Browser: [Chrome] No response
I think it would be best to update the description to remind campers where came from some thing like


Question: Text is often a large part of web content. CSS has several options for how to align it with the `text-align` property. <del> `text-align: justify;` causes all lines of text except the last line to meet the left and right edges of the line box. </del> <ins> `text-align: justify;` spaces the text so that each line has equal width. </ins> `text-align: center;` centers the text

!
If possible please assign this issue to me! as I am new to open source
For future reference, it would help to have a link to the challenge when creating an issue It's To clarify, you want to change: to: That's not bad. What about
Yes, that is better! and sorry for any inconvenience as I am new to open source
Please, can you assign me to resolve that issue? That'll be a great start for my open source journey!
We do not assign issues The first PR that fixes the problem will be accepted. If you have not done so already, you should read the . Thanks for your interest in contributing If you have any questions, feel free to ask - or you can reach out in the
Please review the PR
please be patient, people will review when they can.
Alright!


Question: id: 567af2437cbaa8c51670a16c title: Testing Objects for Properties challengeType: 1 <del> videoUrl: https://scrimba.com/c/cm8Q7Ua </del> <ins> videoUrl: https://scrimba.com/c/c6Wz4ySr </ins> forumTopicId: 18324 localeTitle: Тестирование объектов для свойств ---

<!-- NOTE: If you're reporting a security issue, don't create a GitHub issue. Instead, email We will look into it immediately. --Describe your problem and how to reproduce it: the "Get Help" button "Watch a video" The code used in the video is outdated. This has caused several campers to post for help on the forum because the answer they copied from the video does not pass the current tests. Here are three just from the past day: The current starter code is as follows: The starter code in the video is as follows: I suggest the video be removed in order to cut down on these forum posts. Add a Link to the page with the problem:
This is another topic of discussion, but based on those forum posts it seems that many people have directly copied the code from the video, possibly without even reading the instructions or looking at the starter code before overwriting it all. It makes me wonder if the help videos are actually that useful as an educational tool.
Just now:
Whilst, at one stage, the code in the videos did correspond to the correct solution, and users could just copy to pass, the videos are still quite helpful. In my opinion, with the code being slightly off, but still relevant, the videos are even more helpful, as it prevents users from just copying the answer, and they have to think for themselves. In my opinion, the videos should remain as is, unless something in them becomes deprecated, as the person in the video still goes through an explanation of what they are doing and why, which is invaluable as a user who wants to learn.
I get your point and agree with you that a slightly off video is more beneficial to those who want to learn, it's just that there are 30+ forum posts with people who have copied directly from the video in the past 3 weeks (since the problem was changed). If the video were removed, then those posts would never show up in the first place. Likewise, for learners who aren't able to solve the new problem on their own, they'll still be able to ask for help on the forum just like always. Only, instead of asking why the video code they copied doesn't pass "even though it should", they'll instead ask about about how to solve the problem as it's written.

Then the posters on the forum would be able to answer instead of In my opinion, the former is a much more valuable learning experience for all involved, both because it's more positive and it's actually about the topic.
Yes, fair enough. I guess we should be asking the questions: 1) Will the videos ever be updated? (I assume not, as the style of curriculum is changing) 2) If not, could a note explaining that the video code is not enough to pass the tests be to the introductory page? (just some way to make it clear to avoid the clogging of the forum)
are you still updating the videos for the old curriculum?
I have forwarded this to Beau for a response. Thanks for your patience. Meanwhile recommend linking to this thread from the forum and closing the topics while we arrive at a conclusion.
I'm working on this. I'll update the video.


Question: template }; } <del> challengeData.theme = theme; </del> return challengeData; };

I did not see anyone raising this issue, but I don't think the background of the preview in default or night mode should be anything other than white unless the coding exercise specifically changes the background to something else. The preview should be exactly what you would see in a browser. In almost all the challenges, the background would be white. !
I share your concerns The reason we changed the color of the display is that a white display is discomforting to the eye on night mode when everything else is dark. so we injected some styles to harmonize the view in general. That convention was carried over to light mode.
It might be better to default to white in light mode, same as the editor. As for night mode, some of the css challenges might need some changes to look reasonable in both modes. For instance, in night mode, looks like this: ! If we change the seed code to it would become ! It would have to be case-by-case, though.
That is a very good point. I will defer this to
Logically, I have to agree with - displaying anything other than what the code in the editor would produce might confuse campers. But it is a little rough on the eyes to have the white background on night mode. And the current theme looks a lot better - so it's a tough call. I scrolled through a number of challenges, and there's quite a few that don't look right with the blue background. So there might be a decent amount of work to go through and fix all of them.
I really like the new theme, but a preview should be a true preview. We want to make this like the real world. Developers working in some kind of night mode on their favorite local editors, still expect to check the "real" result of the code they have written on a browser or in a preview mode in their local editors. The night mode should only apply to the editor or the non-preview part of the FCC site. Anything else is just not realistic.
The preview should be white.
I agree with everyone here on this thread. The preview should remain white. Note that soon the preview won't always be there on the right side "brightening up" the user interface and ruining people's night mode experience.

Soon we will have a single column layout where you the preview only shows up when you click a button to show it, or it loads in a separate tab. - could you update the styling on this so that the preview area is unaffected by our styling?
Definitely.


Question: ```js const afterCalculateTotal = code.split('calculateTotal')[1]; <del> assert.match(afterCalculateTotal, /(s*totals*,s*items*)s*=>s*totals*+s*item.price/); </del> <ins> assert.match(afterCalculateTotal, /(s*totals*,s*items*)s*=>s*(?:totals*+s*item.price|item.prices*+s*total)/); </ins> ``` Your `reduce` call should have an initial value of `0`. ```js const afterCalculateTotal = code.split('calculateTotal')[1]; <del> assert.match(afterCalculateTotal, /thiss*.s*itemss*.s*reduces*(s*(s*totals*,s*items*)s*=>s*totals*+s*item.prices*,s*0s*)/); </del> <ins> assert.match(afterCalculateTotal, /thiss*.s*itemss*.s*reduces*(s*(s*totals*,s*items*)s*=>s*(?:totals*+s*item.price|item.prices*+s*total)s*,s*0s*)/); </ins> ``` # --seed--

When working through the , it's expected from the user to create a method that internally uses a to make a sum, like the following: But when presented the following solution, making the reduce's callback sum the other way around, it doesn't pass: Because of the , the previous presented solution should work. No response Device: Laptop OS: macOS 13.6.6 Browser: Chrome Version: 124 No response
I agree that both versions should be accepted since they are valid solutions.


Question: const res = await fetch('https://pokeapi-proxy.freecodecamp.rocks/api/pokemon/pikachu'); // Fetch from proxy to simulate network delay if (res.ok) { <del> await new Promise(resolve => setTimeout(resolve, 50)); // Brief additional delay to allow UI to update </del> <ins> await new Promise(resolve => setTimeout(resolve, 1000)); // Additional delay to allow UI to update </ins> const pokemonName = document.getElementById('pokemon-name'); const pokemonID = document.getElementById('pokemon-id');

When testing one camper's code it fails some tests unless I increase all the delays to 1000ms, I tested with 500ms but that was not enough. I also saw the example project fail a test but it does pass more consistently (my guess is it is just faster with fewer async functions). To be on the safe side we should have a longer delay. I know 1000ms is a lot but better safe than sorry. Tests: Valid code should not fail because of "timing" issues. 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] Forum:
As this is a bug with a certificate project I the showstopper label.


Question: # --hints-- <del> The endpoint `/json` should serve the json object `{"message": "Hello json"}` </del> <ins> The endpoint `/json` should serve the JSON object `{"message": "Hello json"}` </ins> ```js (getUserInput) =>

The word json should be capitalized in the hint text: The endpoint /json should serve the json object {"message": "Hello json"} Referenced challenge file: curriculum/challenges/english/05-back-end-development-and-apis/basic-node-and-express/serve-json-on-a-specific- Use capitals instead of lowercase letters when referring to JSON No response Not applicable No response


Question: dashedName: task-55 --- <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-- <del> Now you will practice listening for the correct form of `do.` Listen carefully to how Tom asks about Maria's job as a team lead. </del> <ins> Now you will practice listening for the correct form of `do`. Listen carefully to how Tom asks about Maria's job as a team lead. </ins> # --instructions--

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: # --description-- <del> Add another `p` element with the text `Total Carbohydrate 37g 13%`. Like before, use `span` elements to make the text `Total Carbohydrate` and `13%` bold. Also add an additional `span` element to wrap the `Total Carbohydrate 37g` text in a span element so to have it aligned to the left, and `13%` to the right. </del> <ins> Below your last `p` element, add another `p` element with the text `Total Carbohydrate 37g 13%`. Like before, use `span` elements to make the text `Total Carbohydrate` and `13%` bold. Also add an additional `span` element to wrap the `Total Carbohydrate 37g` text in a span element to have it aligned to the left, and `13%` to the right. </ins> # --hints--

The instructions do not state clearly where the new element should be . I believe they are relying on the fact that the previous two steps a element to the end of the div and thus they assume the user will continue this trend in step 55. But I just ran into a forum post that the element after the div, so I'm not sure that's a safe assumption. Step 54 tells the user to add the element "Below your last element" and I think we should do the same thing here. N/A Change the beginning of the instructions to read: "Below your last element, add another element with the text..." No response Device: [e.g. iPhone 6, Laptop] OS: [e.g. iOS 14, Windows 10, Ubuntu 20.04] Browser: [e.g. Chrome, Safari] Version: [e.g. 22] No response
Quick question, do you think we have a typo in the instruction as well?
Yes, you're correct. The phrase "so to have it aligned to the left" can be revised to "to have it aligned to the left" for a better concise expression.
When will be waiting for triage label removed
Thanks for opening this issue. This looks like something that can be fixed by "first-time" code contributors to this repository. Here are the files that you should be looking at to work on a fix: List of files: A pull request which resolves this issue should: 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, do you think the sentence could be made more effective by removing the redundant phrase 'span element' that occurs twice in the same line?
I agree that the "in a span element" part is redundant and should be removed, but I'm not sure about the extra comma there as it makes the sentence disjointed. We might want to just ditch the commas altogether:
Agreed. Two commas seem to break the sentence unnecessarily. I already raised a PR () suggesting the removal of the redundant part, which was not merged. Should I push changes in the same PR, or create a new one?


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

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: # --description-- <del> Inside your `select` element, add the following five `option` elements with these corresponding values for the option text and `value` attribute: </del> <ins> Inside your `select` element, add the following five `option` elements with these corresponding values for the `option` text and `value` attribute: </ins> **Value Attributes:**

There are some small issues that need to be fixed in the following files: optionfor elementsinline"Check your code" String` This looks like something that can be fixed by "first-time" code contributors to this repository. The files you should look at to work on a fix are those linked above. Please make sure you read our , we prioritize contributors following the instructions in our guides. Join us in our or our if you need help contributing; our moderators will guide you through this. Sometimes we may get more than one pull request. We typically accept the most quality contribution followed by the one that is made first. Happy contributing.
Hi I'd like to work on this issue. Thanks
Hey 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.


Question: userSelector, isOnlineSelector, isServerOnlineSelector, <ins> showCodeAllySelector, </ins> userFetchStateSelector } from '../../redux/selectors';

The page gets stuck and goes blank with you leave the relational database challenges. to 'Start the course' the fCC logo/button in the nav goes blank and nav disappears Page not to go blank. Clicking fCC logo should go to /learn No response Same on Chrome and Firefox Console errors: <img width="671" alt="Screen Shot 2023-02-16 at 11 44 19 AM" src="https://user-"


Question: You should have an `if` statement that checks if the right key was pressed and if the `isCheckpointCollisionDetectionActive` is true. ```js <del> assert.match(code, /ifs*(s*keys.rightKey.presseds*&&s*isCheckpointCollisionDetectionActives*)s*{s*(.*?)s*}/); </del> <ins> assert.match(code, /ifs*(((s*keys.rightKey.presseds*&&s*isCheckpointCollisionDetectionActives*)|(s*isCheckpointCollisionDetectionActives*&&s*keys.rightKey.presseds*)))s*{s*(.*?)s*}/); </ins> ``` # --seed--

step 78 of the platformer game project wants the user to type: but if we type the checks in reverse like: It is not accepted. Stumbled on this one because to me writing the long variable name first is easier because I copy and paste it directly from the step and then I spend a little longer looking up how to tell the right key is pressed so I put that second. Since the order of conditions is not specified though in the step, the check should not be so picky. (see above) less strict checking when the order of comparisons in the if makes no difference to the result (or please specify that order matters in the instructions or the hint) No response N/A please note that step 80 has the same issue as well:


Question: import { wrapHandledError } from '../utils/create-handled-error'; const authRE = /^/auth//; <ins> const confirmEmailRE = /^/confirm-email$/; </ins> const newsShortLinksRE = /^/n/|^/p//; <ins> const publicUserRE = /^/api/users/get-public-profile$/; const publicUsernameRE = /^/api/users/exists$/; </ins> const resubscribeRE = /^/resubscribe//; const showCertRE = /^/certificate/showCert//; // note: signin may not have a trailing slash const signinRE = /^/signin/; <ins> const statusRE = /^/status/ping$/; </ins> const unsubscribedRE = /^/unsubscribed//; const unsubscribeRE = /^/u/|^/unsubscribe/|^/ue//; const updatePaypalRE = /^/donate/update-paypal/; const _whiteListREs = [ authRE, <ins> confirmEmailRE, </ins> newsShortLinksRE, <ins> publicUserRE, publicUsernameRE, </ins> resubscribeRE, showCertRE, signinRE, <ins> statusRE, </ins> unsubscribedRE, unsubscribeRE, updatePaypalRE

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


Question: import { CompletedChallenge } from '../../redux/prop-types'; import { getSolutionDisplayType } from '../../utils/solution-display-type'; <del> import './solution-display-widget.css'; </del> import '@freecodecamp/ui/dist/base.css'; interface Props { completedChallenge: CompletedChallenge;

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: if (this.state.downloadURL) { URL.revokeObjectURL(this.state.downloadURL); } <ins> this.props.close(); </ins> } render() {

Describe the bug If you complete a challenge, navigate back (taking you to the curriculum), then open a new challenge the success modal will still be open. To Reproduce Steps to reproduce the behavior: to the challenge -enter the success modal back to that the modal is still present Expected behavior The modal should be closed every time you leave a challenge. Screenshots !


Question: - HOME_LOCATION=http://$DOCKER_HOST_LOCATION:8000 - API_LOCATION=http://$DOCKER_HOST_LOCATION:3000 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/api-server command: npm run develop ports:

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: )}`} onChange={this.handleInputChange} data-index={node.value} <del> style={{ width: `${ blankAnswers[node.value].length * 11 + 11 }px` }} </del> <ins> size={blankAnswers[node.value].length} </ins> aria-label={t('learn.blank')} /> );

In the fill in the blank challenges, the size of the blanks are based on the number of characters in that blank. It's 11px per letter, plus an additional 11px buffer - This works pretty good, but sometimes you get a word with really wide letters and it doesn't fit: <img width="774" alt="Screenshot 2024-06-17 at 5 36 44 PM" src=""^ You can see is a little too wide to fit because it has wide letters. Other times, you have a bunch of narrow letters like with in the image. That fits, but there's more space on each side than needed. The challenge I noticed this on is still in beta, so you will have to run the repo with upcoming changes shown to see this specific one - but you can see it in any of the fill in the blank challenges. to http://localhost:8000/learn/a2-english-for-developers/learn-how-to-document-code-for-a-project/task-38 in the first blank that one of the letters gets cut off. The in firefox, the in Chrome. So browsers are handling it differently. in the third blank the extra space in the input before and after the word. See the image above The answers to fit in the blanks better. I think the solution I would prefer is to make a map of the letters and their spacing and make the size of the input based on what letters are in the answers. Or perhaps just a default size of the 11px or something, and a small group of narrow letters that get maybe 8, and small group wide letters that get maybe 13 or something. Or perhaps we could use a monospace font.
Not sure why, but this is what it looks like for me (Chrome, and in incognito/on Windows). ! Also, the text color doesn't seem to change to white in night mode.
I don't think monospace fonts are quite the answer; at least not itself. ! Sure it's fine for say the word "When" but for "descriptive", it's a little bigger than the blank.
I'm only using the font for the blanks, but the point remains the same.
I think using 14 maxlength will be be a better solution. before : ! after !
That's not a viable solution.

That's hard-coding a value for this one specific input. They're dynamically generated we can't do that.
I think this is the way to go. Then we can reliably know the size of every character, space our inputs accordingly, and we get the feature of visual feedback when a word is too long for that blank.
This is because the spacing is configured for 11px wide characters. I'd be willing to bet that monospace font is bigger. :)


Question: **Examples** ```js <del> 3 !==  3 3 !== '3' 4 !==  3 </del> <ins> 3 !==  3  // false 3 !== '3' // true 4 !==  3  // true </ins> ``` <del> In order, these expressions would evaluate to `false`, `true`, and `true`. </del> # --instructions-- Add the strict inequality operator to the `if` statement so the function will return the string `Not Equal` when `val` is not strictly equal to `17`

The student has to go all the way down up to the explanation "In order, these expressions would evaluate to true, false, true, and true." to realize what the result of the operations is. My suggestion is that the second section of the code should look like this: 1 == 1 // true 1 == 2 // false 1 == '1' // true "3" == 3 // true instead of the screenshot attached. <!-- Add a link to the coding challenge with the problem. -- <!-- If applicable, add screenshots to help explain your problem. you can drag and drop, png, jpg, gif, etc. in this box. --!
I would be fine with this change. Any interest in making a PR for it
, Can I? I don't know how to do it and I have never done it in my life, but besides that, I would like to do it by myself using some guide you could give me. I have never used GitHub in the past. And this will help me to contribute even more to this awesome project.
We have some . It may look a little intimidating, but if you follow the instructions it's not bad. The file where this needs to be fixed is Technically, you can edit the file on github and make a PR from there - which can work for some simple fixes, but you can't see and test your changes. I think we would accept those if you want to do that, but I would recommend setting the project up locally at some point if you want to contribute regularly. To be clear, we usually like to get second opinion before making changes like this - since we don't have that, I can't guarantee a PR would be merged - but I think others would be fine with the change so if you want to make a PR, go ahead.
This change seems good. For context, we got rid of a lot of comments since we'd need to translate them. However, these are keywords and don't need translation.
shall I take this up?
Could you clarify if this is actually what we wanted, because this is exactly what we removed 12 months ago in:
Yes, this is okay because these instances specifically are only keywords that don't get translated anyway.


Question: You should have an opening `<html>` tag with a `lang` attribute of `en`. ```js <del> assert(code.match(/<htmls+lang=('|")en1s*>/i)); </del> <ins> assert(code.match(/<htmls+langs*=s*('|")en1s*>/gi)); </ins> ``` You should have a closing `<html>` tag. Remember that closing tags have a `/` following the opening `<` bracket.

In step 1 of building a cafe menu, the attribute test is strict with space Here is the markdown file The code above should pass, for this to happen you should change to ! Please make sure you read , we prioritize contributors following the instructions in our guides. Join us in or if you need help contributing, our moderators will guide you through this. Sometimes we may get more than one pull requests. We typically accept the most quality contribution, followed by the one that is made first. Happy contributing.
Can I work on this issue ?
Yes، feel free to open a pull request


Question: npm run delete-step X # where X is the step number to be deleted. ``` <del> ## update-step-titles </del> <ins> ### update-step-titles </ins> A one-off script that automatically updates the frontmatter in a project's markdown files so that they are consistent with the project's meta.json. It ensures that each step's title (and dashedName) match the meta's challengeOrder. <del> ### How to run script </del> <ins> #### How to run script </ins> 1. Change to the directory of the project. 2. Run the following npm command:

challenge-editor should be to the "How to work on practice projects" documentation here:
I'll tackle this today.


Question: "description": [ "With JavaScript array variables, we can store several pieces of data in one place.", "You start an array declaration with an opening bracket, end it with a closing bracket, and put a comma between each entry, like this: var sandwich = ["peanut butter", "jelly", "bread"].",  "Now let's create a new array called myArray that contains both a string and a number.",   "Now let's create a new array called myArray that contains both a string and a number (in that order).",  "Refer to the comments if you get stuck." ], "tests": [

Challenge has an issue. Please describe how to reproduce it, and include links to screenshots if possible. Wants an array with a string and number. If you make the number the first element in array, it tells you that's wrong IE: var myArray = [12, "hi"]; The first item in myArray should be a string The Directions make no mention of the string having to be first
Thanks Would "Now let's create a new array called myArray that contains both a string and a number (in that order)." make this clearer for you? Or do you have a better suggestion?


Question: - text: No global myVar variable testString: assert(typeof myVar === 'undefined', 'No global myVar variable'); - text: Add a local myVar variable  testString: assert(/vars+myVar/.test(code), 'Add a local myVar variable');   testString: assert(/functions+myLocalScopes*(s*)s*{s[sS]+s*vars*myVars*(s*|=[sS]+)s*;[sS]+}/.test(code), 'Add a local myVar variable');  ```


Question: } .footer-col a { <del> padding: 5px 0px; </del> <ins> padding: 5px 0; </ins> } .footer-desc-col {

found an issue: Unexpected shorthand "padding" after "padding-bottom" (declaration-block-no-shorthand-property-overrides) It's currently on:
I'm happy to fix this (and remove the units from zero values also in that file), but I'm not sure what the preferred replacement is for the padding. Should I just remove the padding: and add lines for padding-top: 0; padding-right: 15px; to reflect the styles currently specified by the padding: 0 15px 15px line?
I would delete , you can start and these question will be answer by reviewers if they need changes later


Question: # --instructions-- <del> Time to take a break from Camper Cat and meet fellow camper Zersiax (@zersiax), a champion of accessibility and a screen reader user. To hear a clip of his screen reader in action, add an `audio` element after the `p` element. Include the `controls` attribute. Then place a `source` element inside the `audio` tags with the `src` attribute set to `https://s3.amazonaws.com/freecodecamp/screen-reader.mp3` and `type` attribute set to `"audio/mpeg"`. </del> <ins> Time to take a break from Camper Cat and meet fellow camper Zersiax (@zersiax), a champion of accessibility and a screen reader user. To hear a clip of his screen reader in action, add an `audio` element after the `p` element. Include the `controls` attribute. Then place a `source` element inside the `audio` tags with the `src` attribute set to `https://cdn.freecodecamp.org/curriculum/applied-accessibility/screen-reader.mp3` and `type` attribute set to `"audio/mpeg"`. </ins> **Note:** The audio clip may sound fast and be difficult to understand, but that is a normal speed for screen reader users.

All links in the english curriculum need to be replaced. This is the last of the S3 links Here are the new CDN links that should be used instead multiple see explanation above see explanation above No response Device: [e.g. iPhone 6, Laptop] OS: [e.g. iOS 14, Windows 10, Ubuntu 20.04] Browser: [e.g. Chrome, Safari] Version: [e.g. 22] No response


Question: }); function bonfireExecute() { <ins> attempts++; ga('send', 'event',  'Bonfire', 'ran-code', bonfireName); </ins> userTests= null; $('#codeOutput').empty(); var userJavaScript = myCodeMirror.getValue(); userJavaScript = removeComments(userJavaScript); userJavaScript = scrapeTests(userJavaScript); // simple fix in case the user forgets to invoke their function <del> if (challengeEntryPoint) { </del> <ins> if (challengeEntryPoint && challengeSeed) { </ins> userJavaScript = challengeEntryPoint + ' ' + userJavaScript; } <ins> console.log(userJavaScript); </ins> submit(userJavaScript, function(cls, message) { if (cls) { codeOutput.setValue(message.error);

<!-- 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:
## Description
 You are given two arrays and an index.  Use the array methods slice and splice to copy each element of the first array into the second array, in order.   Copy each element of the first array into the second array, in order.  Begin inserting elements at index n of the second array. Return the resulting array. The input arrays should remain the same after the function runs.

In the challenge, the following line tells users to use and , but the tests do not force the user to use and . Since this is an algorithm challenge, I believe we should let the users write the code any way that solves the problem. My suggestion is to change the line's text to the following: Any thoughts?
I'll try to solve problem
Before creating a PR, let's wait for feedback from at least one of the users I tagged.
sure, that sounds like a good idea, especially since we're not testing for those methods.
I think this sounds like a good improvement
ok
Go for it.
Nice, I'm thinking use on the testString, but I first want to know what's the asset version used on this repository. If you want that I use other way, please tell me. I also want to learn more about JavaScript
Or use keyword?
Hello , There should be no need for either of those. The idea is to change the wording of this line of text: Use the array methods slice and splice to copy each element of the first array into the second array, in order. To this: There is no need to change the tests, as they do not check for the or methods.
Thanks. It's very much easy!


Question: Now we're several `div` elements deep on each column of our row. This is as deep as we'll need to go. Now we can add our `button` elements. <del> Nest three `button` elements within each of your `well` `div` elements. </del> <ins> Nest three `button` elements within each of your `div` elements having the class name `well`. </ins> # --hints--

<!-- NOTE: If you're reporting a security issue, don't create a GitHub issue. Instead, email We will look into it immediately. --Describe your problem and how to reproduce it: In the description, it said "Nest three elements within each of your elements." I think it would be clearer to change it to the following: Nest three elements within each of your elements with class . Add a Link to the page with the problem: Tell us about your browser and operating system: Browser Name: Chrome Browser Version: 87.0.4280.88 Operating System: Mac OS If possible, add a screenshot here (you can drag and drop, png, jpg, gif, etc. in this box): !
What about the following?
That's even better, thank you.
Would you like to create a PR with this change?
Yes, I would like to do this.


Question: padding-left: 36px; } <ins> .map-accordion-panel-nested-title > a { cursor: pointer; } </ins> @media (max-width: 400px) { .map-accordion-panel-nested { margin: 0;

On the map, if I hover my cursor over a link, it shows the text selection cursor, not the clicker cursor.
I get both pointers and text selectors in Chrome. Same with a big map (full page). !


Question: '*.ionicframework.com', 'https://syndication.twitter.com', '*.youtube.com', <ins> 'cdn.jsdelivr.net/' </ins> ]; app.use(helmet.contentSecurityPolicy({

the first line in the function says - it wont pass testing unless you change it to Browser Name: Firefox Browser Version: 60.0.1 Operating System: High Sierra ! <hr!
You don't have to it, but because of strict mode it does need to be declared with , , or .
so its missing the then?
That's how I would update it.

i am suspecting another small bug, the next challenge after succesful code run in Bonfire: Chunky Monkey actually points to itself


Question: it('shows test output when the tests are run', () => { cy.visit(locations.index); // first wait for the editor to load <del> cy.get(selectors.editor, { timeout: 10000 }); </del> <ins> cy.get(selectors.editor, { timeout: 15000 }); </ins> cy.get(selectors.runTestsButton) .click() .then(() => {

!
Dropping Firefox support temporarily with . This was causing me to slow down with the PRs and rapid testing we are doing on the staging. I will let someone else investigate this.
any thoughts on this one? I'll take a look when I can, but I figured you might have some insight.
I'll look into it soon. Will let you know when I get to the bottom of it.
Mrugesh shared two links to the CI runs that failed and both of them failed for the . So, I was looking at the test and saw a lot of explicit timeout increasing... this is probably the reason why it fails on Firefox. Because the timeout were increased by watching the time it took on Chrome and manually adjusting it. But Firefox normally needs a few more seconds to finish running (this is due to ). I think increasing the timeout limit should do the trick.
We do wait for the editor, but everything after that should be basically instantaneous. Thanks for investigating that, but it should be fixed for Firefox 80 () and that's what we run the tests on. Also, suggests we should be using which could be a factor, but would have thought that would make things fail entirely rather than run slowly. That could work, yeah. The strange thing is the dev mode works perfectly locally and the CI should be even faster, since it uses the built site.
The bug is fixed on Firefox but Cypress still manually triggers GC as it is said in the Cypress docs (also when you run the tests locally in Firefox, it'll show you a message about GC. This is because Cypress doesn't manually run GC on but when it's run in CI using then Cypress manually triggers GC). I agree. I don't think this is the reason. I couldn't reproduce the bug locally... maybe we should try to reproduce it in CI by running it repeatedly?
Right, but would this make a test fail? If it runs between tests, which is the default, it should just make the whole run a bit slower. If it's included in the timeout for a particular test, that would be a massive oversight. My assumption is that the only timeout you might hit because of this is the limit for the entire run. Sure.

I'll let decide when he wants to do this, though, since it makes deploying a bit of a headache (if you're being bombarded with fail negatives, I mean).
I am open to creating a new branch on the upstream if you need to test it on CI by adding random commits? In theory you should be able to test it on a fork as well.


Question: id: 56533eb9ac21ba0edf2244bb title: Word Blanks challengeType: 1 <del> videoUrl: 'https://scrimba.com/c/cP3vVsm' </del> <ins> videoUrl: 'https://scrimba.com/c/caqn8zuP' </ins> forumTopicId: 18377 ---

The video for the challenge needs to be updated due to changes in the challenge. We simplified the challenge to not introduce functions in this challenge.
Sure, I'll update the video.
Any status on this update?
Done.


Question: isOnline: boolean, isServerOnline: boolean, fetchState: UserFetchState, <ins> showCodeAlly: boolean, </ins> user: User ) => ({ isSignedIn,

The page gets stuck and goes blank with you leave the relational database challenges. to 'Start the course' the fCC logo/button in the nav goes blank and nav disappears Page not to go blank. Clicking fCC logo should go to /learn No response Same on Chrome and Firefox Console errors: <img width="671" alt="Screen Shot 2023-02-16 at 11 44 19 AM" src="https://user-"


Question: Your `charset` attribute should be set to `utf-8`. ```js <del> assert(document.querySelector('meta')?.getAttribute('charset') === 'utf-8'); </del> <ins> assert(document.querySelector('meta')?.getAttribute('charset')?.toLowerCase() === 'utf-8'); </ins> ``` You should add exactly one `title` element.

The value for is case-insensitive. Not sure if I missed any, but here are case-sensitive ones I found. Case sensitive curriculumchallengesenglish14-responsive-web-design-22learn-accessibility-by-building-a-quiz Case sensitive curriculumchallengesenglish14-responsive-web-design-22learn-css-animation-by-building-a-ferris-wheel Case sensitive curriculumchallengesenglish14-responsive-web-design-22learn-intermediate-css-by-building-a-picasso-painting Case sensitive curriculumchallengesenglish14-responsive-web-design-22learn-responsive-web-design-by-building-a-piano Case sensitive curriculumchallengesenglish14-responsive-web-design-22learn-the-css-box-model-by-building-a-rothko-painting a lot Both are valid The value for should be case insensitive for all challenges. 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]


Question: 5. En la siguiente pantalla, puedes añadir más detalles sobre tu PR, luego pincha en <kbd>Crear pull request</kbd>. <del> Enhorabuena 🎉! Acabas de crear una pull request. </del> <ins> Felicidades 🎉! Acabas de crear un pull request. </ins> #### Trabajar desde tu sistema local (_recomendado_ para revisar cambios) <del> No es obligatorio que trabajes en tu sistema personal, salvo que desees previsualizar tus cambios, o trabajar con mejoras y arreglos de UI. También es recomendable si tienes problemas con git como errores de integración, rebase, etc. </del> <ins> No es obligatorio que trabajes en tu sistema personal, salvo que desees pre-visualizar tus cambios, o trabajar con version actualizada y arreglos de UI. También es recomendable si tienes problemas con git como errores de integración, rebase, etc. </ins> <del> ##### Lee sobre esta recomendaciones en [Cómo configurar freeCodeCamp localmente](/docs/how-to-setup-freecodecamp-locally.md) </del> <ins> ##### Lee sobre estas recomendaciones en [Cómo configurar freeCodeCamp localmente](/docs/how-to-setup-freecodecamp-locally.md) </ins> ### Aceptación de la PR <del> Estas son algunos criterios utilizados por los revisores cuando evalúan PRs: </del> <ins> Estos son algunos criterios utilizados por los criticos cuando evalúan PRs: </ins> - Descripción y título relevantes - La PR respeta la [guía de estilo](/docs/style-guide-for-guide-articles) - Consejos generales de QA de las [recomendaciones para Moderadores](https://forum.freecodecamp.org/t/freecodecamp-moderator-guidelines/18295) <del> - Siempre y cuando la PR suponga una mejora o ampliación de la guía, será aceptada aunque tenga errores gramaticales o contenido parcial </del> <ins> - Siempre y cuando el PR suponga una mejora o ampliación de la guía, será aceptado aunque tenga errores gramaticos o contenido parcial </ins> - Las PR más antiguas se revisan primero #### Etiquetas - **contenido** es para Pull Requests que modifican el contenido de artículos en la guía (añaden un nuevo artículo o actualizan uno existente) <del> - **duplicada** es para Pull Request que contienen el mismo contenido que otra PR abierta - **cambios solicitados** es para Pull Requests que necesitan algún cambio antes de ser integradas - **pasada** es para Pull Requests que con etiqueta _"changes requested"_ que no han tenido actividad durante al menos 2 semanas y serán por tanto cerradas - Una  pull request _pasada_ debe cerrarse. </del> <ins> - **duplicada** es para Pull Request que contienen el mismo contenido que otro PR abierto - **cambios solicitados** es para Pull Requests que necesitan algún cambio antes de ser integrados - **pasada** es para Pull Requests que con etiqueta _"changes requested"_ que no han tenido actividad durante al menos 2 semanas y serán por tanto cerrados - Un  pull request _pasado_ debe cerrarse. </ins> - Este es [un ejemplo](https://github.com/freeCodeCamp/freeCodeCamp/pull/235). #### Contenido conflictivo/duplicado <del> Se considera **duplicada** una PR si hace cambios al mismo artículo que otra PR. </del> <ins> Se considera **duplicado** un PR si hace cambios al mismo artículo que otro PR. </ins> En general el revisor: <del> 1. Organizará las PR desde la más antigua </del> <ins> 1. Organizará los PR desde lo más antiguo </ins> 2. Buscará para PRs con contenido similar <del> 3. Integrará desde la más antigua a las más nueva </del> <ins> 3. Integrará desde lo más antiguo a los más nuevos </ins> <del> Muy probablemente aparecerán conflictos al integrar PRs duplicadas. </del> <ins> Muy probablemente aparecerán conflictos al integrar PRs duplicados. </ins> <del> Los revisores harán todos los esfuerzos posibles para resolver estos conflictos e integrar las PRs. </del> <ins> Los revisores harán todos los esfuerzos posibles para resolver estos conflictos e integrar los PRs. </ins> #### Solicitar cambios <del> Si la Pull Request no es perfect el revisor podría: </del> <ins> Si el Pull Request no es perfecto el revisor podría: </ins> - solicitar cambios al contribuidor y añadir la etiqueta *cambios solicitados* <del> - solucionar errores menores y hacer un envío encima de la PR </del> <ins> - solucionar errores menores y hacer un envío encima de el PR </ins> #### Travis CI Build <del> Todas las PRs deben superar los test de Travis CI antes de poder ser integradas. </del> <ins> Todos los PRs deben superar los test de Travis CI antes de poder ser integrados. </ins> <del> Si una PR rompe la ejecución (un test de Travis CI falla y muestra una "X" roja) hay tres cauas probables y tendrás que resolver el problemas antes de que podamos integrar la PR: </del> <ins> Si un PR rompe la ejecución (un test de Travis CI falla y muestra una "X" roja) hay tres causas probables y tendrás que resolver el problema antes de que podamos integrar el PR: </ins> <del> 1. Tu PR crea un nueva artículo pero la falta un archivo `index.md` en algún lugar. </del> <ins> 1. Tu PR crea un nuevo artículo pero le falta un archivo `index.md` en algún lugar. </ins> - Cada directorio en `src/pages` necesita un archivo `index.md` en él (y debe llamarse `index.md`). - Dos escenarios muy probables son - llamaste al archivo de forma distinta a `index.md`, o

from its english version at from its english version at from its english version at from its english version at from its english version at from its english version at  When you make a PR for this particular issue, do not tag it with instead just reference it with
Hey ! How could I claim so we don't double work? Thanks
Hi ! Actually we just merge in the first PR for open issues. And your comment on this thread is enough. So, its yours. Happy translating.
I just open a PR for
thanks a lot that was fast! Would you be interested in translating these in future as well? If yes, please keep a watch on this thread. We will be updating on the progress often Happy contributing.
Done translating ! My PR is available at ! Thanks for all you do, freeCodeCamp
I have sent a translation proposal for /docs/how-to-work-on-guide- PR Hope it will help!
There is still work pending on this. When you make a PR for this particular issue, do not tag it with instead just reference it with
Hello, I'm starting to help on the translation of the document /how-to-set-up-freecodecamp-
Working on /docs/spanish/how-to-work-on-guide-
Hello, I've improved the file
Hello, Improving docs/spanish/how-to-catch-outgoing-emails-
Hi, I'm improving docs/spanish/how-to-work-on-coding-
Hi, can I help with /docs/spanish/how-to-setup-freecodecamp-
Sorry, I opened a bad PR regarding but already closed it. I found there was still an English part to be translated
Hi! Is there any remaining documentation where I can help translate?
you can improve or fix redaction and spelling errors.
Hi there, It would be good if at the top are checked so we can see what is left to be translated. Thanks
Where I can start helping?
sorry to put it in this issue, but is there any way somebody could help with the pull requests? I mean, there are 5K+ opened already, people are sending them in troves, and I suspect a lot of them are a total crap (Like ) . I guess you opened a Pandora Box with your articule about HacktoberFest.

Hey all, not a translation, but fixes for the language bar of HTML links on the README file for Spanish, and markdown links to the How To guides that everyone has been translating. . or anyone else looking to do translations in Spanish, you could make a copy of the 2 style guides to translate into Spanish from the English version in the doc folder. It looks like those weren't in to the Spanish folder originally or included on this issue. Just leave the title the same, but put it in the Spanish folder
Hola! to all. I believe we should have guidelines for Spanish translations, which include what treatment (formal or informal) to use when referring to actions or the user. For example, Agregue (formal) or Agrega (informal). - I don't know if this kind of things are found in other languages. In the last articles I've read I've seen a mix between formal and informal, and I think we should standardize (I have done it with some articles). I propose to always use informal. Another thing that could be specified in the guidelines is: Challenges translations. Should they be translated? Referrals to types and attributes (which need to be in English for proper coding). For example, type "date" not type "fecha". If there is a guideline already, please let me know, if not, I would be happy to start one (just let me know where to put it). Hey I would like to know your thoughts about this. Thanks to you all and happy coding!
I agree that we should standardize around informal. I agree with you that we should look out for words like "fecha" that have been accidentally translated during our automated translation process.
Hi all I'm not sure if this is the right issue to discuss this, or if I should open a new one. I'm happy to open a new one if that makes things easier to track. I'll keep it here for the moment. What do people think about translating "array" as "arreglo"? I think this is a big mistake that has been repeated since somebody made that bad translation many years ago. As any Spanish speaker know, "arreglo" means "repair" (), and it makes any programming related text even harder to understand.

This is especially true for programming texts because it's full of abstract nouns and things that are not easy to represent in a tangible way. I learned to code in English (mainly FCC and Coursera), and after a while, I stumbled upon a programming text written in Spanish. I couldn't understand what it was talking about until I found out that "arreglo" was the (really bad) translation of "array". Then I could read the text as if I was reading an encoded message that had to be deciphered. I propose that the Spanish version of FreeCodeCamp doesn't carry on with that translation, which is just based on the similarity of the spelling but has nothing to do with the meaning of the words. I think the right term in Spanish is "ristra". According to the : Which basically means: "A group of things placed one after another" They also share all the phonems in "array", with the adittion of /r/ (rolling r) and /t/ in "ristra". I'm open to other candidates, but please, let's take "arreglo" out of the Spanish version. The word "array" has been used in Spanish texts before and even though it's not a Spanish word, I think it's still better than a word that exists with a different meaning. And to be honest, anyone learning how to code will have to become familiar with certain English terms like "list", "function", "import", "scope", etc. [1]: [2]:
Hello guy, I vote for yes, let’s do the change and I think will create a huge impact around of the world! Please let me know if you have more question questions or concerns. Andres Haro Cell: (619) 534-3190
Thanks - I agree that these machine translations need improvement. I encourage you to dig in and start fixing them. Be sure to join if you need help getting set up
There is still work pending on this. When you make a PR for this particular issue, do not tag it with instead just reference it with
Thanks for working on the translations for the "Contributing to freeCodeCamp". Here on we are making contributing to translations for contribution docs ad hoc. You are free to make pull-requests for improving these translations.

We are closing the issue as these do not need tracking per se. You can raise a fresh issue if you find something incorrect in the existing docs.


Question: **Tips** <del> - Remember that you learned about conditional statements(`if`, `else if`, and `else`). </del> <ins> - Remember that you learned about conditional statements (`if`, `else if`, and `else`). </ins> - Remember that you learned about comparison operators (`>`, `<`, `>=`, `<=`, `===`). # --hints--

This issue is open to first-time code contributors to this repository. The file that you should be updating is: We typically do not assign issues. Instead, we accept the most quality contribution followed by the one that is made first. 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. Happy contributing.


Question: assert(new __helpers.CSSHelp(document).getStyle('*, ::before, ::after')?.margin === '0px'); ``` <ins> Your `*, ::before, ::after` selector should have a `box-sizing` property set to `border-box`. ```js assert(new __helpers.CSSHelp(document).getStyle('*, ::before, ::after')?.boxSizing === 'border-box'); ``` </ins> # --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: ``` ```js <del> const listOfAllDice = document.querySelectorAll(".die"); const scoreInputs = document.querySelectorAll("#score-options input"); const scoreSpans = document.querySelectorAll("#score-options span"); const currentRound = document.getElementById("current-round"); const currentRoundRolls = document.getElementById("current-round-rolls"); const totalScore = document.getElementById("total-score"); const scoreHistory = document.getElementById("score-history"); const rollDiceBtn = document.getElementById("roll-dice-btn"); const keepScoreBtn = document.getElementById("keep-score-btn"); const rulesContainer = document.querySelector(".rules-container"); const rulesBtn = document.getElementById("rules-btn"); </del> --fcc-editable-region-- --fcc-editable-region--

The text desription of this challenge is all wrong. It asks you to get a lot of elements, but the code to do so appears to already be populated when the page loads. See screenshot. As such following the instructions would duplicate the code. All the task requires is that you create the following variables. But that is not what the task description asks for: let diceValuesArr = []; let isModalShowing = false; let score = 0; let total = 0; let round = 1; let rolls = 0; let diceValuesArr = []; let isModalShowing = false; let score = 0; let total = 0; let round = 1; let rolls = 0; My code above works. But this does not match what the description asks for. ! Windows 10, Chrome No response


Question: "title": "Smallest Common Multiple", "difficulty": "2.11", "description": [  "Find the smallest number that is evenly divisible by all numbers in the provided range.", "In other words, given the range [3,7], you will need to find the least common multiple of 3, 4, 5, 6, and 7.",   "Find the smallest common multiple of the provided parameters that can be evenly divided by both, as well as by all sequential numbers in the range between these parameters.",  "The range will be an array of two numbers that will not necessarily be in numerical order.",  "e.g. for 1 and 3 - find the smallest common multiple of both 1 and 3 that is evenly divisible by all numbers between 1 and 3.",  "Remember to use Read-Search-Ask if you get stuck. Try to pair program. Write your own code." ], "challengeSeed": [

Having experienced some issues in correctly understanding what is actually requested in the instructions of Bonfire , I'd like to suggest a minor update to its description as follows: Do note that not understanding the current instructions may be language barrier related, and once you actually understand what is being asked the current instructions do seem clear. However, searching the Gitter chat logs does reveal that other people seem to be struggling with the aforementioned as well.
I did not understand the directions either. This makes more sense.


Question: ```js case "example": <del> // code goes here </del> <ins> console.log("example"); </ins> break; ```

In the new JS curriculum I found a couple of example where comments have been inside code blocks in the challenge description. These comments are not translatable on Crowdin: We should avoid commenting code blocks or make those comments accessible from Crowdin


Question:
```html

Even Deeper Thoughts with Master Camper Cat

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: ```yml tests: <del> - text: 当设备<code>height</code>小于或等于800px时，您的<code>p</code>元素的<code>font-size</code>为10px。 testString: 'assert($("p").css("font-size") == "10px", "Your <code>p</code> element should have the <code>font-size</code> of 10px when the device <code>height</code> is less than or equal to 800px.");' </del> - text: 为<code>height</code>小于或等于800px的设备声明<code>@media</code>查询。 <del> testString: 'assert(code.match(/@medias*?(s*?max-heights*?:s*?800pxs*?)/g), "Declare a <code>@media</code> query for devices with a <code>height</code> less than or equal to 800px.");' </del> <ins> testString: assert($(“style”).text().replace(/s/g ,‘’).match(/@media(max-height:800px)/g), “Declare a <code>@media</code> query for devices with a <code>height</code> less than or equal to 800px.“); - 当设备<code> height </ code>小于或等于800px时，<code> p </ code>元素的<code> font-size </ code>应为10px. testString: assert($(“style”).text().replace(/s/g ,‘’).match(/@media(max-height:800px){p{font-size:10px;?}}/g), “Your <code>p</code> element should have the <code>font-size</code> of 10px when the device <code>height</code> is less than or equal to 800px.“);’ - text: 当设备<code>height</code>大于800px时，您的<code>p</code>元素的<code>font-size</code>初始值应为20px。 testString: assert($(“style”).text().replace(/s/g ,‘’).replace(/@media.*}/g, ‘’).match(/p{font-size:20px;?}/g), Your <code>p</code> element should have an initial <code>font-size</code> of 20px when the device <code>height</code> is more than 800px); </ins> ``` </section>

Challenge: I have seen issues with this challenge on the forum a number of times. The is using the computed properties but because you can set a minimum font size in the browser this may not work. In Chrome, you can use and set the minimum font size to be greater than 10px. If you then run the test it will fail. Changing the test to use a regex instead might be better. I'm not sure if this proposed change will fix all problem cases but it will at least take care of any minimum font size set in the browser. It should likely also fix any browser compatibility issues. I say that because this is one of the challenges where switching browsers often seem to help people pass the test.
Can I look at this issue? I was able to replicate the issue in my Chrome too.
I also want to point out that the following code passes even if it's incorrect because the way we test right now. <img width="565" alt="Screen Shot 2019-04-08 at 2 36 36 PM" src="https://user-"
I think one possible solution (avoiding regex) is just have the original style section as: and then have the camper change the font-size to 20px or 25px with the media query. The main reason people change this setting to something greater than 10px, is because the resolution on many screens is higher than it used to be, so 10px seems "small".
That is true. This will involve changing the tests.
That makes sense. Chaing the size will surely fix the original issue. Also, yes we do have to change the test for fixing the issue I pointed out above. Can I work fixing both of these issues? Also, do you want me to make a different new issue for the problem I pointed out or is it okay to have PR under this issue?
Actually, the more I think about this, we can not just look at the computed value regardless of the font-size we are looking for, because we don't have a way of mocking the user's screen height. We really need something like puppeteer to simulate the screen height at below and above 800px to validate the correct size is used. I guess we are stuck with using regex for both tests.

I suggest we also add a new test which validates the normal font-size for p elements is 20px, so the user does not change the seed code. Then, I suggest we rearrange the tests, so the current second test becomes the first. There is no need to modify the test below because we just want to make sure they are using a media query of any kind and this test does validate that. The second test (currently the first test) is where we will need to make sure the media query is used and that the font-size will be 10px when the height is less than or equal to 800px. This means the new second test's regex will be very similar to the first test's regex, but it will validate the exists inside the media query definition. Go ahead and take a shot at the tests using what I have described above. Also, go ahead and remove the assert message arguments from the s, as they are no longer needed. $('style').text().replace(/s/g ,''): In an effort to simplify both tests regex, I suggest targeting the element's text and removing all white space by using:
Thank you so much for providing me detail information on things that I should get started with. It is good that we no longer need message argument from the testString as it was just repetitive. I will get started with this.
Here is the order of the test: media query is declared right or not (currently the second test) font-size is set to 10px or not for screen size lower than 800px using media queries. (using regex). the normal font-size for p elements is 20px. For number 3, I can only think of a regex solution. Because we cannot test the normal font-size using the following (screen is usually below 800px). However, if we use regex to check if then the 3rd test will pass and second will fail if a person has the following code. Please let me know if this will be a problem. Should I just proceed with regex for the 3rd test as well?
To check number 3 above, you should strip out any media query (using regex with a replace) and then validate that you find:
That sounds like a valid test. I will work on it and push a PR.


Question: ); const initialState = mockedComponent.state(); return ( <del> typeof initialState === 'object' && typeof initialState.name === 'string' </del> <ins> typeof initialState === 'object' && typeof initialState.firstName === 'string' </ins> ); })() ); ``` <del> The property `name` in the state of `StatefulComponent` should render in the `h1` element. </del> <ins> The property `firstName` in the state of `StatefulComponent` should render in the `h1` element. </ins> ```js assert(

A user wondering why his solution passed. I then realized the 2nd test test is not working as intended. The user is supposed to assign a string to a property of . The user's solution assigns an uninitialized variable as a property. The purpose of the test is to make sure the user assigns a string value to a prop named , but the test still allows the user to pass as the prop's value and the test passes. Not sure why, but assigning an uninitialized property to ends up assigned an empty string to it. This of course passes the test requirement but defeats the purpose of the learning here. I suggest changed the required property name to something like , so if a user does something like this, all of the tests will fail. Test in question: The second test should fail because the property of should be undefinedbecause it was not initialized by the user's code. No response Device: [e.g. iPhone 6, Laptop] OS: [e.g. iOS 14, Windows 10, Ubuntu 20.04] Browser: [e.g. Chrome, Safari] Version: [e.g. 22] No response
After a bit of research, it appears that assigning as a property that is uninitialized is the same as writing: = { } Since the window has no name, it is just an empty string.


Question:
"
let catStr = "cat";
let batStr = "bat";
let matStr = "mat";
let bgRegex = /[a-e]at/;
catStr.match(bgRegex); // Returns ["cat"]
batStr.match(bgRegex); // Returns ["bat"]
matStr.match(bgRegex); // Returns null
", "
", "Match all the letters in the string quoteSample.",  "Note
Be sure to match both upper- and lowercase vowels."   "Note
Be sure to match both upper- and lowercase letters."  ], "challengeSeed": [ "let quoteSample = "The quick brown fox jumps over the lazy dog.";",

<!-- freeCodeCamp Issue Template --<!-- Please provide as much detail as possible for us to fix your issue --<!-- Remove any heading sections you did not fill out --<!-- NOTE: If your issue is CodePen Project / Test Suite related, please open it using the below URL instead --<!-- --<!-- Insert link to challenge below -- <!-- Describe below when the issue happens and how to reproduce it --The following text seems to be a typo: Be sure to match both upper- and lowercase vowels. It should say: Be sure to match both upper- and lowercase letters.
Hey, I'm a first timer to open source. Is it alright if I take this issue?
PR out


Question: # --hints-- <del> Route /auth/github should be correct. </del> <ins> Route `/auth/github` should be correct. </ins> ```js <del> (getUserInput) => $.get(getUserInput('url') + '/_api/routes.js').then( (data) => { </del> <ins> async (getUserInput) => { try { const res = await fetch(getUserInput('url') + '/_api/routes.js'); if (res.ok) { const data = await res.text(); </ins> assert.match( <del> data.replace(/s/g, ''), /('|")/auth/github/?1[^]*?get.*?passport.authenticate.*?github/gi, 'Route auth/github should only call passport.authenticate with github' ); }, (xhr) => { throw new Error(xhr.statusText); </del> <ins> data.replace(/s/g, ''), /passport.authenticate.*?github/g, 'Route auth/github should only call passport.authenticate with github' ); } else { throw new Error(res.statusText); </ins> } <del> ); </del> <ins> const res2 = await fetch(getUserInput('url') + '/_api/app-stack'); if (res2.ok) { const data2 = JSON.parse(await res2.json()); const dataLayer = data2.find(layer => layer?.route?.path === '/auth/github'); assert.deepInclude(dataLayer?.route, { methods: {get: true}, path: "/auth/github"}); assert.deepInclude(dataLayer?.route?.stack?.[0], {method: "get", name: "authenticate"}); } else { throw new Error(res2.statusText); } } catch (err) { throw new Error(err); } } </ins> ``` <del> Route /auth/github/callback should be correct. </del> <ins> Route `/auth/github/callback` should be correct. </ins> ```js <del> (getUserInput) => $.get(getUserInput('url') + '/_api/routes.js').then( (data) => { </del> <ins> async (getUserInput) => { try { const res = await fetch(getUserInput('url') + '/_api/routes.js'); if (res.ok) { const data = await res.text(); </ins> assert.match( data.replace(/s/g, ''), <del> /('|")/auth/github/callback/?1[^]*?get.*?passport.authenticate.*?github.*?failureRedirect:("|')/2/gi, </del> <ins> /failureRedirect:("|')/1/g, </ins> 'Route auth/github/callback should accept a get request and call passport.authenticate for github with a failure redirect to home' ); <del> }, (xhr) => { throw new Error(xhr.statusText); </del> <ins> } else { throw new Error(res.statusText); } const res2 = await fetch(getUserInput('url') + '/_api/app-stack'); if (res2.ok) { const data2 = JSON.parse(await res2.json()); const dataLayer = data2.find(layer => layer?.route?.path === '/auth/github/callback'); assert.deepInclude(dataLayer?.route, { methods: {get: true}, path: "/auth/github/callback"}); assert.deepInclude(dataLayer?.route?.stack?.[0], {method: "get", name: "authenticate"}); } else { throw new Error(res2.statusText); </ins> } <del> ); </del> <ins> } catch (err) { throw new Error(err); } } </ins> ``` # --solutions--

The tests need to be updated to allow for the two main ways of defining routes: AND Add a Link to the page with the problem:
We need to figure how to test most things without using regex.
We could change the tests to ping the route, to determine if it was defined correctly?


Question: ); ``` <del> `mergeSort` should return an array that is unchanged except for order. </del> <ins> `mergeSort([1,4,2,8,345,123,43,32,5643,63,123,43,2,55,1,234,92])` should return an array that is unchanged except for order. </ins> ```js assert.sameMembers(

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: }; exports.returnNextBonfire = function(req, res, next) { <del> // TODO //var tempUser = false; </del> if (!req.user) { <del> res.redirect('bonfires/meet-bonfire'); //tempUser = true; //req.user = new User(); </del> <ins> return res.redirect('bonfires/meet-bonfire'); </ins> } <del> var currentTime = parseInt(+new Date() / 1000) </del> <ins> var currentTime = parseInt(+new Date() / 1000); </ins> if (currentTime - req.user.lastContentSync > 86400) { req.user.lastContentSync = currentTime; <del> var completed = req.user.completedBonfires.map(function(elem) { </del> <ins> var completed = req.user.completedBonfires.map(function (elem) { </ins> return elem._id; }); <del> req.user.uncompletedBonfires = resources.allBonfireIds().filter(function(elem) { if (completed.indexOf(elem) === -1) { return elem; } </del> <ins> req.user.uncompletedBonfires = resources.allBonfireIds().filter(function (elem) { if (completed.indexOf(elem) === -1) { return elem; } </ins> }); req.user.save(); }

<!-- NOTE: If you're reporting a security issue, don't create a GitHub issue. Instead, email We will look into it immediately. --The test requires a multi-line comment of the form . However, the test fails if additional ` characters are present at the beginning or the end of the text contained within the comment. Some examples : The regular expression for the corresponding test needs to be updated. Browser Name: Google Chrome Browser Version: 60+ Operating System: Ubuntu 18.04 !
Hi, I would like to have a go to fix this problem
That's good, please read .
Test fails if multiline style comment includes either / File: Line: 33 this regex is the problem

When I attempt to Run the tests for the code I submitted for Roman Numerals Converter, the page freezes and I cannot solve the issue until I clear the cashe of my browser. Help!
I have the same issue. My browser complains about a long running script and then bails out.
Ok, I figured this one out... if you use the solution in the Gritter chat, that solution will cause a never ending loop, because of the while expression (while numCopy 0 - which is always true btw). This never ending loop will freeze your browser. Moreover, as I lately discovered, the solution there only covers very few of the cases that we need to test to pass the Bonfire. So back to the drawing board, people!
Leaving this open as a bug for someone to fix the solution in the wiki to one that works with the new test cases.


Question: npm run insert-step X # where X is the position to insert the new step. ``` <del> ## delete-step </del> <ins> ### delete-step </ins> A one-off script that deletes an existing step, decrementing all subsequent steps (both their titles and in their meta.json) **Note:** This script also runs [update-step-titles](#update-step-titles). <del> ### How to run script </del> <ins> #### How to run script </ins> 1. Change to the directory of the project. 2. Run the following npm command:

challenge-editor should be to the "How to work on practice projects" documentation here:
I'll tackle this today.


Question: To set this up properly, we need to have a serialize function and a deserialize function. In Passport, we create these with `passport.serializeUser( OURFUNCTION )` and `passport.deserializeUser( OURFUNCTION )` <del> The `serializeUser` is called with 2 arguments, the full user object and a callback used by passport. A unique key to identify that user should be returned in the callback, the easiest one to use being the user's `_id` in the object. It should be unique as it generated by MongoDB. Similarly, `deserializeUser` is called with that key and a callback function for passport as well, but, this time, we have to take that key and return the full user object to the callback. To make a query search for a Mongo `_id`, you will have to create `const ObjectID = require('mongodb').ObjectID;`, and then to use it you call `new ObjectID(THE_ID)`. Be sure to add MongoDB as a dependency. You can see this in the examples below: </del> <ins> The `serializeUser` is called with 2 arguments, the full user object and a callback used by passport. A unique key to identify that user should be returned in the callback, the easiest one to use being the user's `_id` in the object. It should be unique as it generated by MongoDB. Similarly, `deserializeUser` is called with that key and a callback function for passport as well, but, this time, we have to take that key and return the full user object to the callback. To make a query search for a Mongo `_id`, you will have to create `const ObjectID = require('mongodb').ObjectID;`, and then to use it you call `new ObjectID(THE_ID)`. Be sure to add `mongodb@~3.6.0` as a dependency. You can see this in the examples below: </ins> ```js passport.serializeUser((user, done) => {

Advanced Node and Express section needs package versions to the instructions, as discussed in: Example: " Add <codepassport.socketio</codeversion <codeX.X.X</code, <codeconnect-mongo</codeversion <codeX.X.X</code, and <codecookie-parser</codeversion <codeX.X.X</codeas dependencies and require them as <codepassportSocketIo</code, <codeMongoStore</code, and <codecookieParser</coderespectfully. " Before this is undertaken: [x] Wait for to be merged [ ] Discuss which versions to use and how to convey this ( or )
I am leaning more toward the requirement, myself. With the carat prefix, will install the latest minor version. In theory, updates to the minor version are backwards compatible and shouldn't create any issues with the tests or challenges. However, minor versions can include depreciation notices like . The feature will still work, but this could be confusing to a camper. Using the tilde prefix means will install the latest patch version, which includes bug fixes but shouldn't lead to any depreciation notices. I think this will offer the best long-term compatibility with our tests and challenge instructions.
Well, it has happened: Last versions which definitely work: I have tested this. Now, discussion: 1) Just ask for to be installed 2) Also change the lesson/code to work with this latest version?
Hey how is this show stopper coming along?
Ah yes... I have updated the label, because it should have been removed by . Can a PR automatically remove an issue's label? Otherwise, this issue is still open and help wanted , as there are many packages which need their versioning fixed. If no one else, I can slot in some time for this tomorrow.
No rush. Thanks for confirming, I have removed the assignment since this is no longer a showstopper.
thank you so much for the Thank you for the suggestion. It helped me alot


Question: "title": "Target the Parent of an Element Using jQuery", "difficulty": 3.13, "description": [  "Every HTML elements has a parent element from which it inherits properties.",   "Every HTML element has a parent element from which it inherits properties.",  "For example, your jQuery Playground h3 element has the parent element of <div class="container-fluid"&#62, which itself has the parent body.", "jQuery has a function called parent() that allows you to access the parent of whichever element you've selected.", "Give the parent of the #target1 element background-color of red.",

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: We recommend to keep the terminal open while working at these challenges. By reading the output in the terminal, you can see any errors that may occur. <ins> The server must be restarted after making changes to its files. You can stop the server from the terminal using `Ctrl + C` and start it using Node directly (`node mainEntryFile.js`) or using a run script in the `package.json` file with `npm run`. For example, the `"start": "node server.js"` script would be run from the terminal using `npm run start`. To implement server auto restarting on file save Node provides the `--watch` flag you can add to your start script `"start": "node --watch server.js"` or you can install an npm package like `nodemon`. We will leave this to you as an exercise. </ins> # --instructions-- Modify the `myApp.js` file to log "Hello World" to the console.

We see far too many campers on the forum who do not understand that the server has to be restarted between changes. I didn't look through all of the curricula but it should be made clear early on. Personally, I would also suggest we teach the options of using or . It doesn't have to be more than a comment in the early backend challenges. Not to have to mention this every time someone has an issue with a backend challenge. No response Device: [e.g. iPhone 6, Laptop] OS: [e.g. iOS 14, Windows 10, Ubuntu 20.04] Browser: [e.g. Chrome, Safari] Version: [e.g. 22] No response
I have always liked using . It might be nice to have that already in the starter repo and gitpod. That way it will be taken care of for them. Adding a note could be nice though too. thoughts ?
It was intentionally removed from all repos. See the last 3 comments in this issue. I don't understand why we are making it more difficult for the camper than it has to be or expect beginners to not trip up on this. We haven't even taught (afaik) that a server has to be restarted before the changes take effect. We should make that clear and teach the solutions to server auto restarting. Even if the camper has to add it manually. I think this is a case of developers forgetting what it was like to be a beginner.
ohh that's interesting that the flag was removed from the repos. I am pretty out of the loop with the changes being made to the backend certs. In this case, I don't see any harm with adding a note about how to auto restart the server using .
Just to clarify, I don't think we were using in the start scripts but we did use in a few of the repos and that was removed. I'd like to response to this from that issue: This I do not agree with. For beginners, it is difficult. A lot of campers do not even know they need to restart the server between changes. Most do likely not know about arrow-up in the terminal to get to previous commands, meaning they have to write after every change they make to the server file.

Which when learning or debugging challenge projects can add up to tons of restarts. Secondly, saying they can just implement their own watcher and it is easy to do completely misses the point. Yes, if you know about it it is easy, if you don't know about it, and we do not even teach it, then it isn't easy. That would be my suggestion as well. Preferable as early as possible.
Looking at the challenges, we could place a note in the first section for working with the . But the note might work better in the section set of challenges for node and express since they will be writing more code and probably benefit more from the automatic restart of the server. we could add a note at the end of that first set of instructions. something along these lines `
What I have is longer but I think it might be worth going into it a bit more. I can shorten it a bit by removing some of the information.
We are hoping to move off of the first few projects soon, and do have a decent lesson outline with a lot of the previous curricula's "missed bits": So, for the current curricula, I would go with short, simple, and quick changes. That is, without deliberating on pedagogy.
How soon is soon? I don't see an issue with adding some more information to the current challenge. As I said, I can shorten it a bit but it is already written and is easy and quick to add.
I am terrible at estimations . 2nd quarter.


Question: } </style>         ``` # --solutions--

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