update the about page and make it the root
This commit is contained in:
10
app.js
10
app.js
@ -168,6 +168,7 @@ app.use(helmet.contentSecurityPolicy({
|
||||
'*.vimeo.com',
|
||||
'*.twitter.com',
|
||||
'*.rafflecopter.com',
|
||||
'*.ghbtns.com'
|
||||
].concat(trusted),
|
||||
reportOnly: false, // set to true if you only want to report errors
|
||||
setAllHeaders: false, // set to true if you want to set all headers
|
||||
@ -255,10 +256,19 @@ app.post(
|
||||
passportConf.isAuthenticated,
|
||||
userController.updateProgress
|
||||
);
|
||||
|
||||
/**
|
||||
* Challenge related routes
|
||||
*/
|
||||
app.get(
|
||||
'/challenges/',
|
||||
challengesController.returnNextChallenge
|
||||
);
|
||||
app.get(
|
||||
'/challenges/:challengeNumber',
|
||||
challengesController.returnChallenge
|
||||
);
|
||||
|
||||
app.all('/account', passportConf.isAuthenticated);
|
||||
app.get('/account/api', userController.getAccountAngular);
|
||||
|
||||
|
@ -9,7 +9,27 @@ var _ = require('lodash'),
|
||||
|
||||
var highestChallengeNumber = 53;
|
||||
|
||||
exports.returnChallenge = function(req, res, next) {
|
||||
|
||||
exports.returnNextChallenge = function(req, res) {
|
||||
if (req.user) {
|
||||
ch = req.user.challengesHash;
|
||||
if (req.user.challengesHash[0] > 0) {
|
||||
var max = Object.keys(ch).reduce(function(max, key) {
|
||||
return (max === undefined || ch[key] > ch[max]) ? +key : max;
|
||||
});
|
||||
nextChallenge = max + 1;
|
||||
res.redirect('challenges/' + nextChallenge);
|
||||
} else {
|
||||
res.redirect('challenges/0');
|
||||
}
|
||||
} else {
|
||||
res.render('home', {
|
||||
title: 'Learn to Code and Become a Software Engineer',
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
exports.returnChallenge = function(req, res) {
|
||||
var challengeNumber = parseInt(req.params.challengeNumber) || 0;
|
||||
if (challengeNumber > highestChallengeNumber) {
|
||||
req.flash('errors', {
|
||||
|
@ -5,20 +5,10 @@
|
||||
|
||||
exports.index = function(req, res) {
|
||||
if (req.user) {
|
||||
ch = req.user.challengesHash;
|
||||
if (req.user.challengesHash[0] > 0) {
|
||||
var max = Object.keys(ch).reduce(function(max, key) {
|
||||
return (max === undefined || ch[key] > ch[max]) ? +key : max;
|
||||
});
|
||||
nextChallenge = max + 1;
|
||||
res.redirect('challenges/' + nextChallenge);
|
||||
} else {
|
||||
res.redirect('challenges/0');
|
||||
}
|
||||
res.redirect('/learn-to-code')
|
||||
} else {
|
||||
res.render('home', {
|
||||
title: 'Learn to Code and Become a Software Engineer',
|
||||
landingPage: true
|
||||
title: 'Learn to Code and Become a Software Engineer'
|
||||
});
|
||||
}
|
||||
};
|
||||
|
@ -102,9 +102,14 @@ module.exports = {
|
||||
var date2 = new Date();
|
||||
var timeDiff = Math.abs(date2.getTime() - date1.getTime());
|
||||
var daysRunning = Math.ceil(timeDiff / (1000 * 3600 * 24));
|
||||
var githubHeaders = {headers: {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1521.3 Safari/537.36'}, port:80 };
|
||||
client.get('https://trello.com/1/boards/BA3xVpz9/cards?key=' + secrets.trello.key, function(trello, res2) {
|
||||
client.get('https://www.googleapis.com/blogger/v3/blogs/2421288658305323950/posts?key=' + secrets.blogger.key, function(blogger, res3) {
|
||||
client.get('https://api.github.com/repos/freecodecamp/freecodecamp/pulls', githubHeaders, function(pulls, res3) {
|
||||
client.get('https://api.github.com/repos/freecodecamp/freecodecamp/issues', githubHeaders, function(issues, res4) {
|
||||
client.get('https://www.googleapis.com/blogger/v3/blogs/2421288658305323950/posts?key=' + secrets.blogger.key, function (blogger, res5) {
|
||||
var nonprofitProjects = (JSON.parse(trello)).length || 27;
|
||||
var pulls = pulls ? (JSON.parse(pulls)).length : 0;
|
||||
var issues = issues ? (JSON.parse(issues)).length : 0;
|
||||
var blog = JSON.parse(blogger);
|
||||
User.count({'points': {'$gt': 2}}, function (err, c3) {
|
||||
if (err) {
|
||||
@ -130,6 +135,8 @@ module.exports = {
|
||||
title: 'About Free Code Camp and Our Team of Volunteers',
|
||||
daysRunning: daysRunning,
|
||||
nonprofitProjects: nonprofitProjects,
|
||||
pulls: pulls,
|
||||
issues: issues,
|
||||
c3: c3,
|
||||
c10: c10,
|
||||
c30: c30,
|
||||
@ -151,6 +158,8 @@ module.exports = {
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
},
|
||||
|
||||
randomPhrase: function() {
|
||||
|
@ -717,9 +717,9 @@
|
||||
@panel-success-border: @state-success-border;
|
||||
@panel-success-heading-bg: @state-success-bg;
|
||||
|
||||
@panel-info-text: @state-info-text;
|
||||
@panel-info-border: @state-info-border;
|
||||
@panel-info-heading-bg: @state-info-bg;
|
||||
@panel-info-text: #eee;
|
||||
@panel-info-border: darken(#4a2b0f, 5%);
|
||||
@panel-info-heading-bg: #4a2b0f;
|
||||
|
||||
@panel-warning-text: @state-warning-text;
|
||||
@panel-warning-border: @state-warning-border;
|
||||
|
@ -374,6 +374,11 @@ ul {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.next-challenge-button {
|
||||
max-width: 1500px;
|
||||
margin:0 auto;
|
||||
}
|
||||
|
||||
.btn-big {
|
||||
font-size: 30px;
|
||||
}
|
||||
@ -690,6 +695,14 @@ iframe.iphone {
|
||||
font-size: 0px;
|
||||
}
|
||||
|
||||
.stats-text {
|
||||
font-size: 26px;
|
||||
line-height: 150%;
|
||||
}
|
||||
|
||||
.github-button-container {
|
||||
padding-top: 5px;
|
||||
}
|
||||
|
||||
//uncomment this to see the dimensions of all elements outlined in red
|
||||
//* {
|
||||
|
@ -400,7 +400,7 @@
|
||||
"Try an intelligent Google query that involves JavaScript and filters for this year (since JavaScript changes).",
|
||||
"Go to <a href='http://stackoverflow.com/' target='_blank'>http://stackoverflow.com/</a> and view the recent questions.",
|
||||
"Go to <a href='http://webchat.freenode.net/' target='_blank'>http://webchat.freenode.net/</a> and create an IRC account.",
|
||||
"Join the #JavaScript chat room and introduce yourself as a Free Code Camp student.",
|
||||
"Join the #LearnJavaScript chat room and introduce yourself as a Free Code Camp student.",
|
||||
"Finally, we have a special chat room specifically for getting help with tools you learn through Free Code Camp Challenges. Go to <a href='https://gitter.im/FreeCodeCamp/Help' target='_blank'>https://gitter.im/FreeCodeCamp/Help</a>. Keep this chat open while you work on the remaining challenges.",
|
||||
"Now you have several ways of getting help when you're stuck."
|
||||
]
|
||||
|
@ -419,6 +419,36 @@
|
||||
"challengeType": 0
|
||||
},
|
||||
|
||||
{
|
||||
"_id" : "bad87fee1348bd9aedf08811",
|
||||
"name": "Use rgb Codes for Precise Colors",
|
||||
"difficulty" : "0.17",
|
||||
"description": [
|
||||
"Change the <code>red-text</code> class's color <code>rgb</code> value to be red.",
|
||||
"Another way to represent color in CSS is with <code>rgb</code>, or red-green-blue notation.",
|
||||
"For each of the three colors, you specify a value between 0 and 256.",
|
||||
"For example, black is <code>rgb(0, 0, 0)</code>, white is <code>rgb(255, 255, 255)</code>, bright green is <code>rgb(0, 255, 0)</code>. You can also get less intense colors by using values lower than 255. For example, light green is <code>rgb(0, 123, 0).",
|
||||
"If you think about it, this is just as precise as using <code>hex code</code>, because 16 times 16 is 256. In practice, most developers use <code>hex code</code> since it's faster to say out loud and to type.",
|
||||
"We'll use 6-digit <code>hex code</code> in all our challenges going forward, but it's good to be aware of this <code>rgb</code> notation."
|
||||
],
|
||||
"tests": [
|
||||
"expect($('h2')).to.have.css('color', 'rgb(255, 0, 0)');",
|
||||
"expect($('h2')).to.have.class('red-text');"
|
||||
],
|
||||
"challengeSeed": [
|
||||
"<style>",
|
||||
" .red-text {",
|
||||
" color: rgb(0, 255, 0);",
|
||||
" }",
|
||||
"</style>",
|
||||
"",
|
||||
"<h1>hello world</h1>",
|
||||
"<h2 class=\"red-text\">cat photo app</h2>",
|
||||
"<p>lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>"
|
||||
],
|
||||
"challengeType": 0
|
||||
},
|
||||
|
||||
{
|
||||
"_id" : "bad87fee1348bd9aedf08810",
|
||||
"name": "Use Hex Codes for Precise Colors",
|
||||
@ -478,7 +508,7 @@
|
||||
|
||||
{
|
||||
"_id" : "bad87fee1348bd9aedf08811",
|
||||
"name": "Use rgb Codes for Precise Colors",
|
||||
"name": "Set the Alpha of a Color with rgba",
|
||||
"difficulty" : "0.17",
|
||||
"description": [
|
||||
"Change the <code>red-text</code> class's color <code>rgb</code> value to be red.",
|
||||
|
@ -1,4 +1,4 @@
|
||||
.panel.panel-primary
|
||||
.panel.panel-info
|
||||
.panel-heading.landing-panel-heading.text-center Our Team of Volunteer Camp Counselors
|
||||
.panel-body
|
||||
.landing-panel-body.text-center
|
||||
@ -12,121 +12,121 @@
|
||||
}
|
||||
});
|
||||
#shuffle
|
||||
.col-xs-12.col-sm-4.col-md-3.team-member
|
||||
.col-xs-12.col-sm-12.col-md-12.col-lg-6.team-member
|
||||
h3.negative-10.text-nowrap Ammar Shah
|
||||
h4.negative-10.text-nowrap Community Builder
|
||||
img.profile-image(src='https://s3.amazonaws.com/freecodecamp/ammar-shah.jpg' alt="Ammar Shah's picture")
|
||||
h4.text-nowrap Karachi, Pakistan
|
||||
p.negative-10 "I code whenever I'm not sleeping or in school. Making computers obey me is a dream come true."
|
||||
.col-xs-12.col-sm-4.col-md-3.team-member
|
||||
.col-xs-12.col-sm-12.col-md-12.col-lg-6.team-member
|
||||
h3.negative-10.text-nowrap Branden Byers
|
||||
h4.negative-10.text-nowrap Instructional Designer
|
||||
img.profile-image(src='https://s3.amazonaws.com/freecodecamp/branden-byers.jpg' alt="Branden Byers picture")
|
||||
h4.text-nowrap Madison, Wisconsin
|
||||
p.negative-10 "Cookbook author and stay-at-home-dad. Started coding as a kid, got distracted, but now I'm back in full JavaScript force!"
|
||||
.col-xs-12.col-sm-4.col-md-3.team-member
|
||||
.col-xs-12.col-sm-12.col-md-12.col-lg-6.team-member
|
||||
h3.negative-10.text-nowrap Michael Johnson
|
||||
h4.negative-10.text-nowrap Nonprofit Coordinator
|
||||
img.profile-image(src='https://s3.amazonaws.com/freecodecamp/michael-johnson.jpeg' alt="Michael Johnson's picture")
|
||||
h4.text-nowrap Washington, D.C.
|
||||
p.negative-10 "I’m a recent Harvard University graduate who took a pass on Wall Street to code for a cause, and help others do the same."
|
||||
.col-xs-12.col-sm-4.col-md-3.team-member
|
||||
.col-xs-12.col-sm-12.col-md-12.col-lg-6.team-member
|
||||
h3.negative-10.text-nowrap Berkeley Martinez
|
||||
h4.negative-10.text-nowrap JavaScript Engineer
|
||||
img.profile-image(src='https://s3.amazonaws.com/freecodecamp/berkeley-martinez.jpg' alt="Berkeley Martinez's picture")
|
||||
h4.text-nowrap San Francisco, California
|
||||
p.negative-10 "Former mechanical engineer. Coding is pure creation. I can fly, but only once."
|
||||
.col-xs-12.col-sm-4.col-md-3.team-member
|
||||
.col-xs-12.col-sm-12.col-md-12.col-lg-6.team-member
|
||||
h3.negative-10.text-nowrap Mychael Zuniga
|
||||
h4.negative-10.text-nowrap JavaScript Engineer
|
||||
img.profile-image(src='https://s3.amazonaws.com/freecodecamp/mychael-zuniga.jpg' alt="Mychael Zuniga's picture")
|
||||
h4.text-nowrap San Diego, California
|
||||
p.negative-10 "I'm a college student who turned to code as an avenue for creative expression. I love political science and economics."
|
||||
.col-xs-12.col-sm-4.col-md-3.team-member
|
||||
.col-xs-12.col-sm-12.col-md-12.col-lg-6.team-member
|
||||
h3.negative-10.text-nowrap Jeanette Casteñeta
|
||||
h4.negative-10.text-nowrap Product Manager
|
||||
img.profile-image(src='https://s3.amazonaws.com/freecodecamp/jeanette-casteneta.jpg' alt="Jeanette Casteñeta's picture")
|
||||
h4.text-nowrap San Francisco, California
|
||||
p.negative-10 "Home-ec diva. I can envision a dress, then stitch it together. Now I'm learning how to do the same thing with code."
|
||||
.col-xs-12.col-sm-4.col-md-3.team-member
|
||||
.col-xs-12.col-sm-12.col-md-12.col-lg-6.team-member
|
||||
h3.negative-10.text-nowrap Darryl Dixon
|
||||
h4.negative-10.text-nowrap Community Builder
|
||||
img.profile-image(src='https://s3.amazonaws.com/freecodecamp/darryl-dixon.jpg' alt="Darryl Dixon's picture")
|
||||
h4.text-nowrap Newport News, Virginia
|
||||
p.negative-10 "I'm a self-taught graphic designer. I'm learning web development here and want you to learn with me."
|
||||
.col-xs-12.col-sm-4.col-md-3.team-member
|
||||
.col-xs-12.col-sm-12.col-md-12.col-lg-6.team-member
|
||||
h3.negative-10.text-nowrap Kathy O'Driscoll
|
||||
h4.negative-10.text-nowrap Community Builder
|
||||
img.profile-image(src='https://s3.amazonaws.com/freecodecamp/kathy-odriscoll.jpg' alt="Kathy O'Driscoll's picture")
|
||||
h4.text-nowrap Los Angeles, California
|
||||
p.negative-10 "Mother and grandmother. All my life I've dabbled in getting machines to do my bidding. Now it's becoming my career."
|
||||
.col-xs-12.col-sm-4.col-md-3.team-member
|
||||
.col-xs-12.col-sm-12.col-md-12.col-lg-6.team-member
|
||||
h3.negative-10.text-nowrap Ryan Malm
|
||||
h4.negative-10.text-nowrap Visual Designer
|
||||
img.profile-image(src='https://s3.amazonaws.com/freecodecamp/ryan-malm.jpg' alt="Ryan Malm's picture")
|
||||
h4.text-nowrap Omaha, Nebraska
|
||||
p.negative-10 "I love origami, piano, and playing minecraft with my kids. My JavaScript grows stronger every day."
|
||||
.col-xs-12.col-sm-4.col-md-3.team-member
|
||||
.col-xs-12.col-sm-12.col-md-12.col-lg-6.team-member
|
||||
h3.negative-10.text-nowrap Charles Watson
|
||||
h4.negative-10.text-nowrap JavaScript Engineer
|
||||
img.profile-image(src='https://s3.amazonaws.com/freecodecamp/charles-watson.jpg' alt="Charles Watson's picture")
|
||||
h4.text-nowrap Minneapolis, Minnesota
|
||||
p.negative-10 "I skipped college. I build iOS apps. I love the obstacles and puzzles that coding presents me."
|
||||
.col-xs-12.col-sm-4.col-md-3.team-member
|
||||
.col-xs-12.col-sm-12.col-md-12.col-lg-6.team-member
|
||||
h3.negative-10.text-nowrap Quincy Larson
|
||||
h4.negative-10.text-nowrap Instructional Designer
|
||||
img.profile-image(src='https://s3.amazonaws.com/freecodecamp/quincy-larson.jpg' alt="Quincy Larson's picture")
|
||||
h4.text-nowrap San Francisco, California
|
||||
p.negative-10 "I worked as a school director in China before learning to code. It's clear that everyone can - and should - learn to code."
|
||||
.col-xs-12.col-sm-4.col-md-3.team-member
|
||||
.col-xs-12.col-sm-12.col-md-12.col-lg-6.team-member
|
||||
h3.negative-10.text-nowrap Mark Howard
|
||||
h4.negative-10.text-nowrap Digital Marketer
|
||||
img.profile-image(src='https://s3.amazonaws.com/freecodecamp/mark-howard.jpg' alt="Mark Howard's picture")
|
||||
h4.text-nowrap San Diego, California
|
||||
p.negative-10 "I enjoy helping people, at scale. Code is the best way to do that."
|
||||
.col-xs-12.col-sm-4.col-md-3.team-member
|
||||
.col-xs-12.col-sm-12.col-md-12.col-lg-6.team-member
|
||||
h3.negative-10.text-nowrap Nathan Leniz
|
||||
h4.negative-10.text-nowrap JavaScript Engineer
|
||||
img.profile-image(src='https://s3.amazonaws.com/freecodecamp/nathan-leniz.jpg' alt="Nathan Leniz's picture")
|
||||
h4.text-nowrap Seoul, South Korea
|
||||
p.negative-10 "I learned to code for the games, and stayed for the algorithms."
|
||||
.col-xs-12.col-sm-4.col-md-3.team-member
|
||||
.col-xs-12.col-sm-12.col-md-12.col-lg-6.team-member
|
||||
h3.negative-10.text-nowrap Jason Rueckert
|
||||
h4.negative-10.text-nowrap Live Content Manager
|
||||
img.profile-image(src='https://s3.amazonaws.com/freecodecamp/jason-rueckert.jpg' alt="Jason Rueckert's picture")
|
||||
h4.text-nowrap Seattle, Washington
|
||||
p.negative-10 "My high school job was testing basketball shoes for Nike. I learned code to work smarter, not harder. I have no thyroid."
|
||||
.col-xs-12.col-sm-4.col-md-3.team-member
|
||||
.col-xs-12.col-sm-12.col-md-12.col-lg-6.team-member
|
||||
h3.negative-10.text-nowrap Christopher Nguyen
|
||||
h4.negative-10.text-nowrap QA Engineer
|
||||
img.profile-image(src='https://s3.amazonaws.com/freecodecamp/christopher-nguyen.jpg' alt="Christopher Nguyen's picture")
|
||||
h4.text-nowrap Seattle, Washington
|
||||
p.negative-10 "Morning Owl. Code is an equalizer. Barriers exist everywhere, but if you can say 'hello world', the world will say hello back."
|
||||
.col-xs-12.col-sm-4.col-md-3.team-member
|
||||
.col-xs-12.col-sm-12.col-md-12.col-lg-6.team-member
|
||||
h3.negative-10.text-nowrap Dominic Jones
|
||||
h4.negative-10.text-nowrap Community Builder
|
||||
img.profile-image(src='https://s3.amazonaws.com/freecodecamp/dominic-jones.jpg' alt="Dominic Jones's picture")
|
||||
h4.text-nowrap York, Pennsylvania
|
||||
p.negative-10 "Born with Sickle Cell Anemia. Professional writer, working on becoming a professional code writer."
|
||||
.col-xs-12.col-sm-4.col-md-3.team-member
|
||||
.col-xs-12.col-sm-12.col-md-12.col-lg-6.team-member
|
||||
h3.negative-10.text-nowrap James McShane
|
||||
h4.negative-10.text-nowrap JavaScript Engineer
|
||||
img.profile-image(src='https://s3.amazonaws.com/freecodecamp/james-mcshane.jpg' alt="James McShane's picture")
|
||||
h4.text-nowrap Minneapolis, Minnesota
|
||||
p.negative-10 "I just bought our first house, ending a 10 year streak of moving each year. I've used code to solve problems since I was a child."
|
||||
.col-xs-12.col-sm-4.col-md-3.team-member
|
||||
.col-xs-12.col-sm-12.col-md-12.col-lg-6.team-member
|
||||
h3.negative-10.text-nowrap Ellie Adam
|
||||
h4.negative-10.text-nowrap Visual Designer
|
||||
img.profile-image(src='https://s3.amazonaws.com/freecodecamp/ellie-adam.jpg' alt="Eliie Adam's picture")
|
||||
h4.text-nowrap Seattle, Washington
|
||||
p.negative-10 "I photograph birds and flowers. I'm a designer who recently decided to learn coding and front end web developement."
|
||||
.col-xs-12.col-sm-4.col-md-3.team-member
|
||||
.col-xs-12.col-sm-12.col-md-12.col-lg-6.team-member
|
||||
h3.negative-10.text-nowrap Kamal Sharif
|
||||
h4.negative-10.text-nowrap JavaScript Engineer
|
||||
img.profile-image(src='https://s3.amazonaws.com/freecodecamp/kamal-sharif.jpg' alt="Kamal Sharif's picture")
|
||||
h4.text-nowrap Dhaka, Bangladesh
|
||||
p.negative-10 "I build applications that help other people improve their own lives."
|
||||
.col-xs-12.col-sm-4.col-md-3.team-member
|
||||
.col-xs-12.col-sm-12.col-md-12.col-lg-6.team-member
|
||||
h3.negative-10.text-nowrap Patrick Ly
|
||||
h4.negative-10.text-nowrap Community Builder
|
||||
img.profile-image(src='https://s3.amazonaws.com/freecodecamp/patrick-ly.jpg' alt="Patrick Ly's picture")
|
||||
|
@ -1,9 +1,3 @@
|
||||
.panel.panel-primary
|
||||
.panel-heading.landing-panel-heading.text-center Our Blog and Tweets
|
||||
.panel-body
|
||||
.landing-panel-body.text-center
|
||||
.row
|
||||
.col-xs-12.col-sm-12.col-md-6
|
||||
h2
|
||||
a(href=blog1Link)= blog1Title
|
||||
h2
|
||||
@ -14,7 +8,3 @@
|
||||
a(href=blog4Link)= blog4Title
|
||||
h2
|
||||
a(href=blog5Link)= blog5Title
|
||||
.col-xs-12.col-sm-12.col-md-6
|
||||
a.twitter-timeline(data-dnt='true', href='https://twitter.com/FreeCodeCamp', data-widget-id='560847186548621312') Tweets by @FreeCodeCamp
|
||||
script.
|
||||
!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+"://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");
|
@ -1,4 +1,4 @@
|
||||
.panel.panel-primary
|
||||
.panel.panel-info
|
||||
.panel-heading.landing-panel-heading.text-center Frequently Asked Questions
|
||||
.panel-body
|
||||
.landing-panel-body
|
||||
@ -16,11 +16,12 @@
|
||||
p.landing-p Then you'll learn computer science and the art of programming:
|
||||
ul
|
||||
li.landing-p • JavaScript - the one programming language that all web browsers use
|
||||
li.landing-p • Git - a version control system for saving and sharing your projects
|
||||
li.landing-p • Algorithms - step-by-step recipes for getting things done
|
||||
li.landing-p • Automated Testing - write tests to test the limits of your code
|
||||
p.landing-p You'll spend the last half of Free Code Camp using Agile Methodologies and Full Stack JavaScript to build projects for nonprofits:
|
||||
ul
|
||||
li.landing-p • Agile - a set of software development principles that focus the design and production of a project on the needs of its users
|
||||
li.landing-p • Git - a version control system for saving and sharing your projects
|
||||
li.landing-p • MongoDB - a popular non-relational database
|
||||
li.landing-p • Angular.js - a tool for making exciting web interfaces
|
||||
li.landing-p • Express.js - a powerful web development framework
|
||||
|
@ -1,46 +1,39 @@
|
||||
.panel.panel-primary
|
||||
.panel-heading.landing-panel-heading.text-center Free Code Camp Stats
|
||||
.panel-body
|
||||
.landing-panel-body.text-center
|
||||
h2.stats-text
|
||||
.row
|
||||
.col-xs-6.text-right
|
||||
h2 Days since we Launched:
|
||||
.col-xs-6.text-left
|
||||
h2
|
||||
= daysRunning
|
||||
.col-xs-6.text-right Days since we launched:
|
||||
.col-xs-6.text-left= daysRunning
|
||||
.row
|
||||
.col-xs-6.text-right
|
||||
h2 Nonprofit Projects:
|
||||
.col-xs-6.text-left
|
||||
h2
|
||||
=nonprofitProjects
|
||||
.col-xs-6.text-right Nonprofit Projects:
|
||||
.col-xs-6.text-left= nonprofitProjects
|
||||
|  
|
||||
a(href="https://trello.com/b/BA3xVpz9/nonprofit-projects") (view)
|
||||
.row
|
||||
.col-xs-6.text-right
|
||||
h2 Campers with at least...
|
||||
.col-xs-6
|
||||
.col-xs-6.text-right Open Issues:
|
||||
.col-xs-6.text-left= pulls
|
||||
|  
|
||||
a(href="https://github.com/freecodecamp/freecodecamp/issues") (view)
|
||||
.row
|
||||
.col-xs-6.text-right
|
||||
h2 3 Points:
|
||||
.col-xs-6.text-left
|
||||
h2
|
||||
= c3
|
||||
.col-xs-6.text-right Pull Requests:
|
||||
.col-xs-6.text-left= pulls
|
||||
|  
|
||||
a(href="https://github.com/freecodecamp/freecodecamp/pulls") (view)
|
||||
.row
|
||||
.col-xs-6.text-right
|
||||
h2 10 Points:
|
||||
.col-xs-6.text-left
|
||||
h2
|
||||
= c10
|
||||
.col-xs-6.text-right Campers with at least...
|
||||
.col-xs-4
|
||||
.row
|
||||
.col-xs-6.text-right
|
||||
h2 30 Points:
|
||||
.col-xs-6.text-left
|
||||
h2
|
||||
= c30
|
||||
.col-xs-6.text-right 3 Points:
|
||||
.col-xs-6.text-left= c3
|
||||
.row
|
||||
.col-xs-6.text-right
|
||||
h2 All 54 Points:
|
||||
.col-xs-6.text-left
|
||||
h2
|
||||
= all
|
||||
.col-xs-6.text-right 10 Points:
|
||||
.col-xs-6.text-left= c10
|
||||
.row
|
||||
.col-xs-6.text-right 30 Points:
|
||||
.col-xs-6.text-left= c30
|
||||
.row
|
||||
.col-xs-6.text-right All 54 Points:
|
||||
.col-xs-6.text-left= all
|
||||
.row
|
||||
.col-xs-6.text-right Star our project here:
|
||||
.col-xs-6.text-left.github-button-container
|
||||
html.
|
||||
<iframe src="http://ghbtns.com/github-btn.html?user=freecodecamp&repo=freecodecamp&type=watch&count=true&size=large" height="30" width="170" frameborder="0" scrolling="0" style="width:170px; height: 30px;" allowTransparency="true"></iframe>
|
@ -1,8 +1,47 @@
|
||||
extends ../layout
|
||||
extends ../layout-wide
|
||||
block content
|
||||
img.img-responsive.img-center(src='https://s3.amazonaws.com/freecodecamp/wide-social-banner.png')
|
||||
br
|
||||
a.btn.btn-big.btn-block.btn-primary.next-challenge-button(href="/challenges/") Take me to my next challenge
|
||||
br
|
||||
script.
|
||||
var challengeName = 'Learn to code'
|
||||
include ../partials/stats
|
||||
include ../partials/blog
|
||||
include ../partials/about
|
||||
.row
|
||||
.col-xs-12.col-sm-12.col-md-6
|
||||
include ../partials/faq
|
||||
.col-xs-12.col-sm-12.col-md-6
|
||||
.panel.panel-info
|
||||
.panel-heading.landing-panel-heading.text-center Stats
|
||||
.panel-body
|
||||
.landing-panel-body
|
||||
include ../partials/stats
|
||||
.panel.panel-info
|
||||
.panel-heading.landing-panel-heading.text-center Blog
|
||||
.panel-body
|
||||
.landing-panel-body.text-center
|
||||
include ../partials/blog
|
||||
.panel.panel-info
|
||||
.panel-heading.landing-panel-heading.text-center Tweets
|
||||
.panel-body
|
||||
.landing-panel-body.text-center
|
||||
a.twitter-timeline(data-dnt='true', href='https://twitter.com/FreeCodeCamp', data-widget-id='560847186548621312') Tweets by @FreeCodeCamp
|
||||
script.
|
||||
!function (d, s, id) {
|
||||
var js, fjs = d.getElementsByTagName(s)[0], p = /^http:/.test(d.location) ? 'http' : 'https';
|
||||
if (!d.getElementById(id)) {
|
||||
js = d.createElement(s);
|
||||
js.id = id;
|
||||
js.src = p + "://platform.twitter.com/widgets.js";
|
||||
fjs.parentNode.insertBefore(js, fjs);
|
||||
}
|
||||
}(document, "script", "twitter-wjs");
|
||||
.text-center
|
||||
html.
|
||||
<a class="twitter-follow-button"
|
||||
href="https://twitter.com/freecodecamp"
|
||||
data-show-count="true"
|
||||
data-lang="en">
|
||||
Follow @FreeCodeCamp
|
||||
</a>
|
||||
<script>window.twttr=(function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],t=window.twttr||{};if(d.getElementById(id))return;js=d.createElement(s);js.id=id;js.src="https://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);t._e=[];t.ready=function(f){t._e.push(f);};return t;}(document,"script","twitter-wjs"));</script>
|
||||
include ../partials/about
|
||||
|
Reference in New Issue
Block a user