diff --git a/app.js b/app.js index 30df332f22..df9bcc4c61 100755 --- a/app.js +++ b/app.js @@ -39,7 +39,6 @@ var express = require('express'), homeController = require('./controllers/home'), resourcesController = require('./controllers/resources'), userController = require('./controllers/user'), - contactController = require('./controllers/contact'), nonprofitController = require('./controllers/nonprofits'), bonfireController = require('./controllers/bonfire'), coursewareController = require('./controllers/courseware'), @@ -263,6 +262,24 @@ app.get('/chat', resourcesController.chat); app.get('/twitch', resourcesController.twitch); +// Agile Project Manager Onboarding + +app.get('/pmi-acp-agile-project-managers', resourcesController.agileProjectManagers); + +app.get('/agile', function(req, res) { + res.redirect(301, '/pmi-acp-agile-project-managers'); +}); + +app.get('/pmi-acp-agile-project-managers-form', resourcesController.agileProjectManagersForm); + +// Nonprofit Onboarding + +app.get('/nonprofits', resourcesController.nonprofits); + +app.get('/nonprofits-form', resourcesController.nonprofitsForm); + + + app.get('/map', challengeMapController.challengeMap); app.get('/live-pair-programming', function(req, res) { @@ -330,59 +347,18 @@ app.get('/email-signin', userController.getEmailSignin); app.post('/email-signup', userController.postEmailSignup); app.post('/email-signin', userController.postSignin); -app.get('/nonprofits', contactController.getNonprofitsForm); -app.post('/nonprofits', contactController.postNonprofitsForm); /** * Nonprofit Project routes. */ -app.get('/nonprofits', nonprofitController.nonprofitsHome); - app.get('/nonprofits/directory', nonprofitController.nonprofitsDirectory); -app.get('/nonprofits/are-you-with-a-registered-nonprofit', nonprofitController.areYouWithARegisteredNonprofit); - -app.get('/nonprofits/are-there-people-that-are-already-benefiting-from-your-services', nonprofitController.areTherePeopleThatAreAlreadyBenefitingFromYourServices); - -app.get('/nonprofits/in-exchange-we-ask', nonprofitController.inExchangeWeAsk); - -app.get('/nonprofits/ok-with-javascript', nonprofitController.okWithJavaScript); - -app.get('/nonprofits/how-can-free-code-camp-help-you', nonprofitController.howCanFreeCodeCampHelpYou); - -app.get('/nonprofits/what-does-your-nonprofit-do', nonprofitController.whatDoesYourNonprofitDo); - -app.get('/nonprofits/link-us-to-your-website', nonprofitController.linkUsToYourWebsite); - -app.get('/nonprofits/tell-us-your-name', nonprofitController.tellUsYourName); - -app.get('/nonprofits/tell-us-your-email', nonprofitController.tellUsYourEmail); - -app.get('/nonprofits/your-nonprofit-project-application-has-been-submitted', nonprofitController.yourNonprofitProjectApplicationHasBeenSubmitted); - -app.get('/nonprofits/other-solutions', nonprofitController.otherSolutions); - -app.get('/nonprofits/getNonprofitList', nonprofitController.showAllNonprofits); - -app.get('/nonprofits/interested-in-nonprofit/:nonprofitName', nonprofitController.interestedInNonprofit); - app.get( '/nonprofits/:nonprofitName', nonprofitController.returnIndividualNonprofit ); -app.get( - '/done-with-first-100-hours', - passportConf.isAuthenticated, - contactController.getDoneWithFirst100Hours -); -app.post( - '/done-with-first-100-hours', - passportConf.isAuthenticated, - contactController.postDoneWithFirst100Hours -); - app.post( '/update-progress', passportConf.isAuthenticated, diff --git a/controllers/contact.js b/controllers/contact.js deleted file mode 100644 index 1a959936c1..0000000000 --- a/controllers/contact.js +++ /dev/null @@ -1,78 +0,0 @@ -var nodemailer = require('nodemailer'), - debug = require('debug')('freecc:cntr:contact'), - secrets = require('../config/secrets'); - -var transporter = nodemailer.createTransport({ - service: 'Mandrill', - auth: { - user: secrets.mandrill.user, - pass: secrets.mandrill.password - } -}); - -module.exports = { - /** - * GET /contact - * Contact form page. - */ - - getNonprofitsForm: function(req, res) { - res.render('contact/nonprofits', { - title: 'Free Code Work for Nonprofits Project Submission Page' - }); - }, - - /** - * POST /contact - * Send a contact form via Nodemailer. - */ - - postNonprofitsForm: function(req, res) { - var mailOptions = { - to: 'team@freecodecamp.com', - name: req.body.name, - from: req.body.email, - subject: 'CodeNonprofit Project Idea from ' + req.body.name, - text: req.body.message - }; - - transporter.sendMail(mailOptions, function (err) { - if (err) { - req.flash('errors', {msg: err.message}); - return res.redirect('/nonprofits'); - } - req.flash('success', {msg: 'Email has been sent successfully!'}); - res.redirect('/nonprofits'); - }); - }, - - getDoneWithFirst100Hours: function(req, res) { - if (req.user.points >= 53) { - res.render('contact/done-with-first-100-hours', { - title: 'Congratulations on finishing the first 100 hours of Free Code Camp!' - }); - } else { - req.flash('errors', {msg: 'Hm... have you finished all the challenges?'}); - res.redirect('/'); - } - }, - - postDoneWithFirst100Hours: function(req, res) { - var mailOptions = { - to: 'team@freecodecamp.com', - name: 'Completionist', - from: req.body.email, - subject: 'Camper at ' + req.body.email + ' has completed the first 100 hours', - text: '' - }; - - transporter.sendMail(mailOptions, function (err) { - if (err) { - req.flash('errors', {msg: err.message}); - return res.redirect('/done-with-first-100-hours'); - } - req.flash('success', {msg: 'Email has been sent successfully!'}); - res.redirect('/nonprofit-project-instructions'); - }); - } -}; \ No newline at end of file diff --git a/controllers/nonprofits.js b/controllers/nonprofits.js index d3b824cf3e..70a8c75366 100644 --- a/controllers/nonprofits.js +++ b/controllers/nonprofits.js @@ -6,12 +6,6 @@ var async = require('async'), debug = require('debug')('freecc:cntr:nonprofits'), R = require('ramda'); -exports.nonprofitsHome = function(req, res) { - res.render('nonprofits/home', { - title: 'A guide to our Nonprofit Projects' - }); -}; - exports.nonprofitsDirectory = function(req, res) { Nonprofit.find({estimatedHours: { $gt: 0 } }, function(err, nonprofits) { if (err) { diff --git a/controllers/resources.js b/controllers/resources.js index 29e38c67c8..dada649cbf 100644 --- a/controllers/resources.js +++ b/controllers/resources.js @@ -155,6 +155,30 @@ module.exports = { } }, + nonprofits: function nonprofits(req, res) { + res.render('resources/nonprofits', { + title: 'A guide to our Nonprofit Projects' + }); + }, + + nonprofitsForm: function nonprofitsForm(req, res) { + res.render('resources/nonprofits-form', { + title: 'A guide to our Nonprofit Projects' + }); + }, + + agileProjectManagers: function agileProjectManagers(req, res) { + res.render('resources/pmi-acp-agile-project-managers', { + title: 'Get Agile Project Management Experience for the PMI-ACP' + }); + }, + + agileProjectManagersForm: function agileProjectManagersForm(req, res) { + res.render('resources/pmi-acp-agile-project-managers-form', { + title: 'Get Agile Project Management Experience for the PMI-ACP' + }); + }, + twitch: function twitch(req, res) { res.render('resources/twitch', { title: "Enter Free Code Camp's Chat Rooms" diff --git a/views/contact/done-with-first-100-hours.jade b/views/contact/done-with-first-100-hours.jade deleted file mode 100644 index 070af7a11e..0000000000 --- a/views/contact/done-with-first-100-hours.jade +++ /dev/null @@ -1,29 +0,0 @@ -extends ../layout -block content - .jumbotron.text-center - h1.animated.lightSpeedIn Congratulations! - .animated.fadeIn.delay-2 - h2 You've completed the first 100 hours of Free Code Camp! - .animated.fadeIn.delay-4 - h3 Now you're ready to continue your learning by building solutions for nonprofits! - h3 First, please enter your email below. - br - form.form-horizontal(role='form', action="/done-with-first-100-hours/", method='POST', novalidate='novalidate', name='doneWithFirst100HoursForm') - input(type='hidden', name='_csrf', value=_csrf) - .form-group - label(class='col-sm-3 control-label', for='email') Your email * - .col-sm-8 - input.form-control(type='text', name='email', id='email', autocomplete="off", ng-model='email', required='required', ng-keypress='') - .col-sm-8.col-sm-offset-3(ng-cloak, ng-show="doneWithFirst100HoursForm.$error.email && !doneWithFirst100HoursForm.email.$pristine") - alert(type='danger') - span.ion-close-circled - | Please enter a valid email format. - .col-sm-8.col-sm-offset-3(ng-cloak, ng-show="doneWithFirst100HoursForm.email.$invalid && doneWithFirst100HoursForm.email.$error.required && !doneWithFirst100HoursForm.email.$pristine") - alert(type='danger') - span.ion-close-circled(id='#email-error'). - Your email is required. - .form-group - .col-sm-offset-2.col-sm-8 - button.btn.btn-primary(type='submit', ng-disabled='doneWithFirst100HoursForm.$invalid') - span.ion-paper-airplane - | Submit \ No newline at end of file diff --git a/views/contact/nonprofits.jade b/views/contact/nonprofits.jade deleted file mode 100644 index 1d42827702..0000000000 --- a/views/contact/nonprofits.jade +++ /dev/null @@ -1,90 +0,0 @@ -extends ../layout - -block content - .jumbotron - .text-center - h1.nonprofit-landing.hug-top Get pro bono code for your nonprofit - .big-break - h2 Our process: - .row - .col-xs-12.col-sm-12.col-md-4 - h3.nowrap Your idea - img.img-responsive.landing-icon.img-center(src= 'https://s3.amazonaws.com/freecodecamp/landingIcons_portfolio.svg.gz', title='Get great references and connections to help you get a job') - p.landing-p You tell us how we can help you. - .col-xs-12.col-sm-12.col-md-4 - h3.nowrap Our team - img.img-responsive.landing-icon.img-center(src= 'https://s3.amazonaws.com/freecodecamp/landingIcons_nonprofits.svg.gz', title='Build a portfolio of apps for nonprofits') - p.landing-p We'll hand pick developers and a project manager. - .col-xs-12.col-sm-12.col-md-4 - h3.nowrap Your solution - img.img-responsive.landing-icon.img-center(src= 'https://s3.amazonaws.com/freecodecamp/landingIcons_connect.svg.gz', title='Help nonprofits') - p.landing-p Together we'll set milestones and complete your project. - .big-break - h2 Solutions we can help you build: - .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 Web Forms - .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 - br - br - .big-break - - script. - challengeName = 'Home' - .big-break - h3 Fill in this form. We'll get back to you within 48 hours. - h4 - form.form-horizontal(role='form', action="/nonprofits/", method='POST', novalidate='novalidate', name='nonprofitForm') - input(type='hidden', name='_csrf', value=_csrf) - .form-group - label(class='col-sm-2 control-label', for='name') Your name * - .col-sm-8 - input.form-control(type='text', name='name', id='name', autocomplete="off", ng-model='name', required='required') - .col-sm-8.col-sm-offset-2(ng-cloak, ng-show="nonprofitForm.name.$invalid && nonprofitForm.name.$error.required && !nonprofitForm.name.$pristine") - alert(type='danger') - span.ion-close-circled(id='#name-error') - | Your name is required. - .form-group - label(class='col-sm-2 control-label', for='email') Your email * - .col-sm-8 - input.form-control(type='text', name='email', id='email', autocomplete="off", ng-model='email', required='required') - .col-sm-8.col-sm-offset-2(ng-cloak, ng-show="nonprofitForm.email.$invalid && nonprofitForm.email.$error.required && !nonprofitForm.email.$pristine") - alert(type='danger') - span.ion-close-circled(id='#email-error'). - Your email is required. - .form-group - label(class='col-sm-2 control-label', for='message') Briefly describe what problem you need to solve, and for whom. * - .col-sm-8 - textarea.form-control(type='text', name='message', id='message', rows='7', autocomplete="off", ng-model='message', required='required') - .col-sm-8.col-sm-offset-2(ng-cloak, ng-show="nonprofitForm.message.$invalid && nonprofitForm.message.$error.required && !nonprofitForm.message.$pristine") - alert(type='danger') - span.ion-close-circled(id='#message-error') - | Your message is required. - .form-group - .col-sm-offset-2.col-sm-8 - button.btn.btn-primary(type='submit', ng-disabled='nonprofitForm.$invalid') - span.ion-paper-airplane - | Submit - script. - var challengeName = 'Non-profit Interest' \ No newline at end of file diff --git a/views/nonprofits/are-there-people-that-are-already-benefiting-from-your-services.jade b/views/nonprofits/are-there-people-that-are-already-benefiting-from-your-services.jade deleted file mode 100644 index 5f82c3c82b..0000000000 --- a/views/nonprofits/are-there-people-that-are-already-benefiting-from-your-services.jade +++ /dev/null @@ -1,12 +0,0 @@ -extends ../layout -block content - .jumbotron.text-center - h1.hug-top Nonprofit Sign Up - include ../partials/nonprofit-application-progress-bar - h2 We build solutions for nonprofits who are already serving a need. Are there people who already benefit from your services? - .spacer - .row - .col-xs-6 - a.btn.btn-primary.btn-big.btn-block(href='/nonprofits/ok-with-javascript') Yes - .col-xs-6 - a.btn.btn-warning.btn-big.btn-block(href='/nonprofits/other-solutions') No \ No newline at end of file diff --git a/views/nonprofits/are-you-with-a-registered-nonprofit.jade b/views/nonprofits/are-you-with-a-registered-nonprofit.jade deleted file mode 100644 index 4dc9a6e639..0000000000 --- a/views/nonprofits/are-you-with-a-registered-nonprofit.jade +++ /dev/null @@ -1,12 +0,0 @@ -extends ../layout -block content - .jumbotron.text-center - h1.hug-top Nonprofit Sign Up - include ../partials/nonprofit-application-progress-bar - h2 Do you represent a nonprofit organization that is registered with your government? - .spacer - .row - .col-xs-6 - a.btn.btn-primary.btn-big.btn-block(href='/nonprofits/are-there-people-that-are-already-benefiting-from-your-services') Yes - .col-xs-6 - a.btn.btn-warning.btn-big.btn-block(href='/nonprofits/other-solutions') No \ No newline at end of file diff --git a/views/nonprofits/home.jade b/views/nonprofits/home.jade deleted file mode 100644 index b76a306f25..0000000000 --- a/views/nonprofits/home.jade +++ /dev/null @@ -1,83 +0,0 @@ -extends ../layout -block content - .jumbotron - .text-center - h2.nonprofit-landing.hug-top We'll code for your nonprofit, pro bono - .big-break - h2 Some of our success stories - .row - .col-xs-12.col-sm-12.col-md-4 - img.img-responsive.testimonial-image.img-center(src="https://s3.amazonaws.com/freecodecamp/testimonial-jen.jpg", alt="@jenthebest's testimonial image") - .testimonial-copy Getting back on track with Free Code Camp and committing to a new career in 2015! - h3 - @jenbestyoga - .col-xs-12.col-sm-12.col-md-4 - img.img-responsive.testimonial-image.img-center(src="https://s3.amazonaws.com/freecodecamp/testimonial-tate.jpg", alt="@TateThurston's testimonial image") - .testimonial-copy Just built my company's website with skills I've learned from Free Code Camp! - h3 - @TateThurston - .col-xs-12.col-sm-12.col-md-4 - img.img-responsive.testimonial-image.img-center(src="https://s3.amazonaws.com/freecodecamp/testimonial-cynthia.jpg", alt="@cynthialanel's testimonial image") - .testimonial-copy I'm currently working through Free Code Camp to improve my JavaScript. The community is very welcoming! - h3 - @cynthialanel - .big-break - a.btn.btn-cta.signup-btn(href="/nonprofits/are-you-with-a-registered-nonprofit") Get pro bono help for my nonprofit - .big-break - h2 Our process - .row - .col-xs-12.col-sm-12.col-md-4 - h3.nowrap Your idea - img.img-responsive.landing-icon.img-center(src= 'https://s3.amazonaws.com/freecodecamp/landingIcons_portfolio.svg.gz', title='Get great references and connections to help you get a job') - p.landing-p You tell us how we can help you. - .col-xs-12.col-sm-12.col-md-4 - h3.nowrap Our team - img.img-responsive.landing-icon.img-center(src= 'https://s3.amazonaws.com/freecodecamp/landingIcons_nonprofits.svg.gz', title='Build a portfolio of apps for nonprofits') - p.landing-p We'll hand pick developers and a project manager. - .col-xs-12.col-sm-12.col-md-4 - h3.nowrap Your solution - img.img-responsive.landing-icon.img-center(src= 'https://s3.amazonaws.com/freecodecamp/landingIcons_connect.svg.gz', title='Help nonprofits') - p.landing-p Together we'll set milestones and complete your project. - .big-break - h2 Solutions we can help you build: - .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 Web Forms - .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 - br - br - .big-break - h2 Why you should join our community right now: - h3.col-xs-offset-0.col-sm-offset-1 - ul.text-left - li.ion-code   We're thousands of professionals, all learning to code together - li.ion-code   We're building projects for dozens of nonprofits - li.ion-code   Our community is 100% free and open source - li.ion-code   You'll learn Full Stack JavaScript and become a Software Engineer - li.ion-code   You'll work through our focused, interactive courses and tutorials - li.ion-code   You'll learn to code at your own pace, in your browser or on your phone - li.ion-code   You'll become qualified for thousands of jobs currently going unfilled - li.ion-code   You can get help in real time from our community chat rooms and forum - li.ion-code   We all share one common goal: to boost our careers with code - .big-break - a.btn.btn-cta.signup-btn(href="/nonprofits/are-you-with-a-registered-nonprofit") Get pro bono help for my nonprofit - script. - challengeName = 'Home' \ No newline at end of file diff --git a/views/nonprofits/how-can-free-code-camp-help-you.jade b/views/nonprofits/how-can-free-code-camp-help-you.jade deleted file mode 100644 index 8c9b9678a5..0000000000 --- a/views/nonprofits/how-can-free-code-camp-help-you.jade +++ /dev/null @@ -1,33 +0,0 @@ -extends ../layout -block content - .jumbotron.text-center - h1.hug-top Nonprofit Sign Up - include ../partials/nonprofit-application-progress-bar - h2 How can Free Code Camp help you? - .text-left.form-inline - h3.col-xs-12.col-sm-offset-5.checkbox-table - .col-xs-12 - input.checkbox(type='checkbox', id='website') - label.ion-android-globe   Websites - .col-xs-12 - input.checkbox(type='checkbox', id='donation') - label.ion-card   Donation Systems - .col-xs-12 - input.checkbox(type='checkbox', id='volunteer') - label.ion-android-calendar   Volunteer Systems - .col-xs-12 - input.checkbox(type='checkbox', id='inventory') - label.ion-ios-box   Inventory Systems - .col-xs-12 - input.checkbox(type='checkbox', id='eLearning') - label.ion-university   E-learning Platforms - .col-xs-12 - input.checkbox(type='checkbox', id='form') - label.ion-ios-list   Web Forms - .col-xs-12 - input.checkbox(type='checkbox', id='community') - label.ion-ios-people   Community Tools - .col-xs-12 - input.checkbox(type='checkbox', id='other') - label.ion-settings   Other tools - button#next-step.btn.btn-primary.btn-big.btn-block(type='submit') I've selected all that apply and am ready to move on diff --git a/views/nonprofits/in-exchange-we-ask.jade b/views/nonprofits/in-exchange-we-ask.jade deleted file mode 100644 index e6b02c0877..0000000000 --- a/views/nonprofits/in-exchange-we-ask.jade +++ /dev/null @@ -1,17 +0,0 @@ -extends ../layout -block content - .jumbotron - h1.hug-top.text-center Nonprofit Sign Up - include ../partials/nonprofit-application-progress-bar - h2 Great! In exchange for our help, we ask only that you: - h3 - ol - li Appoint one principal stakeholder to serve on behalf of your organization. - li Communicate with our campers on a regular basis, to answer questions and provide them with direction. - li Commit to using the solution that our campers build for your nonprofit. - .spacer - .row - .col-xs-6 - a.btn.btn-primary.btn-big.btn-block(href='/nonprofits/how-can-free-code-camp-help-you') Sounds good! - .col-xs-6 - a.btn.btn-warning.btn-big.btn-block(href='/nonprofits/other-solutions') This might not be for us. \ No newline at end of file diff --git a/views/nonprofits/link-us-to-your-website.jade b/views/nonprofits/link-us-to-your-website.jade deleted file mode 100644 index bdb59455ad..0000000000 --- a/views/nonprofits/link-us-to-your-website.jade +++ /dev/null @@ -1,14 +0,0 @@ -extends ../layout -block content - .jumbotron.text-center - h1.hug-top Nonprofit Sign Up - include ../partials/nonprofit-application-progress-bar - h2 Link us to the website, blog, or social media page that best represents your organization. - .spacer - form(role='form', method='GET', action="/nonprofits/tell-us-your-email/?" + existingParams) - input(type='hidden', name='_csrf', value=_csrf) - .formgroup - .input-group - input.form-control.big-text-field.field-responsive(type='text', name='link', autocomplete='off', maxlength='500', autofocus='') - span.input-group-btn - button.btn.btn-big.btn-primary.btn-responsive Submit \ No newline at end of file diff --git a/views/nonprofits/ok-with-javascript.jade b/views/nonprofits/ok-with-javascript.jade deleted file mode 100644 index 1835218868..0000000000 --- a/views/nonprofits/ok-with-javascript.jade +++ /dev/null @@ -1,12 +0,0 @@ -extends ../layout -block content - .jumbotron.text-center - h1.hug-top Nonprofit Sign Up - include ../partials/nonprofit-application-progress-bar - h2 Our campers are learning to code using modern full stack JavaScript technologies like Node.js. We do not build or maintain Wordpress, Drupal, or other non-JavaScript based frameworks. - .spacer - .row - .col-xs-6 - a.btn.btn-primary.btn-big.btn-block(href='/nonprofits/in-exchange-we-ask') Sounds good! - .col-xs-6 - a.btn.btn-warning.btn-big.btn-block(href='/nonprofits/other-solutions') This might not be for us. \ No newline at end of file diff --git a/views/nonprofits/tell-us-your-email.jade b/views/nonprofits/tell-us-your-email.jade deleted file mode 100644 index 3bd8918f6b..0000000000 --- a/views/nonprofits/tell-us-your-email.jade +++ /dev/null @@ -1,14 +0,0 @@ -extends ../layout -block content - .jumbotron.text-center - h1.hug-top Nonprofit Sign Up - include ../partials/nonprofit-application-progress-bar - h2 Please tell us your email - .spacer - form(role='form', method='GET', novalidate='novalidate', name='nonprofitForm', action="/nonprofits/tell-us-your-name/") - input(type='hidden', name='_csrf', value=_csrf) - .formgroup - .input-group - input.form-control.big-text-field.field-responsive(type='text', name='email', autocomplete='off', maxlength='500', autofocus='') - span.input-group-btn - button.btn.btn-big.btn-primary.btn-responsive Submit \ No newline at end of file diff --git a/views/nonprofits/tell-us-your-name.jade b/views/nonprofits/tell-us-your-name.jade deleted file mode 100644 index 915c0b3258..0000000000 --- a/views/nonprofits/tell-us-your-name.jade +++ /dev/null @@ -1,13 +0,0 @@ -extends ../layout -block content - .jumbotron.text-center - h1.hug-top Nonprofit Sign Up - include ../partials/nonprofit-application-progress-bar - h2 Please tell us your name - .spacer - form(role='form', method='POST', novalidate='novalidate', name='nonprofitForm', action="/nonprofits/finish-application/") - .formgroup - .input-group - input.form-control.big-text-field.field-responsive(type='text', name='name', autocomplete='off', maxlength='140', autofocus='') - span.input-group-btn - button.btn.btn-big.btn-primary.btn-responsive Submit \ No newline at end of file diff --git a/views/nonprofits/what-does-your-nonprofit-do.jade b/views/nonprofits/what-does-your-nonprofit-do.jade deleted file mode 100644 index 166cb71418..0000000000 --- a/views/nonprofits/what-does-your-nonprofit-do.jade +++ /dev/null @@ -1,28 +0,0 @@ -extends ../layout -block content - .jumbotron.text-center - h1.hug-top Nonprofit Sign Up - include ../partials/nonprofit-application-progress-bar - h2 In 140 characters or less, what does your nonprofit do? For whom? - .spacer - form(role='form', method='GET', action="/nonprofits/link-us-to-your-website/") - input(type='hidden', name='_csrf', value=_csrf) - .formgroup - .input-group - input.form-control.big-text-field.field-responsive#what-does-the-nonprofit-do(type='text', maxlength='140', autofocus='', autocomplete='off', name='mission') - span.input-group-btn - button.btn.btn-big.btn-primary.btn-responsive(href='/nonprofits/link-us-to-your-website') Submit - .text-left - span#what-does-the-nonprofit-do-feedback - - script. - var text_max = 140; - $('#what-does-the-nonprofit-do-feedback').html(text_max + ' characters remaining'); - $('#what-does-the-nonprofit-do').keyup(function (e) { - if (e.which === 13 || e === 13) { - $('#submit-comment-to-comment').click(); - } - var text_length = $('#what-does-the-nonprofit-do').val().length; - var text_remaining = text_max - text_length; - $('#what-does-the-nonprofit-do-feedback').html(text_remaining + ' characters remaining'); - }); \ No newline at end of file diff --git a/views/nonprofits/your-nonprofit-project-application-has-been-submitted.jade b/views/nonprofits/your-nonprofit-project-application-has-been-submitted.jade deleted file mode 100644 index 1882ada3bc..0000000000 --- a/views/nonprofits/your-nonprofit-project-application-has-been-submitted.jade +++ /dev/null @@ -1,6 +0,0 @@ -extends ../layout -block content - .jumbotron.text-center - h1.hug-top Nonprofit Sign Up - include ../partials/nonprofit-application-progress-bar - h2 Thank you for reaching out to us. We’ll send you an email no later than #{getBackDay}. diff --git a/views/resources/nonprofits-form.jade b/views/resources/nonprofits-form.jade new file mode 100644 index 0000000000..be85b628e4 --- /dev/null +++ b/views/resources/nonprofits-form.jade @@ -0,0 +1,28 @@ +html. + + + + + nonprofit-projects + + + + + + + + diff --git a/views/resources/nonprofits.jade b/views/resources/nonprofits.jade new file mode 100644 index 0000000000..1c37c8eb8d --- /dev/null +++ b/views/resources/nonprofits.jade @@ -0,0 +1,55 @@ +extends ../layout +block content + .jumbotron + .text-center + .row + .col-xs-12 + h1.nonprofit-landing.hug-top 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='https://www.youtube.com/embed/KOs0m_AhkXA') + .big-break + h2 Our process: + .row + .col-xs-12.col-sm-12.col-md-4 + h3.nowrap Your idea + 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 tell us how we can help you. + .col-xs-12.col-sm-12.col-md-4 + h3.nowrap Our team + 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 We'll hand pick developers and a project manager. + .col-xs-12.col-sm-12.col-md-4 + h3.nowrap Your solution + 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 Together we'll set milestones and complete your project. + .big-break + h2 Solutions we can help you build: + .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 + .big-break + a.btn.btn-cta.signup-btn.btn-block(href="/nonprofits-form") My nonprofit needs coding help diff --git a/views/resources/pmi-acp-agile-project-managers-form.jade b/views/resources/pmi-acp-agile-project-managers-form.jade new file mode 100644 index 0000000000..781fdb0698 --- /dev/null +++ b/views/resources/pmi-acp-agile-project-managers-form.jade @@ -0,0 +1,29 @@ +html. + + + + + PMI-ACP + + + + + + + + + diff --git a/views/resources/pmi-acp-agile-project-managers.jade b/views/resources/pmi-acp-agile-project-managers.jade new file mode 100644 index 0000000000..a812d59d3e --- /dev/null +++ b/views/resources/pmi-acp-agile-project-managers.jade @@ -0,0 +1,55 @@ +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='https://www.youtube.com/embed/KOs0m_AhkXA') + .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 + .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 + .big-break + a.btn.btn-cta.signup-btn.btn-block(href="/pmi-acp-agile-project-manager-form") I want to lead agile projects for nonprofits