Merge pull request #9938 from FreeCodeCamp/staging

Release staging
This commit is contained in:
Berkeley Martinez
2016-07-28 12:24:07 -07:00
committed by GitHub
14 changed files with 271 additions and 116 deletions

View File

@ -45,18 +45,13 @@ This code is running live at [FreeCodeCamp.com](http://www.FreeCodeCamp.com). We
### [Join our community here](http://www.freecodecamp.com/signin).
Wiki
------------
We would love your help expanding our [wiki](https://github.com/freecodecamp/freecodecamp/wiki). Our goal is to become a great resource for people learning to code, building local coding communities, and applying for coding jobs.
Found a bug?
------------
Do not file an issue until you have followed these steps:
1. Read [Help I've Found a Bug](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/FreeCodeCamp-Report-Bugs) wiki page and follow the instructions there.
2. Ask for confirmation in the appropriate [Help Room](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Help-Rooms).
1. Read the [Help I've Found a Bug](http://forum.freecodecamp.com/t/how-to-report-a-bug/19543) article and follow its instructions.
2. Ask for confirmation in the appropriate [Help Room](http://forum.freecodecamp.com/t/free-code-camp-official-chat-rooms/19390/2).
3. Please *do not* open an issue without a 3rd party confirmation of your problem.
Contributing

View File

@ -147,7 +147,7 @@ window.common = (function(global) {
});
if (common.challengeName) {
window.ga('send', 'event', 'Challenge', 'load', common.gaName);
window.ga('send', 'event', 'Challenge', 'loaded', common.gaName);
}
$('.modal').on('show.bs.modal', function() {

View File

@ -127,7 +127,7 @@ h1, h2, h3, h4, h5, h6, p, li {
margin-top: 10px;
}
ul {
.large-li > li {
list-style: none;
}
@ -1180,3 +1180,7 @@ and (max-width : 400px) {
@import "challenge.less";
@import "toastr.less";
@import "map.less";
ul > li {
list-style-type: disc;
}

View File

@ -103,7 +103,7 @@ main = (function(main, global) {
if (!(event.ctrlKey || event.metaKey)) {
toggleMainChat();
}
window.ga('send', 'event', 'NAV', 'NAV-CHAT', 'Nav Chat Button Clicked');
window.ga('send', 'event', 'Nav', 'clicked', 'Nav chat opened');
});
function showMainChat() {
@ -220,7 +220,7 @@ $(document).ready(function() {
'&redirect_uri=http%3A%2F%2Ffreecodecamp%2Ecom%2Fmap';
main.setMapShare(challengeBlockName);
window.ga('send', 'event', 'FB_LINK', 'SHARE', 'Facebook map share');
window.ga('send', 'event', 'Facebook', 'clicked', 'Shared on Facebook');
window.location.href = link;
});

View File

@ -43,7 +43,7 @@
"cheerio": "~0.20.0",
"classnames": "^2.1.2",
"compression": "^1.6.0",
"connect-mongo": "~1.2.0",
"connect-mongo": "^1.3.2",
"cookie-parser": "^1.4.0",
"csurf": "^1.8.3",
"debug": "^2.2.0",

View File

@ -74,7 +74,7 @@
],
"tests": [
"assert($(\"div\").hasClass(\"container-fluid\"), 'message: Your <code>div</code> element should have the class <code>container-fluid</code>.');",
"assert(code.match(/<\\/div>/g) && code.match(/<div/g) && code.match(/<\\/div>/g).length === code.match(/<div/g).length, 'message: Make sure each of your <code>div</code> elements has a closing tag.');",
"assert(code.match(/<\\/div>/g) && code.match(/<div/g) && code.match(/<\\/div>/g).length === code.match(/<div/g).length, 'message: Make sure your <code>div</code> element has a closing tag.');",
"assert($(\".container-fluid\").children().length >= 8, 'message: Make sure you have nested all HTML elements in <code>.container-fluid</code>.');"
],
"type": "waypoint",

View File

@ -28,6 +28,10 @@ module.exports = function(app) {
router.get('/terms', terms);
router.get('/privacy', privacy);
router.get('/how-nonprofit-projects-work', howNonprofitProjectsWork);
router.get(
'/software-resources-for-nonprofits',
softwareResourcesForNonprofits
);
router.get('/code-of-conduct', codeOfConduct);
router.get('/academic-honesty', academicHonesty);
router.get(
@ -59,6 +63,12 @@ module.exports = function(app) {
});
}
function softwareResourcesForNonprofits(req, res) {
res.render('resources/software-resources-for-nonprofits', {
title: 'Software Resources for Nonprofits'
});
}
function codeOfConduct(req, res) {
res.render('resources/code-of-conduct', {
title: 'Code of Conduct'

View File

@ -336,7 +336,7 @@ module.exports = function(app) {
return data;
}, {});
if (userPortfolio.isCheater) {
if (userPortfolio.isCheater && !user) {
req.flash('errors', {
msg: dedent`
Upon review, this account has been flagged for academic

View File

@ -49,7 +49,8 @@
"./middlewares/jade-helpers": {},
"./middlewares/global-locals": {},
"./middlewares/revision-helpers": {},
"./middlewares/migrate-completed-challenges": {}
"./middlewares/migrate-completed-challenges": {},
"./middlewares/flash-cheaters": {}
},
"routes": {
},

View File

@ -0,0 +1,29 @@
import dedent from 'dedent';
const ALLOWED_METHODS = ['GET'];
const EXCLUDED_PATHS = [
'/api/flyers/findOne',
'/challenges/current-challenge',
'/challenges/next-challenge',
'/map-aside',
'/signout'
];
export default function flashCheaters() {
return function(req, res, next) {
if (
ALLOWED_METHODS.indexOf(req.method) !== -1 &&
EXCLUDED_PATHS.indexOf(req.path) === -1 &&
req.user && req.url !== '/' && req.user.isCheater
) {
req.flash('errors', {
msg: dedent`
Upon review, this account has been flagged for academic
dishonesty. If youre the owner of this account contact
team@freecodecamp.com for details.
`
});
}
return next();
};
}

View File

@ -87,13 +87,27 @@ block content
h2 Here's why you should join our open source community right now:
.spacer
ul.large-li
li.ion-code &thinsp; You'll get help in real time from our community chat rooms.
li.ion-code &thinsp; You'll meet up with other coders in your city.
li.ion-code &thinsp; You'll learn to code at your own pace, in your browser or on your phone.
li.ion-code &thinsp; You'll work through our focused, interactive courses and tutorials.
li.ion-code &thinsp; You'll learn state-of-the-art full stack JavaScript technologies.
li.ion-code &thinsp; You'll build projects that help nonprofits carry out their missions more effectively.
li.ion-code &thinsp; You'll assemble a portfolio of real apps used by real people.
li
span.fa.fa-code
| &thinsp; You'll get help in real time from our community chat rooms.
li
span.fa.fa-code
| &thinsp; You'll meet up with other coders in your city.
li
span.fa.fa-code
| &thinsp; You'll learn to code at your own pace, in your browser or on your phone.
li
span.fa.fa-code
| &thinsp; You'll work through our focused, interactive courses and tutorials.
li
span.fa.fa-code
| &thinsp; You'll learn state-of-the-art full stack JavaScript technologies.
li
span.fa.fa-code
| &thinsp; You'll build projects that help nonprofits carry out their missions more effectively.
li
span.fa.fa-code
| &thinsp; You'll assemble a portfolio of real apps used by real people.
.big-break
.row
.col-xs-12.col-sm-8.col-sm-offset-2

View File

@ -1,92 +1,116 @@
extends ../layout
block content
.text-center
h1.landing-heading We will build software for your nonprofit. Pro Bono.
.big-spacer
.row
.col-xs-12
h1.landing-heading Get pro bono code for your nonprofit.
.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 As featured in:
img.img-center.img-responsive(src='https://s3.amazonaws.com/freecodecamp/as-seen-on.png')
.spacer
hr
.spacer
h2 What nonprofit leaders are saying:
.spacer
.row
.col-xs-12.col-sm-12.col-md-4
img.img-responsive.testimonial-image.img-center(src="//i.imgur.com/ZHnFFN5.jpg", alt="Ewa's testimonial image")
p.nonprofit-testimonial-copy With Free Code Camp'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="//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. Free Code Camp 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="//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 Free Code Camp with their custom solution needs!
h3 - Stephanie McAllister with Timeraiser
.spacer
hr
.spacer
h2 Our process:
.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 You tell us how we can help you.
.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 hand pick 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 Together we'll set milestones and complete your project.
.spacer
hr
.spacer
h2 Solutions we can help you build:
.spacer
.text-center.negative-35
.col-xs-12.col-sm-12.col-md-3
.landing-skill-icon.ion-android-globe
h2.black-text Websites
.col-xs-12.col-sm-12.col-md-3
.landing-skill-icon.ion-card
h2.black-text Donation Systems
.col-xs-12.col-sm-12.col-md-3
.landing-skill-icon.ion-android-calendar
h2.black-text Volunteer Systems
.col-xs-12.col-sm-12.col-md-3
.landing-skill-icon.ion-ios-box
h2.black-text Inventory Systems
.col-xs-12.col-sm-12.col-md-3
.landing-skill-icon.ion-university
h2.black-text E-learning Platforms
.col-xs-12.col-sm-12.col-md-3
.landing-skill-icon.ion-ios-list
h2.black-text Paperless Workflows
.col-xs-12.col-sm-12.col-md-3
.landing-skill-icon.ion-ios-people
h2.black-text Community Tools
.col-xs-12.col-sm-12.col-md-3
.landing-skill-icon.ion-settings
h2.black-text ...and other tools
.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="//i.imgur.com/ZHnFFN5.jpg", alt="Ewa's testimonial image")
p.nonprofit-testimonial-copy With Free Code Camp'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="//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. Free Code Camp 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="//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 Free Code Camp with their custom solution needs!
h3 - Stephanie McAllister with Timeraiser
.spacer
hr
.spacer
.col-xs-offset-0.col-sm-offset-1.text-left.large-p
h2 Our developers build projects for nonprofits who:
.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&amp;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&amp;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&amp;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.ion-code &thinsp; already have people who benefit from their services.
li.ion-code &thinsp; are registered with their government and have tax-exempt status.
li.ion-code &thinsp; have a stakeholder who can meet with our developers to direct the project.
li.ion-code &thinsp; can budget at least $20 per month for their own cloud servers.
li.ion-code &thinsp; can commit to using and maintaining the solution that our developers build.
.big-break
li
span.fa.fa-code
| &thinsp; have 501(c)(3) status or foreign equivalent.
li
span.fa.fa-code
| &thinsp; have a demonstrated need for custom code.
li
span.fa.fa-code
| &thinsp; have explored existing software solutions.
li
span.fa.fa-code
| &thinsp; already have people who benefit from their services.
li
span.fa.fa-code
| &thinsp; can budget $20 to $30 per month for hosting.
li
span.fa.fa-code
| &thinsp; will commit to using what our developers build.
.row
.col-xs-12.col-sm-8.col-sm-offset-2
a.btn.btn-cta.signup-btn.btn-block(href="/nonprofits-form") My nonprofit needs coding help
.spacer
a.btn.btn-cta.signup-btn.btn-block(href="/nonprofits-form") Apply

View File

@ -9,7 +9,7 @@ block content
h4 Get 2 for only $5, with free shipping anywhere!
p These durable 2" (5 cm) stickers sport a matte finish, and look great anywhere - especially on your laptop.
html.
<form action="//www.paypal.com/cgi-bin/webscr" onSubmit="ga('send', 'event', 'SHOP', 'SHOP-STICKER', 'Sticker PayPal button clicked');" method="post" target="_blank">
<form action="//www.paypal.com/cgi-bin/webscr" onSubmit="ga('send', 'event', 'Shop', 'clicked', 'Freecodecamp sticker');" method="post" target="_blank">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="hosted_button_id" value="R9AGYKJUCU37N">
<input type="submit" class="btn btn-cta signup-btn btn-block" name="submit" value='Get these with PayPal or a Credit Card'>
@ -24,7 +24,7 @@ block content
p Audible gives our community $5 when you you sign up for a free trial.
p You get two free audiobooks immediately. You can cancel any time and still keep your audiobooks.
p If you don't cancel within 30 days, you get one audiobook per month for $15/month.
a.btn.btn-cta.signup-btn.btn-block(href="//www.amazon.com/gp/product/B00NB86OYE/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=B00NB86OYE&linkCode=as2&tag=out0b4b-20&linkId=dfacf0a194dcd3d1c9376f64ed690214" onClick="ga('send', 'event', 'SHOP', 'SHOP-AUDIBLE', 'Audible affiliate button clicked');") Get two free audio books
a.btn.btn-cta.signup-btn.btn-block(href="//www.amazon.com/gp/product/B00NB86OYE/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=B00NB86OYE&linkCode=as2&tag=out0b4b-20&linkId=dfacf0a194dcd3d1c9376f64ed690214" onClick="ga('send', 'event', 'Shop', 'clicked', '2 free audio books');") Get two free audio books
hr
.row
@ -32,7 +32,7 @@ block content
img.img-responsive.img-center(src='//i.imgur.com/BTtb8P0g.jpg')
h3 Get $10 in credit for your own Digital Ocean server
p Digital Ocean gives our community $25 in credit after you spend $25.
a.btn.btn-cta.signup-btn.btn-block(href="//m.do.co/c/ba8a71773373" target='_blank' onClick="ga('send', 'event', 'SHOP', 'SHOP-DIGITAL-OCEAN', 'Digital Ocean affiliate button clicked');") Claim your $10 credit
a.btn.btn-cta.signup-btn.btn-block(href="//m.do.co/c/ba8a71773373" target='_blank' onClick="ga('send', 'event', 'Shop', 'clicked', '$10 Digital Ocean credit');") Claim your $10 credit
hr
.row
@ -40,7 +40,7 @@ block content
img.img-responsive.img-center(src='http://i.imgur.com/YqZqTN6g.jpg')
h3 Buy some affordable domain names
p Namecheap gives our community a 15% commission on your first purchase.
a.btn.btn-cta.signup-btn.btn-block(href="//www.namecheap.com/?aff=102130" onClick="ga('send', 'event', 'SHOP', 'SHOP-NAMECHEAP', 'Namecheap affiliate button clicked');") Get your domain name
a.btn.btn-cta.signup-btn.btn-block(href="//www.namecheap.com/?aff=102130" onClick="ga('send', 'event', 'Shop', 'clicked', 'Namecheap domain');") Get your domain name
hr
.row
@ -50,34 +50,34 @@ block content
.spacer
img.img-responsive.img-center(src='//i.imgur.com/hV9F2bo.jpg' alt='Cracking the Coding Interivew book cover')
.button-spacer
a.btn.signup-btn.btn-cta(href="//www.amazon.com/gp/product/0984782850/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=0984782850&linkCode=as2&tag=out0b4b-20&linkId=41b9f338b2a1a8ba00d67f944f68a982" onClick="ga('send', 'event', 'SHOP', 'SHOP-CRACKING', 'Cracking the Code Interivew affiliate button clicked');" target='_blank') Get it on Amazon
a.btn.signup-btn.btn-cta(href="//www.amazon.com/gp/product/0984782850/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=0984782850&linkCode=as2&tag=out0b4b-20&linkId=41b9f338b2a1a8ba00d67f944f68a982" onClick="ga('send', 'event', 'Shop', 'clicked', 'Cracking the Coding Interview');" target='_blank') Get it on Amazon
.spacer
hr
.spacer
img.img-responsive.img-center(src='//i.imgur.com/rLN9oKk.jpg' alt='JavaScript: The Definitive Guide book cover')
.button-spacer
a.btn.signup-btn.btn-cta(href="//www.amazon.com/gp/product/0596805527/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=0596805527&linkCode=as2&tag=out0b4b-20&linkId=f490d30d420bf57fc1efe2de57eece65" onClick="ga('send', 'event', 'SHOP', 'SHOP-JS-DIFINITIVE-GUIDE', 'JavaScript the Definitive Guide affiliate button clicked');" target='_blank') Get it on Amazon
a.btn.signup-btn.btn-cta(href="//www.amazon.com/gp/product/0596805527/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=0596805527&linkCode=as2&tag=out0b4b-20&linkId=f490d30d420bf57fc1efe2de57eece65" onClick="ga('send', 'event', 'Shop', 'clicked', 'JavaScript The Definitive Guide');" target='_blank') Get it on Amazon
.spacer
hr
.spacer
img.img-responsive.img-center(src='//i.imgur.com/KU60I7r.jpg' alt='How Linux Works: What Every Superuser Should Know book cover')
.button-spacer
a.btn.signup-btn.btn-cta(href="//www.amazon.com/gp/product/1593275676/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1593275676&linkCode=as2&tag=out0b4b-20&linkId=a6a83ec9ed8d137f3ff56fbcfc6c05ce" onClick="ga('send', 'event', 'SHOP', 'SHOP-HOW-LINUX-WORKS', 'How Linux Works affiliate button clicked');" target='_blank') Get it on Amazon
a.btn.signup-btn.btn-cta(href="//www.amazon.com/gp/product/1593275676/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1593275676&linkCode=as2&tag=out0b4b-20&linkId=a6a83ec9ed8d137f3ff56fbcfc6c05ce" onClick="ga('send', 'event', 'Shop', 'clicked', 'How Linux Works');" target='_blank') Get it on Amazon
.spacer
hr
.spacer
img.img-responsive.img-center(src='//i.imgur.com/nR4VIU4.jpg' alt='JavaScript: The Good Parts book cover')
.button-spacer
a.btn.signup-btn.btn-cta(href="//www.amazon.com/gp/product/0596517742/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=0596517742&linkCode=as2&tag=out0b4b-20&linkId=644f8ba9661c9db7dd4bb3ff6216a8d1" onClick="ga('send', 'event', 'SHOP', 'SHOP-JAVASCRIPT-THE-GOOD-PARTS', 'JavaScript the Good Parts affiliate button clicked');" target='_blank') Get it on Amazon
a.btn.signup-btn.btn-cta(href="//www.amazon.com/gp/product/0596517742/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=0596517742&linkCode=as2&tag=out0b4b-20&linkId=644f8ba9661c9db7dd4bb3ff6216a8d1" onClick="ga('send', 'event', 'Shop', 'clicked', 'JavaScript the Good Parts');" target='_blank') Get it on Amazon
.spacer
hr
.spacer
img.img-responsive.img-center(src='//i.imgur.com/CR2dSql.jpg' alt='Eloquent JavaScript: A Modern Introduction to Programming book cover')
.button-spacer
a.btn.signup-btn.btn-cta(href="//www.amazon.com/gp/product/1593275846/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1593275846&linkCode=as2&tag=out0b4b-20&linkId=6870174eac22afca8e1c1ef5204f16ee" onClick="ga('send', 'event', 'SHOP', 'SHOP-ELOQUENT-JAVASCRIPT', 'Eloquent JavaScript affiliate button clicked');" target='_blank') Get it on Amazon
a.btn.signup-btn.btn-cta(href="//www.amazon.com/gp/product/1593275846/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1593275846&linkCode=as2&tag=out0b4b-20&linkId=6870174eac22afca8e1c1ef5204f16ee" onClick="ga('send', 'event', 'Shop', 'clicked', 'Eloquent JavaScript');" target='_blank') Get it on Amazon
.spacer
hr
.spacer
img.img-responsive.img-center(src='//i.imgur.com/IplEMb4.jpg' alt='JavaScript and jQuery: Interactive Front End Development')
.button-spacer
a.btn.signup-btn.btn-cta(href="//www.amazon.com/gp/product/1118531647/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1118531647&linkCode=as2&tag=out0b4b-20&linkId=fdce3ef75bf3cd1cb220020a595decba" onClick="ga('send', 'event', 'SHOP', 'SHOP-JAVASCRIPT-AND-JQUERY', 'JavaScript and jQuery affiliate button clicked');" target='_blank') Get it on Amazon
a.btn.signup-btn.btn-cta(href="//www.amazon.com/gp/product/1118531647/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1118531647&linkCode=as2&tag=out0b4b-20&linkId=fdce3ef75bf3cd1cb220020a595decba" onClick="ga('send', 'event', 'Shop', 'clicked', 'JavaScript and jQuery');" target='_blank') Get it on Amazon

View File

@ -0,0 +1,78 @@
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 Free Code Camp 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='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
li
a(href='or build it for free without writing any code' target='_blank') How to build a website without writing any code
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