@ -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
|
||||
|
@ -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() {
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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;
|
||||
});
|
||||
|
||||
|
@ -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",
|
||||
|
@ -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",
|
||||
|
@ -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'
|
||||
|
@ -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
|
||||
|
@ -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": {
|
||||
},
|
||||
|
29
server/middlewares/flash-cheaters.js
Normal file
29
server/middlewares/flash-cheaters.js
Normal 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 you’re the owner of this account contact
|
||||
team@freecodecamp.com for details.
|
||||
`
|
||||
});
|
||||
}
|
||||
return next();
|
||||
};
|
||||
}
|
@ -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   You'll get help in real time from our community chat rooms.
|
||||
li.ion-code   You'll meet up with other coders in your city.
|
||||
li.ion-code   You'll learn to code at your own pace, in your browser or on your phone.
|
||||
li.ion-code   You'll work through our focused, interactive courses and tutorials.
|
||||
li.ion-code   You'll learn state-of-the-art full stack JavaScript technologies.
|
||||
li.ion-code   You'll build projects that help nonprofits carry out their missions more effectively.
|
||||
li.ion-code   You'll assemble a portfolio of real apps used by real people.
|
||||
li
|
||||
span.fa.fa-code
|
||||
|   You'll get help in real time from our community chat rooms.
|
||||
li
|
||||
span.fa.fa-code
|
||||
|   You'll meet up with other coders in your city.
|
||||
li
|
||||
span.fa.fa-code
|
||||
|   You'll learn to code at your own pace, in your browser or on your phone.
|
||||
li
|
||||
span.fa.fa-code
|
||||
|   You'll work through our focused, interactive courses and tutorials.
|
||||
li
|
||||
span.fa.fa-code
|
||||
|   You'll learn state-of-the-art full stack JavaScript technologies.
|
||||
li
|
||||
span.fa.fa-code
|
||||
|   You'll build projects that help nonprofits carry out their missions more effectively.
|
||||
li
|
||||
span.fa.fa-code
|
||||
|   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
|
||||
|
@ -1,20 +1,24 @@
|
||||
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
|
||||
.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')
|
||||
.spacer
|
||||
hr
|
||||
.spacer
|
||||
h2 What nonprofit leaders are saying:
|
||||
h1 What nonprofit leaders are saying:
|
||||
.spacer
|
||||
.row
|
||||
.col-xs-12.col-sm-12.col-md-4
|
||||
@ -32,61 +36,81 @@ block content
|
||||
.spacer
|
||||
hr
|
||||
.spacer
|
||||
h2 Our process:
|
||||
h1 Solutions we can help you build:
|
||||
.spacer
|
||||
.row
|
||||
.row.text-center
|
||||
.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
|
||||
.landing-skill-icon.fa.fa-tasks
|
||||
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
|
||||
.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
|
||||
.col-xs-offset-0.col-sm-offset-1.text-left.large-p
|
||||
h2 Our developers build projects for nonprofits who:
|
||||
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.ion-code   already have people who benefit from their services.
|
||||
li.ion-code   are registered with their government and have tax-exempt status.
|
||||
li.ion-code   have a stakeholder who can meet with our developers to direct the project.
|
||||
li.ion-code   can budget at least $20 per month for their own cloud servers.
|
||||
li.ion-code   can commit to using and maintaining the solution that our developers build.
|
||||
.big-break
|
||||
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
|
||||
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
|
||||
|
@ -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
|
||||
|
@ -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
|
Reference in New Issue
Block a user