Git Product home page Git Product logo

freecodecamp / freecodecamp Goto Github PK

View Code? Open in Web Editor NEW
385.6K 8.5K 35.0K 415.07 MB

freeCodeCamp.org's open-source codebase and curriculum. Learn to code for free.

Home Page: http://contribute.freecodecamp.org/

License: BSD 3-Clause "New" or "Revised" License

JavaScript 28.28% CSS 5.83% HTML 0.04% Shell 0.04% Less 0.01% EJS 0.06% Dockerfile 0.26% TypeScript 65.34% MDX 0.16%
learn-to-code nonprofits programming nodejs react d3 careers education teachers javascript

freecodecamp's Introduction

freeCodeCamp Social Banner

Pull Requests Welcome first-timers-only Friendly Open Source Helpers Setup Automated Discord

freeCodeCamp.org's open-source codebase and curriculum

freeCodeCamp.org is a friendly community where you can learn to code for free. It is run by a donor-supported 501(c)(3) charity to help millions of busy adults transition into tech. Our community has already helped more than 40,000 people get their first developer job.

Our full-stack web development and machine learning curriculum is completely free and self-paced. We have thousands of interactive coding challenges to help you expand your skills.

Table of Contents

Certifications

freeCodeCamp.org offers several free developer certifications. Each of these certifications involves building 5 required web app projects, along with hundreds of optional coding challenges to help you prepare for those projects. We estimate that each certification will take a beginner programmer around 300 hours to earn.

Each of these 50 projects in the freeCodeCamp.org curriculum has its own agile user stories and automated tests. These help you build up your project incrementally and ensure you've fulfilled all the user stories before you submit it.

You can pull in these test suites through freeCodeCamp's CDN. This means you can build these projects on websites like CodePen and Replit - or even on your local computer's development environment.

Once you've earned a certification, you will always have it. You will always be able to link to it from your LinkedIn or resume. And when your prospective employers or freelance clients click that link, they'll see a verified certification specific to you.

