chore(redirects): Migrate redirects and clean up server views
This commit is contained in:
@@ -1,20 +0,0 @@
|
||||
extends ./layout
|
||||
|
||||
block content
|
||||
.spacer
|
||||
.row
|
||||
.col-sm-6.col-sm-offset-3
|
||||
hr
|
||||
.text-center
|
||||
h1 404
|
||||
.row
|
||||
.col-sm-6.col-sm-offset-3
|
||||
.text-center
|
||||
h2 Ooops, we couldn't find that page.
|
||||
.spacer
|
||||
.row
|
||||
.col-sm-6.col-sm-offset-3
|
||||
.text-center
|
||||
a.btn.signup-btn.btn-block(href='/map') Head to the Map
|
||||
hr
|
||||
.spacer
|
@@ -1,121 +0,0 @@
|
||||
extends ../layout
|
||||
block content
|
||||
.row.flashMessage.negative-30
|
||||
.col-xs-12.col-sm-8.col-sm-offset-2.col-md-6.col-md-offset-3
|
||||
#flash-board.alert.fade.in(style='display: none;')
|
||||
button.close(type='button', data-dismiss='alert')
|
||||
i.fas.fa-times-circle#flash-close
|
||||
#flash-content
|
||||
.row
|
||||
.col-xs-12
|
||||
#accept-privacy-terms
|
||||
.row
|
||||
.text-center
|
||||
br
|
||||
br
|
||||
h3 Please review our updated privacy policy and the terms of service.
|
||||
br
|
||||
.row
|
||||
.col-sm-6.col-sm-offset-3
|
||||
form(method='POST', action='/update-privacy-terms')
|
||||
input(type='hidden', name='_csrf', value=_csrf)
|
||||
.checkbox
|
||||
label
|
||||
input(id='terms', name='privacy', type='checkbox')
|
||||
span.cr
|
||||
i.cr-icon.fa.fa-check
|
||||
| I accept the
|
||||
a(href='https://www.freecodecamp.org/terms' target='_blank') terms of service
|
||||
| (required).
|
||||
.checkbox
|
||||
label
|
||||
input(id='privacy', name='privacy', type='checkbox')
|
||||
span.cr
|
||||
i.cr-icon.fa.fa-check
|
||||
| I accept the
|
||||
a(href='https://www.freecodecamp.org/privacy' target='_blank') privacy policy
|
||||
| (required).
|
||||
.checkbox
|
||||
label
|
||||
input(id='quincyemails', name='quincyemails', type='checkbox')
|
||||
span.cr
|
||||
i.cr-icon.fa.fa-check
|
||||
| I want weekly emails from Quincy (freeCodeCamp.org's founder).
|
||||
.button-spacer
|
||||
button.btn.btn-primary.btn-lg.btn-block(id='submit-button', type='submit')
|
||||
.row
|
||||
.col-sm-6.col-sm-offset-3
|
||||
a.btn.btn-primary.btn-lg.btn-block(id='continue-button', href='/', style='display: none;')
|
||||
| Continue to freeCodeCamp
|
||||
|
||||
include ../homePartials/scripts
|
||||
script.
|
||||
$(document).ready(function() {
|
||||
var checkedBoxCount = 0;
|
||||
function disableContinueButtonForAgreement(isLaunched) {
|
||||
if (isLaunched) {
|
||||
$('#submit-button').prop('disabled', true).html(
|
||||
'<span style="color:#E0E0E0;">Submit<\/span>');
|
||||
return;
|
||||
}
|
||||
|
||||
if (!isLaunched && checkedBoxCount === 2){
|
||||
$('#submit-button').prop('disabled', false).html(
|
||||
'<span>Submit<\/span>');
|
||||
}
|
||||
}
|
||||
disableContinueButtonForAgreement(true);
|
||||
$('#terms').click(function() {
|
||||
if (this.checked) {
|
||||
checkedBoxCount++;
|
||||
disableContinueButtonForAgreement(false);
|
||||
} else {
|
||||
checkedBoxCount--;
|
||||
disableContinueButtonForAgreement(true);
|
||||
}
|
||||
});
|
||||
$('#privacy').click(function() {
|
||||
if (this.checked) {
|
||||
checkedBoxCount++;
|
||||
disableContinueButtonForAgreement(false);
|
||||
} else {
|
||||
checkedBoxCount--;
|
||||
disableContinueButtonForAgreement(true);
|
||||
}
|
||||
});
|
||||
$('form').submit(function(event){
|
||||
event.preventDefault();
|
||||
$('#flash-board').hide();
|
||||
var $form = $(event.target);
|
||||
$.ajax({
|
||||
type : 'POST',
|
||||
url : $form.attr('action'),
|
||||
data : $form.serialize(),
|
||||
dataType : 'json',
|
||||
encode : true,
|
||||
xhrFields : { withCredentials: true }
|
||||
})
|
||||
.fail(error => {
|
||||
if (error.responseText){
|
||||
var data = JSON.parse(error.responseText);
|
||||
if(data.message)
|
||||
$('#flash-content').html(data.message);
|
||||
$('#flash-board')
|
||||
.removeClass('alert-success')
|
||||
.addClass('alert-info')
|
||||
.fadeIn();
|
||||
}
|
||||
})
|
||||
.done(data =>{
|
||||
if(data && data.message){
|
||||
$('#flash-content').html(data.message);
|
||||
$('#flash-board')
|
||||
.removeClass('alert-info')
|
||||
.addClass('alert-success')
|
||||
.fadeIn();
|
||||
$('#accept-privacy-terms').hide();
|
||||
$('#continue-button').show();
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
@@ -1,17 +0,0 @@
|
||||
extends ../layout
|
||||
block content
|
||||
.text-center
|
||||
h2 Welcome to the freeCodeCamp beta.
|
||||
h3 We have disabled new sign ups on beta.
|
||||
.text-left.col-xs-12.col-sm-8.col-sm-offset-2.col-md-6.col-md-offset-3
|
||||
p You can try our new beta challenges, but your progress <bold>will not</bold> be saved. 
|
||||
a(href='/map') Click here to go to the beta challenges
|
||||
| .
|
||||
p Or you can return to our stable challenges, where your progress <bold>will</bold> be saved. 
|
||||
a(href='https://www.freecodecamp.org') Click here to go to the stable challenges
|
||||
| .
|
||||
p If you want to learn more about this beta, read our 
|
||||
a(href='https://forum.freecodecamp.org/t/frequently-asked-questions-about-the-freecodecamp-beta/134331') Frequently Asked Questions
|
||||
| .
|
||||
|
||||
p Happy coding!
|
@@ -1,28 +0,0 @@
|
||||
extends ../layout
|
||||
block content
|
||||
include ../partials/flyer
|
||||
#modal-dialog.modal
|
||||
.modal-dialog
|
||||
.modal-content
|
||||
.modal-header
|
||||
a.close(href='/settings', data-dismiss='modal', aria-hidden='true') ×
|
||||
h3 You don't really want to delete your account, do you?
|
||||
.modal-body
|
||||
p This will really delete all your data, including all your progress and brownie points.
|
||||
p We won't be able to recover any of it for you later, even if you change your mind.
|
||||
p If there's something we could do better, send us an email instead and we'll do our best:  
|
||||
a(href="mailto:team@freecodecamp.org") team@freecodecamp.org
|
||||
| .
|
||||
.modal-footer
|
||||
a.btn.btn-success.btn-block(href='/settings', data-dismiss='modal', aria-hidden='true')
|
||||
| Nevermind, I don't want to delete all of my progress
|
||||
.spacer
|
||||
form(action='/account/delete', method='POST')
|
||||
input(type='hidden', name='_csrf', value=_csrf)
|
||||
button.btn.btn-danger.btn-block(type='submit')
|
||||
| I am 100% sure I want to delete my account and all of my progress
|
||||
script.
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
const modal$ = document.getElementById('modal-dialog');
|
||||
modal$.classList.add('show');
|
||||
});
|
@@ -1,29 +0,0 @@
|
||||
extends ../layout
|
||||
block content
|
||||
#modal-dialog.modal
|
||||
.modal-dialog
|
||||
.modal-content
|
||||
.modal-header
|
||||
a.close(href='/settings', data-dismiss='modal', aria-hidden='true') ×
|
||||
h3 Do you want to report #{username}'s profile for abuse?
|
||||
.modal-body
|
||||
p We will notify the community moderators' team,
|
||||
| and a send copy of this report to your email:
|
||||
strong #{user.email}
|
||||
| . We may get back to you for more information, if required.
|
||||
.modal-footer
|
||||
form(action='/' + username +'/report-user/', method='POST')
|
||||
input(type='hidden', name='_csrf', value=_csrf)
|
||||
div
|
||||
textarea.modal-textarea(name='reportDescription', cols='40', rows='5')
|
||||
.spacer
|
||||
button.btn.btn-danger.btn-block(type='submit')
|
||||
| Yes, submit my report about this user's profile.
|
||||
.spacer
|
||||
a.btn.btn-success.btn-block(href='/settings', data-dismiss='modal', aria-hidden='true')
|
||||
| Nevermind, I don't want to report this user.
|
||||
script.
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
const modal$ = document.getElementById('modal-dialog');
|
||||
modal$.classList.add('show');
|
||||
});
|
@@ -1,25 +0,0 @@
|
||||
extends ../layout
|
||||
block content
|
||||
include ../partials/flyer
|
||||
#modal-dialog.modal
|
||||
.modal-dialog
|
||||
.modal-content
|
||||
.modal-header
|
||||
a.close(href='/settings', data-dismiss='modal', aria-hidden='true') ×
|
||||
h3 You don't really want to reset your progress, do you?
|
||||
.modal-body
|
||||
p This will really delete all of your progress and brownie points.
|
||||
p We won't be able to recover any of it for you later, even if you change your mind.
|
||||
.modal-footer
|
||||
a.btn.btn-success.btn-block(href='/settings', data-dismiss='modal', aria-hidden='true')
|
||||
| Nevermind, I don't want to delete all of my progress and brownie points
|
||||
.spacer
|
||||
form(action='/account/resetprogress', method='POST')
|
||||
input(type='hidden', name='_csrf', value=_csrf)
|
||||
button.btn.btn-danger.btn-block(type='submit')
|
||||
| I am 100% sure I want to reset all of my progress and brownie points
|
||||
script.
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
const modal$ = document.getElementById('modal-dialog');
|
||||
modal$.classList.add('show');
|
||||
});
|
@@ -1,188 +0,0 @@
|
||||
extends ../layout
|
||||
block content
|
||||
include ../partials/flyer
|
||||
.app-content.app-centered
|
||||
script.
|
||||
var challengeName = 'Profile View';
|
||||
if (user && user.username === username)
|
||||
.row
|
||||
.col-xs-12
|
||||
a.btn.btn-lg.btn-block.btn-primary.btn-link-social(href='/settings')
|
||||
| Update my settings
|
||||
.col-xs-12
|
||||
a.btn.btn-lg.btn-block.btn-primary.btn-link-social(href='/signout')
|
||||
| Sign me out of freeCodeCamp
|
||||
.col-xs-12
|
||||
a.btn.btn-lg.btn-block.btn-primary.btn-link-social(href='mailto:team@freecodecamp.org')
|
||||
| Email us at team@freecodecamp.org
|
||||
.spacer
|
||||
h1.text-center #{username}'s code portfolio
|
||||
hr
|
||||
.row
|
||||
.col-xs-12.col-sm-10.col-sm-offset-1.col-md-8.col-md-offset-2.text-center
|
||||
if picture
|
||||
img.img-center.img-responsive.public-profile-img.border-radius-5(src=picture)
|
||||
else
|
||||
img.img-center.img-responsive.public-profile-img.border-radius-5(src='https://s3.amazonaws.com/freecodecamp/camper-image-placeholder.png')
|
||||
h1.text-center.negative-5.profile-social-icons
|
||||
if (twitter)
|
||||
a.fa.fa-twitter-square.text-primary(title="@#{username}'s Twitter Profile", href='https://twitter.com/' + twitter, target='_blank')
|
||||
if (github)
|
||||
a.fa.fa-github-square.text-primary(title="@#{username}'s GitHub Profile", href=github, target='_blank')
|
||||
if (linkedin)
|
||||
a.fa.fa-linkedin-square.text-primary(title="@#{username}'s LinkedIn Profile", href=linkedin, target='_blank')
|
||||
h1.flat-top.wrappable= name
|
||||
h1.flat-top.wrappable= location
|
||||
p.flat-top.bio= bio
|
||||
h1.flat-top.text-primary= "[ " + (progressTimestamps.length) + " ]"
|
||||
if pledge
|
||||
.spacer
|
||||
h4
|
||||
| This camper has committed to giving $#{pledge.amount} to
|
||||
a(href='#{pledge.donateUrl}?ref=freecodecamp.org' target='_blank') #{pledge.displayName}
|
||||
| each month until they have completed their #{pledge.goal}.
|
||||
.spacer
|
||||
.row
|
||||
.col-xs-12.col-sm-10.col-sm-offset-1.col-md-8.col-md-offset-2
|
||||
if isFrontEndCert
|
||||
a.btn.btn-primary.btn-block(href='/' + username + '/front-end-certification') View My Front End Development Certification
|
||||
if isDataVisCert
|
||||
.button-spacer
|
||||
a.btn.btn-primary.btn-block(href='/' + username + '/data-visualization-certification') View My Data Visualization Certification
|
||||
if isBackEndCert
|
||||
.button-spacer
|
||||
a.btn.btn-primary.btn-block(href='/' + username + '/back-end-certification') View My Back End Development Certification
|
||||
if isRespWebDesignCert
|
||||
.button-spacer
|
||||
a.btn.btn-primary.btn-block(href='/' + username + '/responsive-web-design-certification') View My Responsive Web Design Certification
|
||||
if isFrontEndLibsCert
|
||||
.button-spacer
|
||||
a.btn.btn-primary.btn-block(href='/' + username + '/front-end-libraries-certification') View My Front End Libraries Certification
|
||||
if isJsAlgoDataStructCert
|
||||
.button-spacer
|
||||
a.btn.btn-primary.btn-block(href='/' + username + '/javascript-algorithms-data-structures-certification') View My JavaScript Algorithms Data Structures Certification
|
||||
if isApisMicroservicesCert
|
||||
.button-spacer
|
||||
a.btn.btn-primary.btn-block(href='/' + username + '/apis-microservices-certification') View My APIs Microservices Certification
|
||||
if isInfosecQaCert
|
||||
.button-spacer
|
||||
a.btn.btn-primary.btn-block(href='/' + username + '/information-security-quality-assurance-certification') View My Information Sequrity Quality Assurance Certification
|
||||
if (user && user.username != username)
|
||||
.button-spacer
|
||||
a.btn.btn-primary.btn-block(href='/' + username + '/report-user/') Report this user's profile for abuse
|
||||
.row
|
||||
.col-xs-12.text-center
|
||||
if (badges.coreTeam && badges.coreTeam.length)
|
||||
h4 Core Team #{badges.coreTeam.reverse().join(', ')}
|
||||
|
||||
.spacer
|
||||
.col-md-12
|
||||
#cal-heatmap.hidden-xs.hidden-sm.d3-centered
|
||||
script.
|
||||
$(document).ready(function () {
|
||||
var cal = new CalHeatMap();
|
||||
var calendar = !{JSON.stringify(calender)};
|
||||
var rectSelector = "#cal-heatmap > svg > svg.graph-legend > g > rect.r";
|
||||
var calLegendTitles = ["0 items", "1 item", "2 items", "3 or more items"]
|
||||
cal.init({
|
||||
itemSelector: "#cal-heatmap",
|
||||
domain: "month",
|
||||
subDomain: "x_day",
|
||||
domainGutter: 10,
|
||||
data: calendar,
|
||||
cellSize: 15,
|
||||
align: 'center',
|
||||
cellRadius: 3,
|
||||
cellPadding: 2,
|
||||
tooltip: true,
|
||||
range: 6,
|
||||
start: new Date().setDate(new Date().getDate() - 150),
|
||||
legendColors: ["#cccccc", "#215f1e"],
|
||||
legend: [1, 2, 3],
|
||||
label: {
|
||||
position: "top"
|
||||
}
|
||||
});
|
||||
calLegendTitles.forEach(function(title, i) {
|
||||
document.querySelector(rectSelector + (i + 1).toString() + '> title').innerHTML = title;
|
||||
});
|
||||
});
|
||||
.row
|
||||
.hidden-xs.col-sm-12.text-center
|
||||
.row.text-primary
|
||||
h4.col-sm-6.text-right Longest Streak: #{longestStreak} #{longestStreak === 1 ? ' day' : ' days'}
|
||||
h4.col-sm-6.text-left Current Streak: #{currentStreak} #{currentStreak === 1 ? ' day' : ' days'}
|
||||
|
||||
|
||||
if (user && user.username == username || !isLocked)
|
||||
if (projects .length > 0)
|
||||
.col-sm-12
|
||||
table.table.table-striped
|
||||
thead
|
||||
tr
|
||||
th.col-xs-5 Projects
|
||||
th.col-xs-2.hidden-xs Completed
|
||||
th.col-xs-2.hidden-xs Last Updated
|
||||
th.col-xs-2.hidden-xs Link
|
||||
for challenge in projects
|
||||
tr
|
||||
td.col-xs-5.hidden-xs
|
||||
a(href='/challenges/#{challenge.block}/#{challenge.dashedName}', target='_blank')= challenge.name
|
||||
td.col-xs-2.hidden-xs= challenge.completedDate ? challenge.completedDate : 'Not Available'
|
||||
td.col-xs-2.hidden-xs= challenge.lastUpdated ? challenge.lastUpdated : ''
|
||||
td.col-xs-2.hidden-xs
|
||||
a(href=challenge.solution, target='_blank') View project
|
||||
td.col-xs-12.visible-xs
|
||||
a(href=challenge.solution, target='_blank')= challenge.name
|
||||
if (algorithms.length > 0)
|
||||
.col-sm-12
|
||||
table.table.table-striped
|
||||
thead
|
||||
tr
|
||||
th.col-xs-5 Algorithms
|
||||
th.col-xs-2.hidden-xs Completed
|
||||
th.col-xs-2.hidden-xs Last Updated
|
||||
th.col-xs-2.hidden-xs Solution
|
||||
for challenge in algorithms
|
||||
tr
|
||||
td.col-xs-5.hidden-xs= challenge.name
|
||||
td.col-xs-2.hidden-xs= challenge.completedDate ? challenge.completedDate : 'Not Available'
|
||||
td.col-xs-2.hidden-xs= challenge.lastUpdated ? challenge.lastUpdated : ''
|
||||
td.col-xs-2.hidden-xs
|
||||
if (challenge.solution)
|
||||
a(href='/challenges/#{challenge.block}/#{challenge.dashedName}?solution=#{encodeURIComponent(encodeFcc(challenge.solution))}', target='_blank') View solution
|
||||
else
|
||||
a(href='/challenges/#{challenge.block}/#{challenge.dashedName}') View this challenge
|
||||
td.col-xs-12.visible-xs
|
||||
if (challenge.solution)
|
||||
a(href='/challenges/#{challenge.block}/#{challenge.dashedName}?solution=#{encodeURIComponent(encodeFcc(challenge.solution))}', target='_blank')= challenge.name
|
||||
else
|
||||
a(href='/challenges/#{challenge.block}/#{challenge.dashedName}')= challenge.name
|
||||
if (challenges.length > 0)
|
||||
.col-sm-12
|
||||
table.table.table-striped
|
||||
thead
|
||||
tr
|
||||
th.col-xs-5 Challenges
|
||||
th.col-xs-2.hidden-xs Completed
|
||||
th.col-xs-2.hidden-xs Last Updated
|
||||
th.col-xs-2.hidden-xs Solution
|
||||
for challenge in challenges
|
||||
tr
|
||||
td.col-xs-5.hidden-xs= challenge.name
|
||||
td.col-xs-2.hidden-xs= challenge.completedDate ? challenge.completedDate : 'Not Available'
|
||||
td.col-xs-2.hidden-xs= challenge.lastUpdated ? challenge.lastUpdated : ''
|
||||
td.col-xs-2.hidden-xs
|
||||
if (challenge.solution && challenge.name)
|
||||
a(href='/challenges/#{challenge.block}/#{challenge.dashedName}?solution=#{encodeURIComponent(encodeFcc(challenge.solution))}', target='_blank') View solution
|
||||
else if (challenge.name)
|
||||
a(href='/challenges/#{challenge.block}/#{challenge.dashedName}') View this challenge
|
||||
else
|
||||
span N/A
|
||||
td.col-xs-12.visible-xs
|
||||
if (challenge.solution && challenge.name)
|
||||
a(href='/challenges/#{challenge.block}/#{challenge.dashedName}?solution=#{encodeURIComponent(encodeFcc(challenge.solution))}', target='_blank')= challenge.name
|
||||
else if (challenge.name)
|
||||
a(href='/challenges/#{challenge.block}/#{challenge.dashedName}')= challenge.name
|
||||
else
|
||||
span N/A
|
@@ -1,57 +0,0 @@
|
||||
extends ../layout
|
||||
block content
|
||||
.row.flashMessage.negative-30
|
||||
.col-xs-12.col-sm-8.col-sm-offset-2.col-md-6.col-md-offset-3
|
||||
#flash-board.alert.fade.in(style='display: none;')
|
||||
button.close(type='button', data-dismiss='alert')
|
||||
i.fas.fa-times-circle#flash-close
|
||||
#flash-content
|
||||
.container
|
||||
h2.text-center Update your email address here:
|
||||
form.form-horizontal.update-email(method='POST', action='/update-my-email', name="updateEmailForm")
|
||||
.row
|
||||
.col-sm-6.col-sm-offset-3
|
||||
input(type='hidden', name='_csrf', value=_csrf)
|
||||
.form-group
|
||||
input.input-lg.form-control(type='email', name='email', id='email', value=user.email || '', placeholder=user.email || 'Enter your new email', autofocus, required, autocomplete="off")
|
||||
.form-group
|
||||
button.btn.btn-lg.btn-primary.btn-block(type='submit')= !user.email || user.emailVerified ? 'Update my Email' : 'Verify Email'
|
||||
a.btn.btn-lg.btn-block.btn-primary.btn-link-social(href='/signout')
|
||||
| Sign out
|
||||
|
||||
script.
|
||||
$(document).ready(function() {
|
||||
$('form').submit(function(event){
|
||||
event.preventDefault();
|
||||
$('#flash-board').hide();
|
||||
var $form = $(event.target);
|
||||
$.ajax({
|
||||
type : 'POST',
|
||||
url : $form.attr('action'),
|
||||
data : $form.serialize(),
|
||||
dataType : 'json',
|
||||
encode : true,
|
||||
xhrFields : { withCredentials: true }
|
||||
})
|
||||
.fail(error => {
|
||||
if (error.responseText){
|
||||
var data = JSON.parse(error.responseText);
|
||||
if(data.message)
|
||||
$('#flash-content').html(data.message);
|
||||
$('#flash-board')
|
||||
.removeClass('alert-success')
|
||||
.addClass('alert-info')
|
||||
.fadeIn();
|
||||
}
|
||||
})
|
||||
.done(data =>{
|
||||
if(data && data.message){
|
||||
$('#flash-content').html(data.message);
|
||||
$('#flash-board')
|
||||
.removeClass('alert-info')
|
||||
.addClass('alert-success')
|
||||
.fadeIn();
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
@@ -1,58 +0,0 @@
|
||||
doctype html
|
||||
head
|
||||
title!= errorTitle
|
||||
style.
|
||||
* {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
outline: 0;
|
||||
}
|
||||
|
||||
body {
|
||||
padding: 80px 100px;
|
||||
background: #ECE9E9 -webkit-gradient(linear, 0% 0%, 0% 100%, from(#fff), to(#ECE9E9));
|
||||
background: #ECE9E9 -moz-linear-gradient(top, #fff, #ECE9E9);
|
||||
background-repeat: no-repeat;
|
||||
color: #555;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
}
|
||||
h1, h2 {
|
||||
font-size: 22px;
|
||||
color: #343434;
|
||||
}
|
||||
h1 em, h2 em {
|
||||
padding: 0 5px;
|
||||
font-weight: normal;
|
||||
}
|
||||
h1 {
|
||||
font-size: 60px;
|
||||
}
|
||||
h2 {
|
||||
margin-top: 10px;
|
||||
}
|
||||
ul li {
|
||||
list-style: none;
|
||||
}
|
||||
#trace {
|
||||
margin-top: 10px;
|
||||
margin-left: 60px;
|
||||
}
|
||||
body
|
||||
#wrapper
|
||||
h1!= title
|
||||
h2
|
||||
em!= status
|
||||
| #{errorTitle}
|
||||
h2
|
||||
em User Message:
|
||||
| #{message}
|
||||
h2
|
||||
em Type:
|
||||
| #{type}
|
||||
h2
|
||||
em redirect to:
|
||||
a(href=redirectTo) #{redirectTo}
|
||||
h2
|
||||
em stack trace:
|
||||
ul#trace!= stack
|
||||
|
@@ -1,14 +0,0 @@
|
||||
script.
|
||||
$(document).ready(function getActiveUsers() {
|
||||
setInterval(function getActiveUsersInterval() {
|
||||
$.ajax({
|
||||
type : 'GET',
|
||||
url : '/api/about/get-active-users',
|
||||
})
|
||||
.done(function({ activeUsers }) {
|
||||
document.getElementById('active-user-count').innerHTML = `
|
||||
<h3><span class='green-text'>${activeUsers}</span> people are using freeCodeCamp right now</h3>
|
||||
`;
|
||||
})
|
||||
}, 2000)
|
||||
})
|
@@ -1,4 +0,0 @@
|
||||
#active-user-count(style='display:none;')
|
||||
h3
|
||||
span.green-text=activeUsers
|
||||
| people are using freeCodeCamp right now
|
@@ -1,18 +0,0 @@
|
||||
.row
|
||||
.col-xs-12.col-sm-8.col-sm-offset-2
|
||||
h2 News Feed
|
||||
ul.list-group
|
||||
each item in feed
|
||||
li.list-group-item
|
||||
a(href=item.link)
|
||||
h3=item.title
|
||||
div !{item.extract}
|
||||
.spacer
|
||||
.row
|
||||
.col-xs-12.col-sm-8.col-sm-offset-2
|
||||
.more-button-container
|
||||
div
|
||||
button.btn.btn-primary.btn-lg(href='https://medium.freecodecamp.org') More Articles
|
||||
div
|
||||
button.btn.btn-primary.btn-lg(href='https://freecodecamp.libsyn.com/') More Podcasts
|
||||
|
@@ -1,7 +0,0 @@
|
||||
.row.quote-partial
|
||||
.col-xs-12.col-sm-10.col-sm-offset-1
|
||||
blockquote.blockquote
|
||||
span
|
||||
q=quote
|
||||
.spacer
|
||||
footer.quote-author=author
|
@@ -1,3 +0,0 @@
|
||||
script(src='https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js')
|
||||
script(src='https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/js/bootstrap.min.js')
|
||||
// include activeUsersScript
|
@@ -1,35 +0,0 @@
|
||||
.row
|
||||
.col-xs-12.col-sm-8.col-sm-offset-2
|
||||
p.stats
|
||||
| You have completed
|
||||
strong
|
||||
span.green-text=completedChallengeCount
|
||||
| of
|
||||
strong
|
||||
span.green-text=challengeCount
|
||||
| coding challenges.
|
||||
p.stats
|
||||
| You have built
|
||||
strong
|
||||
span.green-text=completedProjectCount
|
||||
| out of
|
||||
strong
|
||||
span.green-text 30
|
||||
| projects.
|
||||
if !!completedLegacyCertCount
|
||||
p.stats
|
||||
| You have earned
|
||||
strong
|
||||
span.green-text=completedLegacyCertCount
|
||||
| out of
|
||||
strong
|
||||
span.green-text 3
|
||||
| legacy certifications.
|
||||
p.stats
|
||||
| You have earned
|
||||
strong
|
||||
span.green-text=completedCertCount
|
||||
| out of
|
||||
strong
|
||||
span.green-text 6
|
||||
| certifications.
|
@@ -1,11 +0,0 @@
|
||||
doctype html
|
||||
html(lang='en')
|
||||
head
|
||||
if title
|
||||
title= title
|
||||
else
|
||||
title freeCodeCamp
|
||||
include partials/react-stylesheets
|
||||
body
|
||||
#news-app-mount!= markup
|
||||
script(src=cacheBreaker(rev('/js', 'news.js')))
|
@@ -1,26 +0,0 @@
|
||||
doctype html
|
||||
html(lang='en').full-size
|
||||
head
|
||||
if title
|
||||
title= title
|
||||
else
|
||||
title freeCodeCamp
|
||||
include partials/react-stylesheets
|
||||
body.full-size
|
||||
#fcc.full-size!= markup
|
||||
script!= state
|
||||
script.
|
||||
window.webpackManifest = !{JSON.stringify(chunkManifest || {})};
|
||||
(function setTheme() {
|
||||
let fccTheme;
|
||||
try {
|
||||
fccTheme = JSON.parse(localStorage.getItem('fcc-theme'));
|
||||
if (fccTheme && fccTheme === 'night') {
|
||||
document.body.classList.add('night');
|
||||
}
|
||||
}
|
||||
catch(e) {
|
||||
fccTheme = null;
|
||||
}
|
||||
})();
|
||||
script(src=cacheBreaker(rev('/js', 'client.js')))
|
@@ -1,16 +0,0 @@
|
||||
doctype html
|
||||
html(lang='en')
|
||||
head
|
||||
include partials/meta
|
||||
include partials/stylesheets
|
||||
if showAside
|
||||
body.map-aside-body(class=theme !== 'default' ? theme : '')
|
||||
include partials/scripts
|
||||
block content
|
||||
else
|
||||
body.no-top-and-bottom-margins(class=theme !== 'default' ? theme : '')
|
||||
include partials/scripts
|
||||
include partials/navbar
|
||||
include partials/flash
|
||||
block content
|
||||
include partials/footer
|
@@ -1,12 +0,0 @@
|
||||
doctype html
|
||||
html(lang='en')
|
||||
head
|
||||
include partials/meta
|
||||
include partials/stylesheets
|
||||
body.main-container(class=theme !== 'default' ? theme : '')
|
||||
include partials/scripts
|
||||
include partials/navbar
|
||||
include partials/flash
|
||||
.container
|
||||
block content
|
||||
include partials/footer
|
@@ -1,90 +0,0 @@
|
||||
extends layout
|
||||
block content
|
||||
.text-center
|
||||
.row
|
||||
h1.landing-heading Learn to code for free.
|
||||
.big-break
|
||||
include homePartials/activeUsersView
|
||||
.big-break
|
||||
.big-break
|
||||
.col-xs-12.col-sm-12.col-md-4
|
||||
img.img-responsive.landing-icon.img-center(src= 'https://s3.amazonaws.com/freecodecamp/landing-icon-community.svg', alt='Get great references and connections to start your software engineer career')
|
||||
p.large-p Join a supportive community of millions of coders.
|
||||
|
||||
.col-xs-12.col-sm-12.col-md-4
|
||||
img.img-responsive.landing-icon.img-center(src= 'https://s3.amazonaws.com/freecodecamp/landing-icon-certificate.svg', alt='Help nonprofits with bro bono code projects')
|
||||
p.large-p Build projects and earn free certifications.
|
||||
|
||||
.col-xs-12.col-sm-12.col-md-4
|
||||
img.img-responsive.landing-icon.img-center(src= 'https://s3.amazonaws.com/freecodecamp/landing-icon-experience.svg', alt='Get hired as a developer and start your software engineer career')
|
||||
p.large-p Get experience by coding for nonprofits.
|
||||
|
||||
.big-break
|
||||
.big-break
|
||||
.row
|
||||
.col-xs-12.col-sm-8.col-sm-offset-2
|
||||
a.btn.btn-cta.signup-btn.btn-block(href="/signin") Start coding (it's free)
|
||||
.spacer
|
||||
h2 As featured in:
|
||||
img.img-center.img-responsive(src='https://s3.amazonaws.com/freecodecamp/as-seen-on.png')
|
||||
.spacer
|
||||
hr
|
||||
.spacer
|
||||
h2 Launch your developer career
|
||||
.spacer
|
||||
.row
|
||||
.col-xs-12.col-sm-12.col-md-4
|
||||
img.img-responsive.testimonial-image.img-center(src="https://i.imgur.com/nsvNixW.jpg", alt="Meta's testimonial image")
|
||||
p.testimonial-copy Through freeCodeCamp, I built a robust and highly functional web app for a nonprofit. This led me to getting a fantastic job.
|
||||
h3 - Meta Hirschl
|
||||
.col-xs-12.col-sm-12.col-md-4
|
||||
img.img-responsive.testimonial-image.img-center(src="https://i.imgur.com/QPpjPac.jpg", alt="Brian's testimonial image")
|
||||
p.testimonial-copy freeCodeCamp is a great way for disabled veterans like me to retrain. I'm already receiving software engineering job offers.
|
||||
h3 - Brian Grant
|
||||
.col-xs-12.col-sm-12.col-md-4
|
||||
img.img-responsive.testimonial-image.img-center(src="https://i.imgur.com/wjlDigg.jpg", alt="Maxim Orlov's testimonial image")
|
||||
p.testimonial-copy I joined freeCodeCamp with zero knowledge of web development. 6 months later, I landed my first job as a back end engineer.
|
||||
h3 - Maxim Orlov
|
||||
.spacer
|
||||
hr
|
||||
.spacer
|
||||
h2 Learn powerful skills
|
||||
.spacer
|
||||
.row
|
||||
.text-center.negative-35
|
||||
.col-xs-12.col-sm-6.col-md-3
|
||||
.landing-skill-icon.fab.fa-html5.font-awesome-padding
|
||||
h2.black-text HTML5
|
||||
.col-xs-12.col-sm-6.col-md-3
|
||||
.landing-skill-icon.fab.fa-css3-alt.font-awesome-padding
|
||||
h2.black-text CSS3
|
||||
.col-xs-12.col-sm-6.col-md-3
|
||||
.landing-skill-icon.fab.fa-js.font-awesome-padding
|
||||
h2.black-text JavaScript
|
||||
.col-xs-12.col-sm-6.col-md-3
|
||||
.landing-skill-icon.fas.fa-database.font-awesome-padding
|
||||
h2.black-text Databases
|
||||
.col-xs-12.col-sm-6.col-md-3
|
||||
.landing-skill-icon.fab.fa-github.font-awesome-padding
|
||||
h2.black-text Git & GitHub
|
||||
.col-xs-12.col-sm-6.col-md-3
|
||||
.landing-skill-icon.fab.fa-node-js.font-awesome-padding
|
||||
h2.black-text Node.js
|
||||
.col-xs-12.col-sm-6.col-md-3
|
||||
.landing-skill-icon.fab.fa-react.font-awesome-padding
|
||||
h2.black-text React.js
|
||||
.col-xs-12.col-sm-6.col-md-3
|
||||
.landing-skill-icon.custom-landing-skill-icon
|
||||
img(src='https://s3.amazonaws.com/freecodecamp/d3-logo.svg')
|
||||
h2.black-text D3.js
|
||||
.big-break
|
||||
.row
|
||||
.col-xs-12.col-sm-8.col-sm-offset-2
|
||||
a.btn.btn-cta.signup-btn.btn-block(href="/signin") Start coding (it's free)
|
||||
.big-break
|
||||
.big-break
|
||||
hr
|
||||
.big-break
|
||||
.big-break
|
||||
.big-break
|
||||
include homePartials/scripts
|
@@ -1,21 +0,0 @@
|
||||
.container
|
||||
.row.flashMessage
|
||||
.col-xs-12.col-sm-8.col-sm-offset-2.col-md-6.col-md-offset-3
|
||||
if messages.danger
|
||||
.alert.alert-danger.fade.in
|
||||
button.close(type='button', data-dismiss='alert')
|
||||
i.fas.fa-times-circle
|
||||
for danger in messages.danger
|
||||
div!= typeof danger === 'string' ? danger : danger.msg
|
||||
if messages.info
|
||||
.alert.alert-info.fade.in
|
||||
button.close(type='button', data-dismiss='alert')
|
||||
i.fas.fa-times-circle
|
||||
for info in messages.info
|
||||
div!= typeof info === 'string' ? info : info.msg
|
||||
if messages.success
|
||||
.alert.alert-success.fade.in
|
||||
button.close(type='button', data-dismiss='alert')
|
||||
i.fas.fa-times-circle
|
||||
for success in messages.success
|
||||
div!= typeof success === 'string' ? success : success.msg
|
@@ -1,8 +0,0 @@
|
||||
if (user && user.points > 15)
|
||||
.container
|
||||
.row.flashMessage.negative-30
|
||||
.col-xs-12
|
||||
#bill-board.alert.alert-info.fade.in(style='display: none;')
|
||||
button.close(type='button', data-dismiss='alert', id='dismiss-bill')
|
||||
i.fas.fa-times-circle
|
||||
#bill-content
|
@@ -1,2 +0,0 @@
|
||||
// scripts should be moved here
|
||||
|
@@ -1,60 +0,0 @@
|
||||
meta(charset='utf-8')
|
||||
meta(http-equiv='X-UA-Compatible', content='IE=edge')
|
||||
meta(name='viewport', content='width=device-width, initial-scale=1.0')
|
||||
title #{title} | freeCodeCamp
|
||||
link(rel='canonical', href='https://www.freecodecamp.org')
|
||||
meta(charset='utf-8')
|
||||
meta(http-equiv='X-UA-Compatible', content='IE=edge')
|
||||
meta(name='viewport', content='width=device-width, initial-scale=1.0')
|
||||
meta(name='csrf-token', content=_csrf)
|
||||
meta(property="og:title", content="Learn to code with free online courses, programming projects, and interview preparation for developer jobs.")
|
||||
meta(property="og:site_name", content="freeCodeCamp")
|
||||
meta(name='twitter:widgets:csp', content='on')
|
||||
meta(name='p:domain_verify', content='d0bc047a482c03c24f1168004c2a216a')
|
||||
meta(property="og:url", content="https://www.freecodecamp.org")
|
||||
meta(property="og:description", content="Learn to code with free online courses, programming projects, and interview preparation for developer jobs.")
|
||||
meta(property="og:image", content="https://s3.amazonaws.com/freecodecamp/curriculum-diagram-full.jpg")
|
||||
meta(property="og:type", content="article")
|
||||
meta(property="article:publisher", content="https://www.facebook.com/freecodecamp")
|
||||
meta(property="article:section", content="Responsive")
|
||||
link(rel="publisher", href="https://plus.google.com/+Freecodecamp")
|
||||
link(rel="author", href="https://plus.google.com/+Freecodecamp")
|
||||
meta(name="description", content="Learn to code with free online courses, programming projects, and interview preparation for developer jobs.")
|
||||
meta(name="twitter:creator", content="@freecodecamp")
|
||||
meta(name="twitter:url", content="http://www.freecodecamp.org")
|
||||
meta(name="twitter:site", content="@freecodecamp")
|
||||
meta(name="twitter:card", content="summary_large_image")
|
||||
meta(name="twitter:image:src", content="https://s3.amazonaws.com/freecodecamp/curriculum-diagram-full.jpg")
|
||||
meta(name="twitter:title", content="Learn to code for free")
|
||||
meta(name="twitter:description", content="Learn to code with free online courses, programming projects, and interview preparation for developer jobs.")
|
||||
meta(content="a40ee5d5dba3bb091ad783ebd2b1383f", name="p:domain_verify")
|
||||
meta(name="msapplication-TileColor", content="#FFFFFF")
|
||||
meta(name="msapplication-TileImage", content="/")
|
||||
link(rel="android-chrome", sizes="144x144" href="https://s3.amazonaws.com/freecodecamp/favicons/android-chrome-144x144.png")
|
||||
link(rel="android-chrome", sizes="192x192" href="https://s3.amazonaws.com/freecodecamp/favicons/android-chrome-192x192.png")
|
||||
link(rel="android-chrome", sizes="36x36" href="https://s3.amazonaws.com/freecodecamp/favicons/android-chrome-36x36.png")
|
||||
link(rel="android-chrome", sizes="48x48" href="https://s3.amazonaws.com/freecodecamp/favicons/android-chrome-48x48.png")
|
||||
link(rel="android-chrome", sizes="72x72" href="https://s3.amazonaws.com/freecodecamp/favicons/android-chrome-72x72.png")
|
||||
link(rel="android-chrome", sizes="96x96" href="https://s3.amazonaws.com/freecodecamp/favicons/android-chrome-96x96.png")
|
||||
link(rel="android-chrome-manifest", href="https://s3.amazonaws.com/freecodecamp/favicons/android-chrome-manifest.json")
|
||||
link(rel="apple-touch-icon", sizes="114x114", href="https://s3.amazonaws.com/freecodecamp/favicons/apple-touch-icon-114x114.png")
|
||||
link(rel="apple-touch-icon", sizes="120x120", href="https://s3.amazonaws.com/freecodecamp/favicons/apple-touch-icon-120x120.png")
|
||||
link(rel="apple-touch-icon", sizes="144x144", href="https://s3.amazonaws.com/freecodecamp/favicons/apple-touch-icon-144x144.png")
|
||||
link(rel="apple-touch-icon", sizes="152x152", href="https://s3.amazonaws.com/freecodecamp/favicons/apple-touch-icon-152x152.png")
|
||||
link(rel="apple-touch-icon", sizes="180x180", href="https://s3.amazonaws.com/freecodecamp/favicons/apple-touch-icon-180x180.png")
|
||||
link(rel="apple-touch-icon", sizes="57x57", href="https://s3.amazonaws.com/freecodecamp/favicons/apple-touch-icon-57x57.png")
|
||||
link(rel="apple-touch-icon", sizes="60x60", href="https://s3.amazonaws.com/freecodecamp/favicons/apple-touch-icon-60x60.png")
|
||||
link(rel="apple-touch-icon", sizes="72x72", href="https://s3.amazonaws.com/freecodecamp/favicons/apple-touch-icon-72x72.png")
|
||||
link(rel="apple-touch-icon", sizes="76x76", href="https://s3.amazonaws.com/freecodecamp/favicons/apple-touch-icon-76x76.png")
|
||||
link(rel="apple-touch-icon-precomposed", href="https://s3.amazonaws.com/freecodecamp/favicons/apple-touch-icon-precomposed.png")
|
||||
link(rel="apple-touch-icon", href="https://s3.amazonaws.com/freecodecamp/favicons/apple-touch-icon.png")
|
||||
link(rel="favicon", sizes="16x16", href="https://s3.amazonaws.com/freecodecamp/favicons/favicon-16x16.png")
|
||||
link(rel="favicon", sizes="32x32", href="https://s3.amazonaws.com/freecodecamp/favicons/favicon-32x32.png")
|
||||
link(rel="favicon", sizes="96x96", href="https://s3.amazonaws.com/freecodecamp/favicons/favicon-96x96.png")
|
||||
link(rel="mstile", sizes="144x144", href="https://s3.amazonaws.com/freecodecamp/favicons/mstile-144x144.png")
|
||||
link(rel="mstile", sizes="150x150", href="https://s3.amazonaws.com/freecodecamp/favicons/mstile-150x150.png")
|
||||
link(rel="mstile", sizes="310x310", href="https://s3.amazonaws.com/freecodecamp/favicons/mstile-310x310.png")
|
||||
link(rel="mstile", sizes="310x150", href="https://s3.amazonaws.com/freecodecamp/favicons/mstile-310x150.png")
|
||||
link(rel="mstile", sizes="70x70", href="https://s3.amazonaws.com/freecodecamp/favicons/mstile-70x70.png")
|
||||
link(rel="favicon", href="https://s3.amazonaws.com/freecodecamp/favicons/favicon.ico")
|
||||
link(rel='shortcut icon', href='//s3.amazonaws.com/freecodecamp/favicons/favicon.ico')
|
@@ -1,22 +0,0 @@
|
||||
nav.navbar.navbar-default.navbar-static-top.nav-height
|
||||
|
||||
.navbar-header
|
||||
button.hamburger.navbar-toggle(type='button', data-toggle='collapse', data-target='.navbar-collapse')
|
||||
.col-xs-12
|
||||
span.hamburger-text Menu
|
||||
a.navbar-brand(href='/')
|
||||
img.img-responsive.nav-logo(src='https://s3.amazonaws.com/freecodecamp/freecodecamp_logo.svg', alt='learn to code javascript at freeCodeCamp logo')
|
||||
.collapse.navbar-collapse
|
||||
ul.nav.navbar-nav.navbar-right.hamburger-dropdown
|
||||
li
|
||||
a(href='https://learn.freecodecamp.org' rel='noopener') Curriculum
|
||||
li
|
||||
a(href='https://forum.freecodecamp.org', target='_blank' rel='noopener') Forum
|
||||
li
|
||||
a(href='/news', rel='noopener') News
|
||||
if !user
|
||||
li
|
||||
a(href='/signin') Sign in
|
||||
else
|
||||
li
|
||||
a(href='/settings') Settings
|
@@ -1,18 +0,0 @@
|
||||
link(rel='stylesheet', type='text/css' href='/css/lato.css')
|
||||
link(rel='stylesheet', type='text/css' href='/css/ubuntu.css')
|
||||
link(rel='stylesheet', href='https://use.fontawesome.com/releases/v5.2.0/css/all.css' integrity='sha384-hWVjflwFxL6sNzntih27bfxkr27PmbbK/iSvJ+a4+0owXq79v+lsFkW54bOGbiDQ' crossorigin='anonymous')
|
||||
link(rel='stylesheet', href=cacheBreaker(rev('/css', 'main.css')))
|
||||
|
||||
include meta
|
||||
meta(charset='utf-8')
|
||||
meta(http-equiv='X-UA-Compatible', content='IE=edge')
|
||||
meta(name='viewport', content='width=device-width, initial-scale=1.0')
|
||||
meta(name='csrf-token', content=_csrf)
|
||||
script.
|
||||
(function(i,s,o,g,r,a,m){ i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
|
||||
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
|
||||
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
|
||||
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
|
||||
ga('create', 'UA-55446531-1', 'auto');
|
||||
ga('require', 'displayfeatures');
|
||||
ga('send', 'pageview');
|
@@ -1,18 +0,0 @@
|
||||
script.
|
||||
(function(i,s,o,g,r,a,m){ i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
|
||||
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
|
||||
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
|
||||
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
|
||||
ga('create', 'UA-55446531-1', 'auto');
|
||||
ga('require', 'displayfeatures');
|
||||
ga('send', 'pageview');
|
||||
// Leave the below lines alone!
|
||||
script.
|
||||
(function(global) {
|
||||
global.main = global.main || {};
|
||||
global.main.isLoggedIn = !{JSON.stringify(!!user)};
|
||||
global.main.userId = !{JSON.stringify(user && user.id || false)};
|
||||
}(window))
|
||||
script(defer, src=rev('/js/lib/fontawesome', 'fa-brands.min.js'))
|
||||
script(defer, src=rev('/js/lib/fontawesome', 'fa-solid.min.js'))
|
||||
script(src=rev('/js/lib/fontawesome', 'fontawesome.min.js'))
|
@@ -1,4 +0,0 @@
|
||||
link(rel='stylesheet', type='text/css' href='/css/lato.css')
|
||||
link(rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/cal-heatmap/3.5.2/cal-heatmap.css")
|
||||
link(rel='stylesheet', href='https://cdnjs.cloudflare.com/ajax/libs/lightbox2/2.8.2/css/lightbox.min.css')
|
||||
link(rel='stylesheet', href=cacheBreaker(rev('/css', 'main.css')))
|
@@ -1,13 +0,0 @@
|
||||
extends ../layout
|
||||
block content
|
||||
.col-xs-12.col-sm-8.col-sm-offset-2.col-md-6.col-md-offset-3
|
||||
html.
|
||||
<h2 class='text-center'></a>Academic Honesty Policy</h2>
|
||||
<hr>
|
||||
<p>Before we issue our verified certification to a camper, he or she must accept our Academic Honesty Pledge, which reads:</p>
|
||||
<p>"I understand that plagiarism means copying someone else’s work and presenting the work as if it were my own, without clearly attributing the original author.</p>
|
||||
<p>"I understand that plagiarism is an act of intellectual dishonesty, and that people usually get kicked out of university or fired from their jobs if they get caught plagiarizing.</p>
|
||||
<p>"Aside from using open source libraries such as jQuery and Bootstrap, and short snippets of code which are clearly attributed to their original author, 100% of the code in my projects was written by me, or along with another camper with whom I was pair programming in real time.</p>
|
||||
<p>"I pledge that I did not plagiarize any of my freeCodeCamp work. I understand that freeCodeCamp’s team will audit my projects to confirm this."</p>
|
||||
<p>In the situations where we discover instances of unambiguous plagiarism, we will replace the camper in question’s certification with a message that "Upon review, this account has been flagged for academic dishonesty."</p>
|
||||
<p>As an academic institution that grants achievement-based certifications, we take academic honesty very seriously. If you have any questions about this policy, or suspect that someone has violated it, you can email <a href="mailto:team@freecodecamp.org">team@freecodecamp.org</a> and we will investigate.</p>
|
@@ -1,3 +0,0 @@
|
||||
extends ../layout
|
||||
block content
|
||||
iframe(src="https://docs.google.com/forms/d/1MtQDh8E1Nvkg5jdOucS4LSyk6oMQrN8XTwmQGtgJPAQ/viewform?embedded=true", frameborder="0", marginheight="0", marginwidth="0", width='102%', height=2550, scrolling="no") Loading...
|
@@ -1,116 +0,0 @@
|
||||
extends ../layout
|
||||
block content
|
||||
.text-center
|
||||
h1.landing-heading We will build software for your nonprofit. Pro Bono.
|
||||
.big-spacer
|
||||
.row
|
||||
.col-xs-12.col-sm-12.col-md-4
|
||||
img.img-responsive.landing-icon.img-center(src= 'https://s3.amazonaws.com/freecodecamp/landingIcons_portfolio.svg.gz', alt='Image of a briefcase')
|
||||
p.large-p Apply for a Code Grant.
|
||||
.col-xs-12.col-sm-12.col-md-4
|
||||
img.img-responsive.landing-icon.img-center(src= 'https://s3.amazonaws.com/freecodecamp/landingIcons_nonprofits.svg.gz', alt='Image of people putting their hands together in a huddle')
|
||||
p.large-p We'll provide volunteer developers and a project manager.
|
||||
.col-xs-12.col-sm-12.col-md-4
|
||||
img.img-responsive.landing-icon.img-center(src= 'https://s3.amazonaws.com/freecodecamp/landingIcons_connect.svg.gz', alt='image of two people high-fiving')
|
||||
p.large-p We'll collaborate with you to build the tool you need.
|
||||
.spacer
|
||||
h2 As featured in:
|
||||
img.img-center.img-responsive(src='https://s3.amazonaws.com/freecodecamp/as-seen-on.png')
|
||||
hr
|
||||
.spacer
|
||||
h1 What nonprofit leaders are saying:
|
||||
.spacer
|
||||
.row
|
||||
.col-xs-12.col-sm-12.col-md-4
|
||||
img.img-responsive.testimonial-image.img-center(src="https://i.imgur.com/ZHnFFN5.jpg", alt="Ewa's testimonial image")
|
||||
p.nonprofit-testimonial-copy With freeCodeCamp's valuable contribution, we were able to improve all of our systems and processes as part of our Wonder Women Eastern Indonesia program, and make sure that even more life changing technologies get to where they are needed most.
|
||||
h3 - Ewa Wojkowska with Kopernik
|
||||
.col-xs-12.col-sm-12.col-md-4
|
||||
img.img-responsive.testimonial-image.img-center(src="https://i.imgur.com/KHF8O2i.jpg", alt="Jennifer's testimonial image")
|
||||
p.nonprofit-testimonial-copy We have been blown away by the professional quality of the work that has been produced by the campers working on our projects. freeCodeCamp has been an invaluable partner and we are grateful for their support.
|
||||
h3 - Jennifer McDowell with Child First Authority
|
||||
.col-xs-12.col-sm-12.col-md-4
|
||||
img.img-responsive.testimonial-image.img-center(src="https://i.imgur.com/9VknVe3.jpg", alt="Stephanie's testimonial image")
|
||||
p.nonprofit-testimonial-copy We had the pleasure to work with two very talented campers who went above and beyond to create a web-based app for us. I would highly recommend that nonprofits apply to freeCodeCamp with their custom solution needs!
|
||||
h3 - Stephanie McAllister with Timeraiser
|
||||
.spacer
|
||||
hr
|
||||
.spacer
|
||||
h1 Solutions we can help you build:
|
||||
.spacer
|
||||
.row.text-center
|
||||
.col-xs-12.col-sm-12.col-md-4
|
||||
.landing-skill-icon.fa.fa-tasks
|
||||
h2.black-text Paperless Workflows
|
||||
.col-xs-12.col-sm-12.col-md-4
|
||||
.landing-skill-icon.fa.fa-child
|
||||
h2.black-text Volunteer Management
|
||||
.col-xs-12.col-sm-12.col-md-4
|
||||
.landing-skill-icon.fa.fa-users
|
||||
h2.black-text Community Management
|
||||
.col-xs-12.col-sm-12.col-md-4
|
||||
.landing-skill-icon.fa.fa-repeat
|
||||
h2.black-text Inventory Systems
|
||||
.col-xs-12.col-sm-12.col-md-4
|
||||
.landing-skill-icon.fa.fa-truck
|
||||
h2.black-text Logistics Tools
|
||||
.col-xs-12.col-sm-12.col-md-4
|
||||
.landing-skill-icon.fa.fa-wrench
|
||||
h2.black-text ...and other tools
|
||||
.spacer
|
||||
hr
|
||||
.spacer
|
||||
h1 Some of the projects we've built for nonprofits:
|
||||
.spacer
|
||||
.row
|
||||
.col-xs-12
|
||||
h2 Options, Inc.
|
||||
br
|
||||
| Big Lake, Minnesota
|
||||
.embed-responsive.embed-responsive-16by9
|
||||
iframe.embed-responsive-item(src='//www.youtube.com/embed/V8B4orj0M7Y?rel=0&showinfo=0')
|
||||
.spacer
|
||||
.row
|
||||
.col-xs-12
|
||||
h2 Child First Authority
|
||||
br
|
||||
| Baltimore, Maryland
|
||||
.embed-responsive.embed-responsive-16by9
|
||||
iframe.embed-responsive-item(src='//www.youtube.com/embed/O993J5KCR_w?rel=0&showinfo=0')
|
||||
.spacer
|
||||
.row
|
||||
.col-xs-12
|
||||
h2 Chasdei Kaduri Food Bank
|
||||
br
|
||||
| Toronto, Canada
|
||||
.embed-responsive.embed-responsive-16by9
|
||||
iframe.embed-responsive-item(src='//www.youtube.com/embed/XUR8E9fy0mE?rel=0&showinfo=0')
|
||||
.spacer
|
||||
hr
|
||||
.spacer
|
||||
h2 As grantmakers of pro bono code, we approve applications for nonprofits who:
|
||||
.col-xs-12.col-sm-8.col-sm-offset-2.text-left.large-p
|
||||
ul.large-li
|
||||
li
|
||||
span.fa.fa-code
|
||||
|   have 501(c)(3) status or foreign equivalent.
|
||||
li
|
||||
span.fa.fa-code
|
||||
|   have a demonstrated need for custom code.
|
||||
li
|
||||
span.fa.fa-code
|
||||
|   have explored existing software solutions.
|
||||
li
|
||||
span.fa.fa-code
|
||||
|   already have people who benefit from their services.
|
||||
li
|
||||
span.fa.fa-code
|
||||
|   can budget $20 to $30 per month for hosting.
|
||||
li
|
||||
span.fa.fa-code
|
||||
|   will commit to using what our developers build.
|
||||
|
||||
.row
|
||||
.col-xs-12.col-sm-8.col-sm-offset-2
|
||||
.spacer
|
||||
a.btn.btn-cta.signup-btn.btn-block(href="/nonprofits-form") Apply
|
@@ -1,3 +0,0 @@
|
||||
extends ../layout
|
||||
block content
|
||||
iframe(src="https://docs.google.com/forms/d/1Y9wvQAx5s_puGcC-NRZpKLMgT0iZwajGMbkKlh-piGg/viewform?embedded=true", frameborder="0", marginheight="0", marginwidth="0", width='102%', height=2000, scrolling="no") Loading...
|
@@ -1,55 +0,0 @@
|
||||
extends ../layout
|
||||
block content
|
||||
.jumbotron
|
||||
.text-center
|
||||
.row
|
||||
.col-xs-12
|
||||
h1.nonprofit-landing.hug-top Get Agile Project Management Experience for the PMI-ACP by Helping Nonprofits
|
||||
.big-break
|
||||
.col-xs-12.col-sm-12.col-md-12
|
||||
.embed-responsive.embed-responsive-16by9
|
||||
iframe.embed-responsive-item(src='//player.vimeo.com/video/126228100')
|
||||
.big-break
|
||||
h2 Your opportunity:
|
||||
.row
|
||||
.col-xs-12.col-sm-12.col-md-4
|
||||
h3.nowrap Plan Projects
|
||||
img.img-responsive.landing-icon.img-center(src= 'https://s3.amazonaws.com/freecodecamp/landingIcons_portfolio.svg.gz', alt='Image of a briefcase')
|
||||
p.landing-p You'll triage deliverables and set deadlines.
|
||||
.col-xs-12.col-sm-12.col-md-4
|
||||
h3.nowrap Manage Teams
|
||||
img.img-responsive.landing-icon.img-center(src= 'https://s3.amazonaws.com/freecodecamp/landingIcons_nonprofits.svg.gz', alt='Image of people putting their hands together in a huddle')
|
||||
p.landing-p You'll lead two developers and a nonprofit stakeholder to success.
|
||||
.col-xs-12.col-sm-12.col-md-4
|
||||
h3.nowrap Become a PMI-ACP
|
||||
img.img-responsive.landing-icon.img-center(src= 'https://s3.amazonaws.com/freecodecamp/landingIcons_connect.svg.gz', alt='image of two people high-fiving')
|
||||
p.landing-p You'll learn Agile, get references, and qualify for the PMI-ACP.
|
||||
.big-break
|
||||
h2 Solutions you'll help nonprofits build:
|
||||
.text-center.negative-35
|
||||
.col-xs-12.col-sm-12.col-md-3
|
||||
i.landing-skill-icon.fas.fa-globe.font-awesome-padding
|
||||
h2.black-text Websites
|
||||
.col-xs-12.col-sm-12.col-md-3
|
||||
i.landing-skill-icon.fas.fa-credit-card.font-awesome-padding
|
||||
h2.black-text Donation Systems
|
||||
.col-xs-12.col-sm-12.col-md-3
|
||||
i.landing-skill-icon.fas.fa-calendar.font-awesome-padding
|
||||
h2.black-text Volunteer Systems
|
||||
.col-xs-12.col-sm-12.col-md-3
|
||||
i.landing-skill-icon.fas.fa-archive.font-awesome-padding
|
||||
h2.black-text Inventory Systems
|
||||
.col-xs-12.col-sm-12.col-md-3
|
||||
i.landing-skill-icon.fas.fa-graduation-cap.font-awesome-padding
|
||||
h2.black-text E-learning Platforms
|
||||
.col-xs-12.col-sm-12.col-md-3
|
||||
i.landing-skill-icon.fas.fa-list-alt.font-awesome-padding
|
||||
h2.black-text Paperless Workflows
|
||||
.col-xs-12.col-sm-12.col-md-3
|
||||
i.landing-skill-icon.fas.fa-users.font-awesome-padding
|
||||
h2.black-text Community Tools
|
||||
.col-xs-12.col-sm-12.col-md-3
|
||||
i.landing-skill-icon.fas.fa-wrench.font-awesome-padding
|
||||
h2.black-text ...and other tools
|
||||
.big-break
|
||||
a.btn.btn-cta.signup-btn.btn-block(href="/pmi-acp-agile-project-managers-form") I want to lead agile projects for nonprofits
|
@@ -1,93 +0,0 @@
|
||||
doctype xml
|
||||
urlset(xmlns="http://www.sitemaps.org/schemas/sitemap/0.9")
|
||||
|
||||
url
|
||||
loc http://www.freecodecamp.org/
|
||||
changefreq weekly
|
||||
lastmod= now
|
||||
priority= 0.9
|
||||
|
||||
url
|
||||
loc http://www.freecodecamp.org/nonprofits
|
||||
changefreq weekly
|
||||
lastmod= now
|
||||
priority= 0.9
|
||||
|
||||
url
|
||||
loc http://www.freecodecamp.org/pmi-acp-agile-project-managers
|
||||
changefreq weekly
|
||||
lastmod= now
|
||||
priority= 0.9
|
||||
|
||||
url
|
||||
loc http://www.freecodecamp.org/map
|
||||
changefreq weekly
|
||||
lastmod= now
|
||||
priority= 0.9
|
||||
|
||||
url
|
||||
loc http://www.freecodecamp.org/about
|
||||
changefreq weekly
|
||||
lastmod= now
|
||||
priority= 0.9
|
||||
|
||||
url
|
||||
loc http://www.freecodecamp.org/donate
|
||||
changefreq weekly
|
||||
lastmod= now
|
||||
priority= 0.9
|
||||
|
||||
url
|
||||
loc http://www.freecodecamp.org/stories
|
||||
changefreq weekly
|
||||
lastmod= now
|
||||
priority= 0.9
|
||||
|
||||
url
|
||||
loc http://www.freecodecamp.org/coding-bootcamp-cost-calculator
|
||||
changefreq monthly
|
||||
lastmod= now
|
||||
priority= 0.9
|
||||
|
||||
url
|
||||
loc http://www.freecodecamp.org/privacy
|
||||
changefreq weekly
|
||||
lastmod= now
|
||||
priority= 0.9
|
||||
|
||||
url
|
||||
loc http://www.freecodecamp.org/software-resources-for-nonprofits
|
||||
changefreq weekly
|
||||
lastmod= now
|
||||
priority= 0.9
|
||||
|
||||
url
|
||||
loc http://www.freecodecamp.org/the-fastest-web-page-on-the-internet
|
||||
changefreq weekly
|
||||
lastmod= now
|
||||
priority= 0.9
|
||||
|
||||
url
|
||||
loc http://www.freecodecamp.org/academic-honesty
|
||||
changefreq weekly
|
||||
lastmod= now
|
||||
priority= 0.9
|
||||
|
||||
url
|
||||
loc http://www.freecodecamp.org/code-of-conduct
|
||||
changefreq weekly
|
||||
lastmod= now
|
||||
priority= 0.9
|
||||
|
||||
url
|
||||
loc http://www.freecodecamp.org/how-nonprofit-projects-work
|
||||
changefreq weekly
|
||||
lastmod= now
|
||||
priority= 0.9
|
||||
|
||||
each challenge in challenges
|
||||
url
|
||||
loc #{appUrl}/challenges/#{challenge.block}/#{challenge.dashedName}
|
||||
lastmod= now
|
||||
changefreq weekly
|
||||
priority= 0.9
|
@@ -1,78 +0,0 @@
|
||||
extends ../layout
|
||||
block content
|
||||
.col-xs-12.col-sm-8.col-sm-offset-2.col-md-6.col-md-offset-3
|
||||
h2.text-center Software Resources for Nonprofits
|
||||
hr
|
||||
p Please note that freeCodeCamp is not partnered with, nor do we receive a referral fee from, any of the following providers. We simply want to help guide you toward a solution for your organization.
|
||||
h3 Skills-based Volunteer Organizations:
|
||||
ul
|
||||
li
|
||||
a(href='http://givecamp.org/' target='_blank') Give Camp
|
||||
li
|
||||
a(href='http://www.volunteermatch.com' target='_blank') Volunteer Match.com
|
||||
li
|
||||
a(href='http://www.catchafire.org' target='_blank') Catchafire
|
||||
li
|
||||
a(href='http://anyonecanhaveawebsite.com' target='_blank') Anyone Can Have A Website
|
||||
h3 Building a website:
|
||||
ul
|
||||
li
|
||||
a(href='https://www.youtube.com/watch?v=4AXDKWuY9QM' target='_blank') How to build and deploy a website without writing any code for free
|
||||
li
|
||||
a(href='http://www.wix.com/' target='_blank') Wix
|
||||
li
|
||||
a(href='https://www.squarespace.com/' target='_blank') Square Space
|
||||
li
|
||||
a(href='https://wordpress.com/' target='_blank') WordPress
|
||||
li
|
||||
a(href='https://xprs.imcreator.com' target='_blank') Imcreator.com
|
||||
h3 Donor and Volunteer Management Systems:
|
||||
ul
|
||||
li
|
||||
a(href='http://causesignal.com' target='_blank') Cause Signal
|
||||
li
|
||||
a(href='https://www.thedatabank.com/' target='_blank') The Data Bank
|
||||
li
|
||||
a(href='http://www.donorsnap.com/' target='_blank') Donor Snap
|
||||
li
|
||||
a(href='http://www.donorperfect.com/' target='_blank') Donor Perfect
|
||||
li
|
||||
a(href='https://www.blackbaud.com/fundraising-crm/etapestry-donor-management' target='_blank') E Tapestry
|
||||
li
|
||||
a(href='http://www.z2systems.com' target='_blank') Z2 Systems
|
||||
li
|
||||
a(href='http://www.regpacks.com/volunteer-management' target='_blank') Reg Packs
|
||||
li
|
||||
a(href='http://sumac.com' target='_blank') Sumac
|
||||
li
|
||||
a(href='http://www.volgistics.com' target='_blank') Volgistics
|
||||
h3 Inventory Management Systems:
|
||||
ul
|
||||
li
|
||||
a(href='https://www.ordoro.com' target='_blank') Ordoro
|
||||
li
|
||||
a(href='http://www.unleashedsoftware.com' target='_blank') Unleashed Software
|
||||
li
|
||||
a(href='https://www.ezofficeinventory.com/industries/non-profits' target='_blank') EZ Office Inventory
|
||||
h3 E-Learning platforms:
|
||||
ul
|
||||
li
|
||||
a(href='http://www.dokeos.com' target='_blank') Dokeos
|
||||
li
|
||||
a(href='http://www.efrontlearning.net/' target='_blank') E Front Learning
|
||||
li
|
||||
a(href='https://moodle.org/' target='_blank') Moodle
|
||||
li
|
||||
a(href='https://sakaiproject.org/' target='_blank') Sakai Project
|
||||
h3 Community Management:
|
||||
ul
|
||||
li
|
||||
a(href='https://civicrm.org/' target='_blank') CiviCRM
|
||||
li
|
||||
a(href='http://tcmgr.com/' target='_blank') Total Community Manager
|
||||
h3 Electronic Forms:
|
||||
ul
|
||||
li
|
||||
a(href='http://www.google.com/forms' target='_blank') Google Forms
|
||||
li
|
||||
a(href='http://www.typeform.com' target='_blank') Typeform
|
@@ -1,25 +0,0 @@
|
||||
extends ../layout
|
||||
block content
|
||||
h1.text-center Stories from happy campers
|
||||
hr
|
||||
.row
|
||||
.col-xs-12.col-sm-10.col-sm-offset-1
|
||||
.row
|
||||
for story in stories
|
||||
.col-xs-12.col-sm-6.col-md-4
|
||||
.height-500
|
||||
a(href=story.linkedin target='_blank')
|
||||
img.testimonial-image.img-responsive.img-center(src=story.image)
|
||||
h3.text-center= story.camper
|
||||
|
|
||||
a.fa.fa-linkedin-square.text-primary(alt="#{story.camper}'s LinkedIn Profile", href=story.linkedin, target='_blank')
|
||||
p.small-p.text-justify= story.quote
|
||||
.col-xs-12.col-sm-10.col-sm-offset-1
|
||||
if moreStories
|
||||
.text-center
|
||||
a.btn.btn-lg.btn-primary.btn-primary-ghost.btn-block(href="/all-stories") Show more stories
|
||||
.spacer
|
||||
|
||||
if !user
|
||||
.text-center
|
||||
a.btn.btn-cta.signup-btn.btn-block(href="/signin") Start learning to code (it's free)
|
@@ -1,9 +0,0 @@
|
||||
extends ../layout
|
||||
block content
|
||||
.panel.panel-info
|
||||
.panel-body.text-center
|
||||
h1 You have successfully been unsubscribed.
|
||||
h2 Whatever you do, keep coding! :)
|
||||
if unsubscribeId
|
||||
.col-xs-12.col-md-8.col-md-offset-2
|
||||
a.btn.btn-primary.btn-lg.btn-block(href='/resubscribe/#{unsubscribeId}') You can click here to resubscribe
|
@@ -1,75 +0,0 @@
|
||||
extends ../layout
|
||||
block content
|
||||
script.
|
||||
.panel.panel-info
|
||||
.panel-heading.text-center
|
||||
h1 These Sponsors make freeCodeCamp possible
|
||||
.panel-body
|
||||
img.img-responsive.img-center.border-radius-5(src='https://s3.amazonaws.com/freecodecamp/wide-social-banner.png')
|
||||
.spacer
|
||||
.row
|
||||
.col-xs-12.col-md-10.col-md-offset-1
|
||||
h1 Interested in becoming a sponsor? Call us any time at +1 888-888-8888
|
||||
.spacer
|
||||
h1.text-center Platinum Sponsors
|
||||
.row
|
||||
.col-xs-6
|
||||
img.img-responsive.img-center(src='http://placekitten.com/200/300')
|
||||
.col-xs-12.col-sm-10.col-md-8.col-sm-offset-1.col-md-offset-2.negative-35
|
||||
h3
|
||||
a(href='#' target='_blank') Name of Company
|
||||
p.large-p Sagittis 9 lives climb the curtains lady tincidunt sleep on your face odd consequat lobortis erat eu? Malesuada eros, ac facilisis waffles reddit cute id together lacinia lived faucibus! Sed, sleeping watched diam cat ut mercedes litora? Meet cute aptent lacinia, eu likes quam neighbors tincidunt scelerisque quis loves she.
|
||||
.col-xs-6
|
||||
img.img-responsive.img-center(src='http://placekitten.com/200/300')
|
||||
.col-xs-12.col-sm-10.col-md-8.col-sm-offset-1.col-md-offset-2.negative-35
|
||||
h3
|
||||
a(href='#' target='_blank') Name of Company
|
||||
p.large-p Sagittis 9 lives climb the curtains lady tincidunt sleep on your face odd consequat lobortis erat eu? Malesuada eros, ac facilisis waffles reddit cute id together lacinia lived faucibus! Sed, sleeping watched diam cat ut mercedes litora? Meet cute aptent lacinia, eu likes quam neighbors tincidunt scelerisque quis loves she.
|
||||
|
||||
h1.text-center Gold Sponsors
|
||||
.row
|
||||
.col-xs-4
|
||||
img.img-responsive.img-center(src='http://placekitten.com/200/300')
|
||||
.col-xs-12.col-sm-10.col-sm-offset-1.negative-35
|
||||
h3
|
||||
a(href='#' target='_blank') Name of Company
|
||||
p.large-p Sagittis 9 lives climb the curtains lady tincidunt sleep on your face odd consequat lobortis erat eu? Malesuada eros, ac facilisis waffles reddit cute id together lacinia lived faucibus! Sed, sleeping watched diam cat ut mercedes litora? Meet cute aptent lacinia, eu likes quam neighbors tincidunt scelerisque quis loves she.
|
||||
.col-xs-4
|
||||
img.img-responsive.img-center(src='http://placekitten.com/200/300')
|
||||
.col-xs-12.col-sm-10.col-sm-offset-1.negative-35
|
||||
h3
|
||||
a(href='#' target='_blank') Name of Company
|
||||
p.large-p Sagittis 9 lives climb the curtains lady tincidunt sleep on your face odd consequat lobortis erat eu? Malesuada eros, ac facilisis waffles reddit cute id together lacinia lived faucibus! Sed, sleeping watched diam cat ut mercedes litora? Meet cute aptent lacinia, eu likes quam neighbors tincidunt scelerisque quis loves she.
|
||||
.col-xs-4
|
||||
img.img-responsive.img-center(src='http://placekitten.com/200/300')
|
||||
.col-xs-12.col-sm-10.col-sm-offset-1.negative-35
|
||||
h3
|
||||
a(href='#' target='_blank') Name of Company
|
||||
p.large-p Sagittis 9 lives climb the curtains lady tincidunt sleep on your face odd consequat lobortis erat eu? Malesuada eros, ac facilisis waffles reddit cute id together lacinia lived faucibus! Sed, sleeping watched diam cat ut mercedes litora? Meet cute aptent lacinia, eu likes quam neighbors tincidunt scelerisque quis loves she.
|
||||
|
||||
h1.text-center Silver Sponsors
|
||||
.row
|
||||
.col-xs-2
|
||||
img.img-responsive.img-center(src='http://placekitten.com/200/300')
|
||||
.col-xs-2
|
||||
img.img-responsive.img-center(src='http://placekitten.com/200/300')
|
||||
.col-xs-2
|
||||
img.img-responsive.img-center(src='http://placekitten.com/200/300')
|
||||
.col-xs-2
|
||||
img.img-responsive.img-center(src='http://placekitten.com/200/300')
|
||||
.col-xs-2
|
||||
img.img-responsive.img-center(src='http://placekitten.com/200/300')
|
||||
.col-xs-2
|
||||
img.img-responsive.img-center(src='http://placekitten.com/200/300')
|
||||
.col-xs-2
|
||||
img.img-responsive.img-center(src='http://placekitten.com/200/300')
|
||||
.col-xs-2
|
||||
img.img-responsive.img-center(src='http://placekitten.com/200/300')
|
||||
.col-xs-2
|
||||
img.img-responsive.img-center(src='http://placekitten.com/200/300')
|
||||
.col-xs-2
|
||||
img.img-responsive.img-center(src='http://placekitten.com/200/300')
|
||||
.col-xs-2
|
||||
img.img-responsive.img-center(src='http://placekitten.com/200/300')
|
||||
.col-xs-2
|
||||
img.img-responsive.img-center(src='http://placekitten.com/200/300')
|
@@ -1,26 +0,0 @@
|
||||
extends layout
|
||||
block content
|
||||
.text-center
|
||||
.row
|
||||
h1.landing-heading=title
|
||||
.big-break
|
||||
include homePartials/activeUsersView
|
||||
.big-break
|
||||
.row
|
||||
.col-xs-12.col-sm-8.col-sm-offset-2
|
||||
a(href="/n/7gR5pBM-K?refsource=userhome" target="_blank" class="update-link")
|
||||
| We're building a massive open dataset about new coders. Take the 2018 New Coder Survey. It only takes 5 minutes.
|
||||
.big-break
|
||||
include homePartials/quote
|
||||
.big-break
|
||||
.big-break
|
||||
include homePartials/stats
|
||||
.big-break
|
||||
.big-break
|
||||
.row
|
||||
.col-xs-12.col-sm-8.col-sm-offset-2
|
||||
a.btn.btn-cta.btn-block.btn-lg.btn-primary(href="/challenges/current-challenge")
|
||||
| Go to the coding curriculum
|
||||
.big-break
|
||||
.big-break
|
||||
include homePartials/scripts
|
Reference in New Issue
Block a user