jiebi/CodeConvo huggingface dataset:
Change:
The test is failing if the user does not use all lowercase letters for the domain name in the attribute. Since domain names are not case sensitive this seems a little too strict, especially since the link text itself is not using all lowercase. A user in the forums failed this challenge because they capitalized the C's in . I'm assuming they were influenced by the capitalization in the link text. This URL should pass the challenge since domain names are not case sensitive. No response N/A This seems like a good issue for a first timer.
here is a , I wonder, if parentheses should be deleted in this file as mentioned in issue .

Discussion:
```js const nestedAnchor = $('footer > p > a')[0]; <del> assert(nestedAnchor.getAttribute('href') === 'https://www.freecodecamp.org'); </del> <ins> assert(nestedAnchor.getAttribute('href').toLowerCase() === 'https://www.freecodecamp.org'); </ins> ``` The link's text should be `freeCodeCamp.org`. You have either omitted the text or have a typo.
Change:
In step 12 of the Learn HTML by Building a Cat Photo App, the following two line numbers 7 & 8 exist at the start of the step: The instructions tell the user to make the text that appears inside the sentence of the element a link. The instructions do not explicitly state to remove the existing anchor element that is below the element. Instead, it just has a last sentence that says . Step 13 starts off only showing the following for line 7: The original link that appeared in step 12 is gone. In my opinion, an easy solution is to just change the last sentence in step 12 to: OR n/a n/a 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 think this instruction above is enough to tell what the end result should be
But it doesn't appear to be as this particular step comes up a lot in the forums. I agree with we need to make this a little clearer. If the intent is for the user to remove the existing link below the then I think we should tell them exactly that. Here's my attempt at making the instructions clearer: the words in the element into a link using the same value for the attribute as the link below the element. the link below the element. I thought turning this into two steps might make it a little clearer, but it can easily be two sentences instead. I'm not sure what the purpose of this step is, so my instructions may be unwittingly stepping on the goal here.
I think a better word is than in but that's nitpicking. I do fully agree changing the hint. Edit:
We're also teaching vocabulary here. I would use slightly more consistent language with the previous steps:

Discussion:
# --description-- <del> Turn the words `cat photos` located inside `p` element into a link by replacing the words with the anchor element added previously. The `p` element should show the same text in the browser, but the words `cat photos` should now be a link. There should only be one link showing in the app. </del> <ins> Turn the words `cat photos` located inside `p` element into a link using the same value for the `href` attribute as the link below the `p` element. The `p` element should show the same text in the browser, but the words `cat photos` should now be a link. Make sure to remove the `a` element with the text `cat photos` on the line below the `p` element. </ins> # --hints--
Change:
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]

Discussion:
You should give the `meta` tag a `charset` of `UTF-8`. ```js <del> assert.equal(document.querySelector('head > meta')?.getAttribute('charset'), 'UTF-8'); </del> <ins> assert.equal(document.querySelector('head > meta')?.getAttribute('charset')?.toLowerCase(), 'utf-8'); </ins> ``` # --seed--