The one exception to this is if we discover violations of our Academic Honesty Policy. When we catch people unambiguously plagiarizing (submitting other people's code or projects as their own without citation), we do what all rigorous institutions of learning should do - we revoke their certifications and ban those people.

Here are our twelve core certifications:

Legacy Full Stack Development Certification

Once you have earned the Responsive Web Design, Algorithms and Data Structures, Front End Development Libraries, Data Visualization, Back End Development and APIs, and Legacy Information Security and Quality Assurance certifications, you'll be able to claim your freeCodeCamp.org Full Stack Development Certification. This distinction signifies that you've completed around 1,800 hours of coding with a wide range of web development tools.

Legacy Certifications

We also have 4 legacy certifications dating back to our 2015 curriculum, which are still available. All of the required projects for these legacy certifications will remain available on freeCodeCamp.org.

  • Legacy Front End Development Certification
  • Legacy Data Visualization Certification
  • Legacy Back End Development Certification
  • Legacy Information Security and Quality Assurance Certification

Free professional certifications

The Learning Platform

This code is running live at freeCodeCamp.org.

Our community also has:

  • A forum where you can usually get programming help or project feedback within hours.
  • A YouTube channel with free courses on Python, SQL, Android, and a wide variety of other technologies.
  • A technical publication with thousands of programming tutorials and articles about mathematics and computer science.
  • A Discord server where you can hang out and talk with developers and people who are learning to code.

Reporting Bugs and Issues

If you think you've found a bug, first read the how to report a bug article and follow its instructions.

If you're confident it's a new bug and have confirmed that someone else is facing the same issue, go ahead and create a new GitHub issue. Be sure to include as much information as possible so we can reproduce the bug.

Reporting Security Issues and Responsible Disclosure

We appreciate responsible disclosure of vulnerabilities that might impact the integrity of our platforms and users.

Contributing

The freeCodeCamp.org community is possible thanks to thousands of kind volunteers like you. We welcome all contributions to the community and are excited to welcome you aboard.

Recent Contributions:

Alt

Platform, Build, and Deployment Status

The general platform status for all our applications is available at status.freecodecamp.org. The build and deployment status for the code is available in our DevOps Guide.

License

Copyright © 2024 freeCodeCamp.org

The content of this repository is bound by the following licenses:

  • The computer software is licensed under the BSD-3-Clause license.
  • The learning resources in the /curriculum directory including their subdirectories thereon are copyright © 2024 freeCodeCamp.org

freecodecamp's People

Contributors

abhisekp avatar ahmaxed avatar benmcmahon100 avatar berkeleytrue avatar bouncey avatar bugron avatar camperbot avatar dependabot[bot] avatar dhcodes avatar erictleung avatar gikf avatar greenheart avatar ltegman avatar manish-giri avatar mot01 avatar naomi-lgbt avatar ojeytonwilliams avatar quincylarson avatar raisedadead avatar randelldawson avatar renovate-bot avatar renovate[bot] avatar sahat avatar saintpeter avatar sboonny avatar scissorsneedfoodtoo avatar sembauke avatar shaunshamilton avatar terakilobyte avatar valeras avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

freecodecamp's Issues

Chat and Forum links no longer open glitter/forum

Hi,
It's been a few days since I logged in. I just logged in using the standard e-mail address. However, now that I am logged in when I click "Chat" I get challenge one instead of opening a page with glitter. I have already completed challenge one and it used to just open the "Chat".

Also, if I then click "Chat" again while on the challenge one page, glitter will then open.

The function is the same with forum (except brings up challenge two, once on challenge two click again and forum opens).

I just wanted to mention it, in case it wasn't intended to operate this way.
Thanks.

Grab larger Twitter image?

The new bio's page needs a larger image than is currently being pulled during sign-up with Twitter. Right now, the default image is blurry. Not sure if this is also happening with other authorization methods. It is an easy fix by changing it on the form, but I'm assuming this could be a easier user experience.

For example, the image from my original Twitter sign-up pulled this image "normal" image:
https://pbs.twimg.com/profile_images/539515557184167936/JqJXzV9x_normal.jpeg

But it would be better to go with the original:
https://pbs.twimg.com/profile_images/539515557184167936/JqJXzV9x.jpeg

Here is a link to the twitter documentation specific to these image sizes: https://dev.twitter.com/overview/general/user-profile-images-and-banners

Change Challenge Complete Tweet to @FreeCodeCamp

(enhancement)

When selecting "challenge complete" the pop-up gives you an option to tweet about it:

I just ROCKED Free Code Camp Challenge #4: Build a Responsive Blog Theme http://freecodecamp.com/challenges/4 #learntocode #javascript

Perhaps consider changing the text to include the Free Code Camp username. The same message is conveyed, but gives an additional lead opportunity to the Twitter account:

I just ROCKED @freeCodeCamp Challenge #4: Build a Responsive Blog Theme http://freecodecamp.com/challenges/4 #learntocode #javascript

Coursewares Confirming Prematurely

When typing the correct solution into the second courseware challenge (http://www.freecodecamp.com/coursewares/use-the-h2-element), I am congratulated before I have closed the h2 tag. The congratulations modal pops up once I have typed this much:

screen shot 2015-02-09 at 9 24 39 am

If I click away from the modal, I am able to complete the tag, and then the modal pops up again. I'm assuming whatever regex or otherwise that is checking this needs some tweaking?

Dead teamviewer hyperlink on Challenge 34

Hello,

I was attempting to use the hyperlink to Team Viewer on Challenge 34, but it did not work. It lead me to this screen. I am using latest Firefox on Windows 7 32-Bit.

teamviewer hyperlink error

Achivements not saved

Hi,
i was working on firefox and all my achievements was saved when i come back to working on them. then i moved to google Chrome, after logging with the same account, it brings me to the first challenge and all my achievements was lost.

Thanks for the great work you've done

more verbose bonfire challenge descriptions

At times, the bonfire challenge descriptions do not always give a clear expectation of what the test cases are looking for. The test cases are sometimes visible when the programmer tries to run a program, but not always clearly written out from a user standpoint.

Example: "Where do I belong?"
"Return the lowest index at which a value (second argument) should be inserted into a sorted array (first argument)."
The test cases that are visible after submitting code are:
"assert.equal(indexForNum, 3, '35 should be inserted at index 3');"
assert.equal(indexFor30, 2, '30 should be inserted at index 2');

While the test cases obviously work from a functionality standpoint, what is visible to the user is not always clear. What are indexforNum and then indexfor30?

The description of the problem, visible upon load, could simply add,

"[[2,4,6,8], 7] should return 3"

If the lack of verbose instructions is part of the challenge, then it doesn't need changed; on the other hand, being a bit more explicit about the spec of a particular problem seems more "real-life" and could be helpful.

I am willing to add this feature myself, but only if it doesn't conflict with the intent and purpose of the bonfire challenges. :)

FCC Challenge tweet appears as spam by Twitter

When completing a challenge the option is given to tweet about it.
For the past week Twitter did not want to accept these Tweets because it looked like spam.

I verified this with @brianamarie as being an issue on Twitter's side and not user account.

Upon further testing, removing the website link from the tweet and keeping the @ FreeCodeCamp username and #learntocode #javascript hashtags, Twitter accepts the tweet.

Failed via FCC Tweet link:
screenshot - 22022015 - 15 21 53

Failed directly on Twitter:
screenshot - 22022015 - 15 21 36

Succesful - removing FCC link:
screenshot - 22022015 - 15 43 34

Next Challenge Logic

While this is nothing major, I thought you guys might like to correct this logic in the code. When you load freecodecamp.com it by default takes you to your current challenge. It appears that the challenge returned is the next challenge after the last one you completed. However, the logic should be the next uncompleted challenge greater than the last one you completed.

For example, coderbytes was my last completed challenge. So when I load FCC it takes me to the next challenge after that, Manage Source Code with Git, even thought it should be showing me my next uncompleted challenge, Using Redis to Persist Data.

I can demonstrate if needed, no big deal; thought you might like to fix.

Profile update buttons

The update profile info buttons are all disabled for no apparent reason, and so users cannot add profiles/info

Firefox Web Console and Bonfire Freeze

Action Performed:
1: Logged onto Bonfire through FCC on Firefox.
2. Worked through problem for 5-10mins, then refreshed page.
3. Worked for 5-10 mins and then added code before shutdown. Code before shutdown include a change in the first variable, 7.
4. After removing 7 from the first array to revert to default arrays, web console and bonfire cease to work.
Expected Result:
[] and both Bonfire and Console refresh.
Actual Result:
No Bonfire and Console refresh. Output area with return array does not change.

Further detail:
Firefox 35.0.1, Windows 7 32 bit

https://drive.google.com/file/d/0B-94cRSEUQu_YXpPMjY0Rl9vMTg/view?usp=sharing

Bonefire page title

On the bonfire page the title should have Learn to code with bonfire | Free Code Camp.
Learn to code is our SEO keyword, so we want to implement that when we can.

Bonfire code font not good

Existing font may look good for the code typed in the editor, but it's a pain to indent and maintain indentation as each letter is of not the same size, could you guys please move to courier new, monospace or something similar?

Bonfire - Title Case a Sentence

As it is at the present moment, the starting code format for Title Case a Sentence misses a semi-colon at the end of the last line as shown in the picture.

Semi-colon error on Title Case a Sentence challenge

I would've fixed the issue myself but I think this comes from the challenge seed in the db.

Login/Avatar/Profile Edit Problem

I have had issues after filling out my FCC public profile.
Test Settings: Windows 7 Firefox 32 bit
Bug Trigger: Filled out profile fields. Profile fields include Username(path to public profile), Twitter, Github, CoderByte, and LinkedIn.
Bug Description:
Avatar picture will not display.
Cannot login.
Cannot login even after resetting password.
Cannot edit Profile after first profile edit.
Bug Reproduction:
Could not reproduce with a secondary test account, bug only found with [email protected].

Link with google, attached video of the bug.
https://drive.google.com/file/d/0B-94cRSEUQu_YkdvTTlaWEM4UGs/view?usp=sharing

Bonfire Challenges

I've had to reenter many of the challenges after pressing 'Take me to the next challenge.'
Also, on several of the challenges the test console output show errors (e.g. Unexpected Token) with no output concerning the test, but it still passes. I'll get a screenshot shot the next time it happens.

Social Media Login/Link

This is not a bug, but it would be a nice login feature. Currently, there seems to be no way to delete or reset the social media logins. When I go to the profile page, I do not see any options to change the social media links. I have attached an image of what I encounter when I try to change the facebook login.
fcc social media logins

Forum Post Withdrawal

Discourse may not be deleting posts withdrawn by author; withdrawn posts are supposedly programmed to be withdrawn 24 hours after withdrawal. I have attached a picture of an issue and anonymized the original poster.

The issue was found on google chrome on windows 7.

Please note, the post was posted 4 days ago. It is possible author may have withdrawn post recently. If post in question still exists by Sunday, 1/25, posts may not be self-withdrawing.
Uploading Discourse Post Withdrawal Bug.JPG . . .

.....if picture is not visible,
feel free to find bug at http://forum.freecodecamp.com/t/seattle-area-free-code-campers/141/18

Bonfire Button padding

When you hover your mouse over the button, the bonfire button is snugged against "Sign in" maybe add some padding will help?

Can't login with Github

I can't login with Github. When I try, it logs me into someone else's account. I didn't realize it was logging me into someone else's account, so I deleted the account once logged in, and then tried again. I was again logged into someone else's account (a different user this time).

Out of curiosity, I had to try deleting this user account as well (sorry!), and when I logged back in again with Github, I was signed in as a different user again. I assume these were all real accounts because they had different user profile pics and such.

It had been a few weeks since I had logged in. Pre-switching away from hipchat, if that helps.

"Cash Register" bonfire bug

In the following test-case expected ['TWENTY', 80.00], but only ['TWENTY', 60.00] available.

assert.deepEqual(drawer(3.26, 100.00,

[['PENNY', 1.01], 
['NICKEL', 2.05], 
['DIME', 3.10], 
['QUARTER', 4.25], 
['ONE', 90.00], 
['FIVE', 55.00], 
['TEN', 20.00], 
['TWENTY', 60.00],
['ONE HUNDRED', 100.00]]),

[['TWENTY', 80.00], 
['TEN', 10.00], 
['FIVE', 5], 
['ONE', 1], 
['QUARTER', 0.50], 
['DIME', 0.20], 
['PENNY', 0.04]],

'return correct change with multiple coins and bills');

I'm going to fix it and make a pull request.

Tweets on the about page

Is there a reason a live twitter feed hasn't been implemented yet on the about page? One reason I could think of is from a marketing perspective, wanting to have selective tweets.

However, they seem a bit outdated now and every time I see the page they're always the same. Perhaps it would be a good idea to insert a live twitter feed following @freeCodeCamp ? If it's desirable I could take a look into it.

Email Password Reset Form Not Working

Password form button does not respond to click. Additionally the jumbotron div that is meant to have a white background for the form is too short (only approx 96px and form is 317px).

Add Footer with links to FCC

None of the FCC pages (logged in or out) has a footer bar or footer menu with relevant links for users to follow.

Adding a footer bar with links to more info about FCC:

  • Blog link (currently no link anywhere),
  • Creative Commons/ Open Source License/ Copyright,
  • Github and Social Media links,
  • Privacy Policy,
  • Forum and Chat links

Not only will this make exploring FCC much easier but will be great for SEO as well.

Accessibility

If free code camp is to be welcoming to all, the website needs more accessibility coverage.

To start, my suggestion is to add an extra bullet on the first challenge (http://www.freecodecamp.com/challenges/0) that makes it clear that we are here to support everyone in their learning with extra information for people that need full accessibility with screen readers or those whom cannot hear the un-captioned challenge videos.

We could have a section with guidelines on what to do if a camper runs into an accessibility issue (seek out someone in the chat, send an email, submit an issue/PR in the repo, etc).

FCC points and achievement dates wrongfully reset upon clicking challenge completion

Action Performed:
1: Passed a bonfire challenge and changed point total from 55 to 56.
2. Went to profile and click on challenge 3.
3. Marked challenge 3 as completed. - Challenge 3 has already been completed.
4. Saw point total go back to 55 and saw challenge 3 finish date set to 2/23/2015.
Expected Result:
Point total should remain at 56 and challenge 3 finish date should remain at the original date.
Actual Result:
Point total reverted to 55 and challenge 3 finish date set to erroneous date.

Notes
Thankfully, bonfire completion is not reset.

Further detail:
Firefox 35.0.1, Windows 7 32 bit

https://drive.google.com/file/d/0B-94cRSEUQu_OWtObHc4Q3Eyamc/view?usp=sharing
https://drive.google.com/file/d/0B-94cRSEUQu_NjFXQlNySWh0Uzg/view?usp=sharing

FORUM Login infinite loop

My first time at the forum for freecodecamp following step #2. Instead of using the 'signup', I decided to use 'login' and I was redirected to github for authentication. This part was fine but after being redirected back to freecodecamp, a new window infinitely opened and closed. I had to force close, refresh and use the 'signup'.

Buttons Below Challenge NonFunctional

Don't know what happened, but around midnight PST we lost functionality with the two buttons
[I've completed this challenge] and [Show me all challenges]. When you click either/or they do not do anything. I am using Chrome & Win 7, this error is being experienced from other members, this doesn't appear to be isolated.
https://photos-3.dropbox.com/t/2/AABUlSgswrFhjmjO0xKLwGLO3elOLPO-gOqpVRVrbQMDWA/12/353228789/png/1024x768/2/_/0/4/Screenshot%202015-02-03%2003.03.42.png/CPWvt6gBIAEgAiADKAE/kyy49tuc5krkkjd/AABhbjocnzy13CXPnO-We7rEa/Screenshot%202015-02-03%2003.03.42.png

Blank account update form

It flashes the form fields for a second and then is blank between "Update your profile here:" and "Actions" headings. Here's the console error:
TypeError: Cannot read property 'toLowerCase' of undefined
at http://www.freecodecamp.com/assets/main-f8954d61b57a2ddb3277b1552c0c3545.js:49:72
at http://ajax.googleapis.com/ajax/libs/angularjs/1.3.8/angular.min.js:81:132
at http://ajax.googleapis.com/ajax/libs/angularjs/1.3.8/angular.min.js:112:276
at l.$eval (http://ajax.googleapis.com/ajax/libs/angularjs/1.3.8/angular.min.js:126:84)
at l.$digest (http://ajax.googleapis.com/ajax/libs/angularjs/1.3.8/angular.min.js:123:195)
at l.$apply (http://ajax.googleapis.com/ajax/libs/angularjs/1.3.8/angular.min.js:126:362)
at l (http://ajax.googleapis.com/ajax/libs/angularjs/1.3.8/angular.min.js:81:422)
at O (http://ajax.googleapis.com/ajax/libs/angularjs/1.3.8/angular.min.js:86:51)
at XMLHttpRequest.w.onload (http://ajax.googleapis.com/ajax/libs/angularjs/1.3.8/angular.min.js:87:78)

That looks like it's on the $scope.user.profile.username.toLowerCase() on line 49. The JSON from my /account/api doesn't have a user.profile.username key.
Maybe it would be a simple fix of piping?
$scope.user.profile.username = $scope.user.profile.username.toLowerCase() || '';

Infinite Challenges/Points

After a user completes all challenges, click on take me to my next challenge forwards to a challenge number that doesn't really exist, and awards a point for completion.

Screen Reader Accessibility of Embedded Youtube Videos

There isn't a play button accessible to screen readers in embedded YouTube videos. This means that the previous live pairing videos are not accessible. I tested it out with Voice Over and can't access a play button at all.

The workaround for this is to offer a direct link to the YouTube videos, because the YouTube website itself is accessible to screen readers. I suggest we do that. Or, if nothing else, we need more copy on the live pairing page to explain what is there. Right now there isn't enough context for what is on the page if a person can't see it.

Note: Vimeo videos have an accessible play button, so challenge videos are okay.

Bonfire: 'Where art thou' has inconsistent testing criteria

Code expects, in one case, for you to only be pulling the key-value pair and treating it as a new individual object, and in the second case, for you to pull the full object that possesses the key-value pair.

function where(collection, source) {
  var arr = [];
  for(var key in source) {
    for(i = 0; i < collection.length; ++i) {
      if(source[key] === collection[i][key])
        arr.push(collection[i]);
    }

  }
  return arr;
}

where([{ first: 'Romeo', last: 'Montague' }, { first: 'Mercutio', last: null }, { first: 'Tybalt', last: 'Capulet' }], { last: 'Capulet' });

And output / tests:

Fails
assert.deepEqual(where([{ 'a': 1 }, { 'a': 1 }, { 'a': 1, 'b': 2 }], { 'a': 1 }), [{ 'a': 1 }, { 'a': 1 }, { 'a': 1 }], 'should return with multiples');AssertionError:should return with multiples: expected [ { a: 1 }, { a: 1 }, { a: 1, b: 2 } ] to deeply equal [ { a: 1 }, { a: 1 }, { a: 1 } ]

But

Succeeds
assert.deepEqual(where([{ first: 'Romeo', last: 'Montague' }, { first: 'Mercutio', last: null }, { first: 'Tybalt', last: 'Capulet' }], { last: 'Capulet' }), [{ first: 'Tybalt', last: 'Capulet' }], 'should return an array of objects');

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.