From e8086704608ca535cbdb9a5f5b881f71bd535e66 Mon Sep 17 00:00:00 2001 From: greenkeeperio-bot Date: Wed, 27 Jul 2016 03:03:15 -0700 Subject: [PATCH 1/9] chore(package): update connect-mongo to version 1.3.2 https://greenkeeper.io/ --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 0a86fa2306..edd53e0259 100644 --- a/package.json +++ b/package.json @@ -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", From e7a03794907a727319d32541ec98d2d6c110fbde Mon Sep 17 00:00:00 2001 From: alanbares Date: Thu, 21 Jul 2016 19:46:17 -0700 Subject: [PATCH 2/9] Normalize ga event data in shop.jade Normalize ga event data in main.js Normalize ga event data in bindings.js Remove unecessary info in labels --- client/commonFramework/bindings.js | 2 +- client/main.js | 4 ++-- server/views/resources/shop.jade | 20 ++++++++++---------- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/client/commonFramework/bindings.js b/client/commonFramework/bindings.js index 5c193fddf0..7c3c8d382e 100644 --- a/client/commonFramework/bindings.js +++ b/client/commonFramework/bindings.js @@ -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() { diff --git a/client/main.js b/client/main.js index 44bee9c5fa..999e5b1fb4 100644 --- a/client/main.js +++ b/client/main.js @@ -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; }); diff --git a/server/views/resources/shop.jade b/server/views/resources/shop.jade index 4635782a07..896c9299c3 100644 --- a/server/views/resources/shop.jade +++ b/server/views/resources/shop.jade @@ -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. -
+ @@ -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 From 95b597deebfce05208a5e76c2163a550416860a3 Mon Sep 17 00:00:00 2001 From: Quincy Larson Date: Wed, 27 Jul 2016 13:11:55 -0700 Subject: [PATCH 3/9] Update readme wiki links Since our wiki has moved to the forum, I'm updating these links to redirect there. --- README.md | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 64c5a90c16..0d5f66a895 100644 --- a/README.md +++ b/README.md @@ -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 From 96759595be46c1c699a6be14d4b3a7f6b2732d1d Mon Sep 17 00:00:00 2001 From: Quincy Larson Date: Wed, 27 Jul 2016 17:41:31 -0700 Subject: [PATCH 4/9] add nonprofit project page --- server/views/resources/nonprofits.jade | 176 +++++++++++++------------ 1 file changed, 94 insertions(+), 82 deletions(-) diff --git a/server/views/resources/nonprofits.jade b/server/views/resources/nonprofits.jade index f1be4da204..d51057954b 100644 --- a/server/views/resources/nonprofits.jade +++ b/server/views/resources/nonprofits.jade @@ -1,92 +1,104 @@ 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&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.fa.fa-code   have 501(c)(3) status (or foreign equivalent). + li.fa.fa-code   have a demonstrated need for custom code. + li.fa.fa-code   have explored existing software solutions. + li.fa.fa-code   already have people who benefit from their services. + li.fa.fa-code   can budget $20 to $30 per month for hosting. + li.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 From f28e4a95f7bdbe279ac5fcebbc44f3db3deecaf4 Mon Sep 17 00:00:00 2001 From: Quincy Larson Date: Thu, 28 Jul 2016 00:12:32 -0700 Subject: [PATCH 5/9] add route to nonprofit resources list --- client/less/main.less | 6 +- server/boot/randomAPIs.js | 10 +++ .../software-resources-for-nonprofits.jade | 78 +++++++++++++++++++ 3 files changed, 93 insertions(+), 1 deletion(-) create mode 100644 server/views/resources/software-resources-for-nonprofits.jade diff --git a/client/less/main.less b/client/less/main.less index 76867f4707..5c3837c1db 100644 --- a/client/less/main.less +++ b/client/less/main.less @@ -1179,4 +1179,8 @@ and (max-width : 400px) { @import "jobs.less"; @import "challenge.less"; @import "toastr.less"; -@import "map.less"; \ No newline at end of file +@import "map.less"; + +ol, li { + list-style-type: disc; +} diff --git a/server/boot/randomAPIs.js b/server/boot/randomAPIs.js index 81d70760c2..57ea58a5f4 100644 --- a/server/boot/randomAPIs.js +++ b/server/boot/randomAPIs.js @@ -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' diff --git a/server/views/resources/software-resources-for-nonprofits.jade b/server/views/resources/software-resources-for-nonprofits.jade new file mode 100644 index 0000000000..470ecdf82a --- /dev/null +++ b/server/views/resources/software-resources-for-nonprofits.jade @@ -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 From 8e163b8960f73b71d9978556e4d94a9c0579e15c Mon Sep 17 00:00:00 2001 From: HKuz Date: Thu, 28 Jul 2016 04:37:10 -0400 Subject: [PATCH 6/9] Fixed issue #9925 in package.json changed connect-mongo: ~1.3.2 to ^1.3.2 (#9928) --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index edd53e0259..2f129e9325 100644 --- a/package.json +++ b/package.json @@ -43,7 +43,7 @@ "cheerio": "~0.20.0", "classnames": "^2.1.2", "compression": "^1.6.0", - "connect-mongo": "~1.3.2", + "connect-mongo": "^1.3.2", "cookie-parser": "^1.4.0", "csurf": "^1.8.3", "debug": "^2.2.0", @@ -149,4 +149,4 @@ "tape": "^4.2.2" }, "snyk": true -} \ No newline at end of file +} From afebd0e5a206574b5cd9550b8093ece33c8f0985 Mon Sep 17 00:00:00 2001 From: Jelte Fennema Date: Thu, 28 Jul 2016 14:51:02 +0200 Subject: [PATCH 7/9] Make clear only one fluid-container is needed --- .../01-front-end-development-certification/bootstrap.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/seed/challenges/01-front-end-development-certification/bootstrap.json b/seed/challenges/01-front-end-development-certification/bootstrap.json index 91edc3df47..c7ad298e24 100644 --- a/seed/challenges/01-front-end-development-certification/bootstrap.json +++ b/seed/challenges/01-front-end-development-certification/bootstrap.json @@ -74,7 +74,7 @@ ], "tests": [ "assert($(\"div\").hasClass(\"container-fluid\"), 'message: Your div element should have the class container-fluid.');", - "assert(code.match(/<\\/div>/g) && code.match(/
/g).length === code.match(/
div elements has a closing tag.');", + "assert(code.match(/<\\/div>/g) && code.match(/
/g).length === code.match(/
div element has a closing tag.');", "assert($(\".container-fluid\").children().length >= 8, 'message: Make sure you have nested all HTML elements in .container-fluid.');" ], "type": "waypoint", From 510ce1fe83f4bcc4f7bdc676700b78834ce93b76 Mon Sep 17 00:00:00 2001 From: Arsen Melikyan Date: Wed, 27 Jul 2016 19:40:20 +0400 Subject: [PATCH 8/9] Show flash message on every page when cheater is logged in --- server/boot/user.js | 2 +- server/middleware.json | 3 ++- server/middlewares/flash-cheaters.js | 29 ++++++++++++++++++++++++++++ 3 files changed, 32 insertions(+), 2 deletions(-) create mode 100644 server/middlewares/flash-cheaters.js diff --git a/server/boot/user.js b/server/boot/user.js index b0d059306c..ad08bee719 100644 --- a/server/boot/user.js +++ b/server/boot/user.js @@ -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 diff --git a/server/middleware.json b/server/middleware.json index 1ec30ef11b..1ee88d4cb6 100644 --- a/server/middleware.json +++ b/server/middleware.json @@ -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": { }, diff --git a/server/middlewares/flash-cheaters.js b/server/middlewares/flash-cheaters.js new file mode 100644 index 0000000000..7e882f1e6b --- /dev/null +++ b/server/middlewares/flash-cheaters.js @@ -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(); + }; +} From fbfff58f6b5744ecfd09904e6253224ea9967ade Mon Sep 17 00:00:00 2001 From: Quincy Larson Date: Thu, 28 Jul 2016 12:10:31 -0700 Subject: [PATCH 9/9] update views and CSS to reflect feedback from @berkeleytrue and @raisedadead --- client/less/main.less | 4 ++-- server/views/home.jade | 28 +++++++++++++++++++------- server/views/resources/nonprofits.jade | 24 ++++++++++++++++------ 3 files changed, 41 insertions(+), 15 deletions(-) diff --git a/client/less/main.less b/client/less/main.less index 5c3837c1db..fdda85a0a5 100644 --- a/client/less/main.less +++ b/client/less/main.less @@ -127,7 +127,7 @@ h1, h2, h3, h4, h5, h6, p, li { margin-top: 10px; } -ul { +.large-li > li { list-style: none; } @@ -1181,6 +1181,6 @@ and (max-width : 400px) { @import "toastr.less"; @import "map.less"; -ol, li { +ul > li { list-style-type: disc; } diff --git a/server/views/home.jade b/server/views/home.jade index cf604d3110..894d9dbde4 100644 --- a/server/views/home.jade +++ b/server/views/home.jade @@ -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 diff --git a/server/views/resources/nonprofits.jade b/server/views/resources/nonprofits.jade index d51057954b..962c78357d 100644 --- a/server/views/resources/nonprofits.jade +++ b/server/views/resources/nonprofits.jade @@ -91,12 +91,24 @@ block content 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.fa.fa-code   have 501(c)(3) status (or foreign equivalent). - li.fa.fa-code   have a demonstrated need for custom code. - li.fa.fa-code   have explored existing software solutions. - li.fa.fa-code   already have people who benefit from their services. - li.fa.fa-code   can budget $20 to $30 per month for hosting. - li.fa.fa-code   will commit to using what our developers build. + 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