make new landing pages and forms for project managers and nonprofits
This commit is contained in:
60
app.js
60
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,
|
||||
|
@ -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');
|
||||
});
|
||||
}
|
||||
};
|
@ -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) {
|
||||
|
@ -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"
|
||||
|
@ -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
|
@ -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'
|
@ -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
|
@ -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
|
@ -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'
|
@ -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
|
@ -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.
|
@ -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
|
@ -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.
|
@ -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
|
@ -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
|
@ -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');
|
||||
});
|
@ -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}.
|
28
views/resources/nonprofits-form.jade
Normal file
28
views/resources/nonprofits-form.jade
Normal file
@ -0,0 +1,28 @@
|
||||
html.
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<!--Add the title of your typeform below-->
|
||||
<title>nonprofit-projects</title>
|
||||
<!--CSS styles that ensure your typeform takes up all the available screen space (DO NOT EDIT!)-->
|
||||
<style type="text/css">
|
||||
html{
|
||||
margin: 0;
|
||||
height: 100%;
|
||||
overflow: hidden;
|
||||
}
|
||||
iframe{
|
||||
position: absolute;
|
||||
left:0;
|
||||
right:0;
|
||||
bottom:0;
|
||||
top:0;
|
||||
border:0;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<iframe id="typeform-full" width="100%" height="100%" frameborder="0" src="https://freecodecamp.typeform.com/to/JxMS5a"></iframe>
|
||||
<script type="text/javascript" src="https://s3-eu-west-1.amazonaws.com/share.typeform.com/embed.js"></script>
|
||||
</body>
|
||||
</html>
|
55
views/resources/nonprofits.jade
Normal file
55
views/resources/nonprofits.jade
Normal file
@ -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
|
29
views/resources/pmi-acp-agile-project-managers-form.jade
Normal file
29
views/resources/pmi-acp-agile-project-managers-form.jade
Normal file
@ -0,0 +1,29 @@
|
||||
html.
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<!--Add the title of your typeform below-->
|
||||
<title>PMI-ACP</title>
|
||||
|
||||
<!--CSS styles that ensure your typeform takes up all the available screen space (DO NOT EDIT!)-->
|
||||
<style type="text/css">
|
||||
html{
|
||||
margin: 0;
|
||||
height: 100%;
|
||||
overflow: hidden;
|
||||
}
|
||||
iframe{
|
||||
position: absolute;
|
||||
left:0;
|
||||
right:0;
|
||||
bottom:0;
|
||||
top:0;
|
||||
border:0;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<iframe id="typeform-full" width="100%" height="100%" frameborder="0" src="https://freecodecamp.typeform.com/to/MhH9mp"></iframe>
|
||||
<script type="text/javascript" src="https://s3-eu-west-1.amazonaws.com/share.typeform.com/embed.js"></script>
|
||||
</body>
|
||||
</html>
|
55
views/resources/pmi-acp-agile-project-managers.jade
Normal file
55
views/resources/pmi-acp-agile-project-managers.jade
Normal file
@ -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
|
Reference in New Issue
Block a user