Your `meta` element should have a `charset` attribute with the value `UTF-8`. ```js <del> assert.match(code, /<meta[sS]+?charset=('|"|`)UTF-81/) </del> <ins> assert.match(code, /<meta[sS]+?charset=('|"|`)UTF-81/i) </ins> ``` Your code should have a `title` element.

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.

```js const meta = [...document.querySelectorAll('meta')]; <del> const target = meta?.find(m => !m?.getAttribute('name') && !m?.getAttribute('content') && m?.getAttribute('charset') === 'UTF-8'); </del> <ins> const target = meta?.find(m => !m?.getAttribute('name') && !m?.getAttribute('content') && m?.getAttribute('charset')?.toLowerCase() === 'utf-8'); </ins> assert.exists(target); ```

The `meta` tag should set the `charset` 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> ``` Your code should have a `title` element.
Change:
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.

Discussion:
# --instructions-- <del> There is a component in the code editor that is trying to render a `name` property from its `state`. However, there is no `state` defined. Initialize the component with `state` in the `constructor` and assign your name to a property of `name`. </del> <ins> There is a component in the code editor that is trying to render a `firstName` property from its `state`. However, there is no `state` defined. Initialize the component with `state` in the `constructor` and assign your name to a property of `firstName`. </ins> # --hints--

); ``` <del> The state of `StatefulComponent` should be initialized with a property `name` set to a string. </del> <ins> The state of `StatefulComponent` should be initialized with a property `firstName` set to a string. </ins> ```js assert(

); 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(

React.createElement(StatefulComponent) ); const initialState = mockedComponent.state(); <del> return mockedComponent.find('h1').text() === initialState.name; </del> <ins> return mockedComponent.find('h1').text() === initialState.firstName; </ins> })() ); ```

render() { return ( <div> <del> <h1>{this.state.name}</h1> </del> <ins> <h1>{this.state.firstName}</h1> </ins> </div> ); }

constructor(props) { super(props); this.state = { <del> name: 'freeCodeCamp!' </del> <ins> firstName: 'freeCodeCamp!' </ins> } } render() { return ( <div> <del> <h1>{this.state.name}</h1> </del> <ins> <h1>{this.state.firstName}</h1> </ins> </div> ); }
Change:
Hello all! There's a grammar error on Step 68 of Project 2 (CSS Cafe Menu) in the new RWB. It reads: "Change the height the hr element to be 3px." It should read: "Change the height of the hr element to be 3px." Instructions should read: "Change the height of the hr element to read to be 3px." <img width="616" alt="Grammar Error" src="https://user-"- Device: MacBook Pro OS: macOS Monterey v12.3.1 Browser: Safari Version: 15.4 (.1.17.1.13) No response
Thanks for opening this issue. This looks something that can be fixed by "first time" code contributors to this repository. Here are the files that you should be looking at to work on a fix: List of files: Please make sure you read , we prioritize contributors following the instructions in our guides. Join us in or if you need help contributing, our moderators will guide you through this. Sometimes we may get more than one pull requests. We typically accept the most quality contribution followed by the one that is made first. Happy contributing.

Discussion:
The default properties of an `hr` element will make it appear as a thin light grey line. You can change the height of the line by specifying a value for the `height` property. <del> Change the height the `hr` element to be `3px`. </del> <ins> Change the height of the `hr` element to be `3px`. </ins> # --hints--
Change:
The 100 should be a superscript in the last line of this challenge. N/A Should say We may also consider better mathematical formatting? No response All No response
Seems like it has been like this for a while: I will open this up to first timers. The expected fix is to use MathJax (KaTeX-like) to render the following: $$ n: 10 < n < 10^{100} $$ An issue with the first timers only label is open for contribution. The first comprehensive PR created will be reviewed and merged. We typically do not assign issues to anyone other than long-time contributors. If you would like to contribute, and have not read the contributors docs, please do so here: If you have any issues with contributing, be sure to join us on the , or on the
I actually saw a way to roll this into a fix that expands the challenge so that won't work.

Discussion:
This demonstrates an unusual property of 142857: it is a divisor of its right-rotation. <del> Find the last 5 digits of the sum of all integers $n$, $10 &lt; n &lt; 10100$, that have this property. </del> <ins> For integer number of digits $a$ and $b$, find the last 5 digits of the sum of all integers $n$, $10^a &lt; n &lt; 10^b$, that have this property. </ins> # --hints-- <del> `numberRotations()` should return `59206`. </del> <ins> `numberRotations(2, 10)` should return `98311`. </ins> ```js <del> assert.strictEqual(numberRotations(), 59206); </del> <ins> assert.strictEqual(numberRotations(2, 10), 98311); ``` `numberRotations(2, 100)` should return `59206`. ```js assert.strictEqual(numberRotations(2, 100), 59206); </ins> ``` # --seed--

## --seed-contents-- ```js <del> function numberRotations() { </del> <ins> function numberRotations(a, b) { </ins> <del> return true; </del> <ins> return 0; </ins> } numberRotations();

# --solutions-- ```js <del> // solution required </del> <ins> function numberRotations(minDigits, maxDigits) { const DIGITS_TO_KEEP = 100000n; const powersOfTen = Array(maxDigits).fill(0); powersOfTen[0] = 1n; for (let i = 1; i < maxDigits; i++) { powersOfTen[i] = powersOfTen[i - 1] * 10n; } // We want numbers of the form xd * m = dx // Or more precisely: //   (x * 10 + d) * m = d*10^(n-1) + x // Solving for x: //   x = d (10^(n-1) - m) / (10 * m - 1) let total = 0n; for (let numDigits = minDigits; numDigits <= maxDigits; numDigits++) { // Check all multiplier - digit pairs to see if a candidate can be built //  with the correct number of digits for (let multiplier = 1n; multiplier < 10n; multiplier++) { for (let lastDigit = 1n; lastDigit < 10n; lastDigit++) { const numerator   = lastDigit * (powersOfTen[numDigits - 1] - multiplier); const denominator = (powersOfTen[1] * multiplier - 1n); if (numerator % denominator === 0n) { const candidate = (numerator / denominator) * 10n + lastDigit; if (candidate.toString().length === numDigits) { total = (total + candidate) % DIGITS_TO_KEEP; } } } } } return parseInt(total); } </ins> ```
Change:
Instructions say: "Next, delete the comment in the method..." instead of: "Next, delete the value in the method..."

Discussion:
The code editor has most of the `MyToDoList` component set up. Some of this code should look familiar if you completed the controlled form challenge. You'll notice a `textarea` and a `button`, along with a couple of methods that track their states, but nothing is rendered to the page yet. <del> Inside the `constructor`, create a `this.state` object and define two states: `userInput` should be initialized as an empty string, and `toDoList` should be initialized as an empty array. Next, delete the comment in the `render()` method next to the `items` variable. In its place, map over the `toDoList` array stored in the component's internal state and dynamically render a `li` for each item. Try entering the string `eat, code, sleep, repeat` into the `textarea`, then click the button and see what happens. </del> <ins> Inside the `constructor`, create a `this.state` object and define two states: `userInput` should be initialized as an empty string, and `toDoList` should be initialized as an empty array. Next, delete the `null` value in the `render()` method next to the `items` variable. In its place, map over the `toDoList` array stored in the component's internal state and dynamically render a `li` for each item. Try entering the string `eat, code, sleep, repeat` into the `textarea`, then click the button and see what happens. </ins> **Note:** You may know that all sibling child elements created by a mapping operation like this do need to be supplied with a unique `key` attribute. Don't worry, this is the topic of the next challenge.
Change:
Describe the bug I have completed the necessary requirements to get the Legacy Full Stack Certification, whenever I click on the claim certification button, it displays nothing, leaving the page as it is, I emailed the support team about this, they agreed i've fulfilled the requirements to get Legacy Full Stack certified and they said its a bug, and I should open a github case about it, so here I am. please help. Desktop (please complete the following information): OS: [Windows] Browser: [chrome] Version: [102.0.5005.115 (Official Build) (64-bit)] Additional context My username is muhammedctgr and my name is Popoola Muhammed
to investigate
hi pls whats the status on this?
it needs to be investigated
says page not found....
noted, thank you. i'll wait.
Many thanks to the dev team, I really appreciate the this mean its been fixed? Still unable to claim the cert tho.
Once the next production build is deployed, this fix should be in. We typically do 1 - 2 deployments each week.
This should be live now!
appreciate this, I've been able to claim the full stack cert. Promise to make FCC proud.

Discussion:
import { certMap } from '../../resources/cert-and-project-map'; import { completedChallengesSelector } from '..'; import { <ins> certTypes, certTypeIdMap } from '../../../../config/certification-settings'; import { </ins> updateUserFlagComplete, updateUserFlagError, validateUsernameComplete,

function* verifyCertificationSaga({ payload }) { // check redux if can claim cert before calling backend <del> const completedChallenges = yield select(completedChallengesSelector); </del> const currentCert = certMap.find(cert => cert.certSlug === payload); <del> const currentCertIds = currentCert?.projects.map(project => project.id); </del> <ins> const completedChallenges = yield select(completedChallengesSelector); </ins> const certTitle = currentCert?.title || payload; <del> const flash = { type: 'info', message: 'flash.incomplete-steps', variables: { name: certTitle } }; const canClaimCert = currentCertIds.every(id => completedChallenges.find(challenge => challenge.id === id) ); </del> <ins> // (20/06/2022) Full Stack client-side validation is already done here: // https://github.com/freeCodeCamp/freeCodeCamp/blob/main/client/src/components/settings/certification.js#L309 if (currentCert?.id !== certTypeIdMap[certTypes.fullStack]) { const flash = { type: 'info', message: 'flash.incomplete-steps', variables: { name: certTitle } }; const currentCertIds = currentCert?.projects?.map(project => project.id); const canClaimCert = currentCertIds.every(id => completedChallenges.find(challenge => challenge.id === id) ); </ins> <del> if (!canClaimCert) { yield put(createFlashMessage(flash)); return; </del> <ins> if (!canClaimCert) { yield put(createFlashMessage(flash)); return; } </ins> } // redux says challenges are complete, call back end
Change:
The tests for the formatting are too strict and won't let valid code pass. The above code should pass. This code passes: 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
here is failing test, in this markdown file Both radio buttons should still be located between opening and closing element tags. but why it's failing is alluding me. Anyway, I am in support of changing it to make it pass
This code works: But this code doesn't: Those 2 codes are exactly the same expect the second one has a little empty space between and . So something about the empty space makes the thing declare it as 'no longer between the opening and closing of the ' I dont know if this helps but that seems to be how to reproduce this bug. As even in the original buggy code that showed us there is empty space between the and : As you can see the code passes: ! So the empty space is messing stuff up. Again idk if this helps its my first time contributing so idk what im doing lol but i hope it helps somewhat in fixing the issue.
finding this, without debugging is impressive, good job. Yeab, this is helpful
Test expects to be first child node of the . When there's text (spaces) before it, first node will be node with spaces. To check for in all child nodes, and to ensure there's only one input per label, assertion can be changed to something like:

Discussion:
```js const labelChildNodes = [...$('label')].map((node) => [...node.childNodes]); assert( <del> labelChildNodes.filter((childNode) => childNode[0].nodeName === 'INPUT') .length === 2 </del> <ins> labelChildNodes.filter( childNodes => childNodes.filter(node => node.nodeName === 'INPUT').length === 1 ).length === 2 </ins> ); ```
Change:
Out of the 2 points in the "More resources:" section, the first point has a typo that has caused it to render in an unintended manner. Check this the point should be rendered as "Notebooks on GitHub" with an underline and should be clickable. ! I used a web browser(chrome) but I believe its a common issue for every device. No response

Discussion:
More resources: <del> -  <a href="https://github.com/ine-rmotr-curriculum/FreeCodeCamp-Pandas-Real-Life-Example"target="_blank" r el="noopener noreferrer nofollow">Notebooks on GitHub</a> </del> <ins> -  <a href="https://github.com/ine-rmotr-curriculum/FreeCodeCamp-Pandas-Real-Life-Example" target="_blank" rel="noopener noreferrer nofollow">Notebooks on GitHub</a> </ins> -  <a href="https://colab.research.google.com/github/googlecolab/colabtools/blob/master/notebooks/colab-github-demo.ipynb" target="_blank" rel="noopener noreferrer nofollow">How to open Notebooks from GitHub using Google Colab.</a> # --question--
Change:
I've encountered this several times now in the forums. The test will only pass if the is at the end of the after all other inputs, but the instructions do not make this clear. Thus, campers are adding it at the beginning of the and although their HTML is correct, the test is not passing because they have it in the wrong spot. N/A Either clarify in the instructions that the must be at the bottom of the after all other inputs or remove the restriction as to where it is . No response N/A No response
I vote for adding clarifications, although I don't mind removing the restriction. It would be worried if this is the only challenge without these restrictions. here is the markdown file

Discussion:
The `textarea` element acts like an `input` element of type `text`, but comes with the added benefit of being able to receive multi-line text, and an initial number of text rows and columns. <del> To allow users to register with a bio, add a `label` with the text `Provide a bio:` followed by a `textarea` element, which requires a closing tag. </del> <ins> Users will be able to register with a bio. Add a `label` with the text `Provide a bio:` at the end of the `fieldset`. Add a `textarea` element after the `label` element. Note that the `textarea` requires a closing tag. </ins> # --hints-- <del> You should add a `label` element within the third `fieldset`, after the existing `label` elements. </del> <ins> You should add a `label` element at the end of the third `fieldset`, after the existing `label` elements. </ins> ```js assert.exists(document.querySelector('fieldset:nth-child(3) > label:nth-child(4)'));
Change:
Campers are creating the new rule set properly but are adding it below the existing rule sets instead of deleting them, which is necessary to pass this step. Even though the hint says "You should only have one selector in your style element." it doesn't seem that they understand what this means. I don't think the instructions make it clear that the three existing rule sets should be deleted and replaced with one new rule set. Perhaps change the instructions to something like: "Replace the three existing type selectors with one selector list that centers the text for the , , and elements." Or even: "Delete the three existing type selectors and replace them with one selector list that centers the text for the , , and elements." No response N/A No response
I like this second option. I think adding this to the instructions will make it more clear.

Discussion:
} ``` <del> Use a selector list to center the `h1`, `h2` and `p` elements at the same time. </del> <ins> Delete the three existing type selectors and replace them with one selector list that centers the text for the `h1`, `h2`, and `p` elements. </ins> # --hints--