more redesign work on challenge views

This commit is contained in:
Quincy Larson
2016-01-09 22:12:32 -06:00
committed by Berkeley Martinez
parent 7e481833cd
commit 7eefcb0705
14 changed files with 261 additions and 226 deletions

View File

@ -26,7 +26,7 @@
//## Settings for some of the most global styles. //## Settings for some of the most global styles.
//** Background color for `<body>`. //** Background color for `<body>`.
@body-bg: #fefefe; @body-bg: #eee;
//** Global text color on `<body>`. //** Global text color on `<body>`.
@text-color: @gray-dark; @text-color: @gray-dark;

View File

@ -291,6 +291,8 @@ ul {
margin-right: 10px; margin-right: 10px;
white-space: nowrap; white-space: nowrap;
} }
background-color: #215f1e;
text-align: center;
} }
.navbar { .navbar {
white-space: nowrap; white-space: nowrap;
@ -427,13 +429,6 @@ thead {
} }
} }
.signin-button-nav {
@media (min-width: 991px) and (max-width: 1010px) {
margin-left: -10px;
margin-right: -5px;
}
}
.navbar-nav a { .navbar-nav a {
color: @gray-lighter; color: @gray-lighter;
font-size: 20px; font-size: 20px;
@ -444,16 +439,15 @@ thead {
color: @gray-lighter; color: @gray-lighter;
} }
.navbar-right {
background-color: #215f1e;
text-align: center;
}
.signup-btn-nav { .signup-btn-nav {
margin-top: -2px !important; margin-top: -2px !important;
padding-top: 10px !important; padding-top: 10px !important;
padding-bottom: 10px !important; padding-bottom: 10px !important;
margin-right: -12px; margin-right: -12px;
@media (min-width: 991px) and (max-width: 1010px) {
margin-left: -10px;
margin-right: -5px;
}
} }
.public-profile-img { .public-profile-img {

View File

@ -1,19 +1,18 @@
extends ../layout extends ../layout
block content block content
.jumbotron.text-center .row
.row .col-xs-12
.col-xs-12 h2.text-center Sign in with an email address here:
h2 Sign in with an email address here: .col-sm-6.col-sm-offset-3
.col-sm-6.col-sm-offset-3 form(method='POST', action='/api/users/login')
form(method='POST', action='/api/users/login') input(type='hidden', name='_csrf', value=_csrf)
input(type='hidden', name='_csrf', value=_csrf) .form-group
.form-group input.input-lg.form-control(type='email', name='email', id='email', placeholder='Email', autofocus=true)
input.input-lg.form-control(type='email', name='email', id='email', placeholder='Email', autofocus=true) .form-group
.form-group input.input-lg.form-control(type='password', name='password', id='password', placeholder='Password')
input.input-lg.form-control(type='password', name='password', id='password', placeholder='Password') button.btn.btn-primary.btn-lg.btn-block(type='submit')
button.btn.btn-primary.btn-lg.btn-block(type='submit') span.ion-android-hand
span.ion-android-hand | Login
| Login .button-spacer
.button-spacer .button-spacer
.button-spacer a.btn.btn-info.btn-lg.btn-block(href='/forgot') Forgot your password?
a.btn.btn-info.btn-lg.btn-block(href='/forgot') Forgot your password?

View File

@ -1,9 +1,8 @@
extends ../layout extends ../layout
block content block content
script. script.
var challengeName = 'Email Signup' var challengeName = 'Email Signup'
.jumbotron.text-center h2.text-center Sign up with an email address here:
h2 Sign up with an email address here:
form.form-horizontal(method='POST', action='/api/users', name="signupForm") form.form-horizontal(method='POST', action='/api/users', name="signupForm")
.row .row
.col-sm-6.col-sm-offset-3 .col-sm-6.col-sm-offset-3
@ -13,6 +12,6 @@ block content
.form-group .form-group
input.input-lg.form-control(type='password', name='password', id='password', placeholder='password', required, pattern=".{8,50}", title="Must be at least 8 characters and no longer than 50 characters.") input.input-lg.form-control(type='password', name='password', id='password', placeholder='password', required, pattern=".{8,50}", title="Must be at least 8 characters and no longer than 50 characters.")
.form-group .form-group
button.btn.btn-lg.btn-success.btn-block(type='submit') button.btn.btn-lg.btn-primary.btn-block(type='submit')
span.ion-person-add span.ion-person-add
| Signup | Signup

View File

@ -1,12 +1,11 @@
extends ../layout extends ../layout
block content block content
.col-sm-8.col-sm-offset-2.jumbotron .col-sm-6.col-sm-offset-3
form(method='POST', action="/forgot") form(method='POST', action="/forgot")
h2.text-center Forgot Password Reset h2.text-center Forgot Password Reset
input(type='hidden', name='_csrf', value=_csrf) input(type='hidden', name='_csrf', value=_csrf)
.form-group .form-group
p Enter your email address. We'll send you password reset instructions. p.large-p Enter your email address. We'll send you password reset instructions.
input.form-control.input-lg(type='email', name='email', id='email', placeholder='Email', autofocus=true required) input.form-control.input-lg(type='email', name='email', id='email', placeholder='Email', autofocus=true required)
.form-group .form-group
button.btn.btn-primary.btn-lg.btn-block(type='submit') button.btn.btn-primary.btn-lg.btn-block(type='submit')

View File

@ -4,7 +4,6 @@ block content
link(rel='stylesheet', href='/bower_components/CodeMirror/addon/lint/lint.css') link(rel='stylesheet', href='/bower_components/CodeMirror/addon/lint/lint.css')
link(rel='stylesheet', href='/bower_components/CodeMirror/theme/monokai.css') link(rel='stylesheet', href='/bower_components/CodeMirror/theme/monokai.css')
link(rel='stylesheet', href='/css/ubuntu.css') link(rel='stylesheet', href='/css/ubuntu.css')
.row .row
.col-md-4.col-lg-3 .col-md-4.col-lg-3
.scroll-locker(id = "scroll-locker") .scroll-locker(id = "scroll-locker")
@ -14,6 +13,7 @@ block content
if (isCompleted) if (isCompleted)
| &nbsp; | &nbsp;
i.ion-checkmark-circled.text-primary(title="Completed") i.ion-checkmark-circled.text-primary(title="Completed")
hr
.row .row
.col-xs-12 .col-xs-12
.bonfire-instructions .bonfire-instructions

View File

@ -4,7 +4,7 @@ block content
link(rel='stylesheet', href='/bower_components/CodeMirror/addon/lint/lint.css') link(rel='stylesheet', href='/bower_components/CodeMirror/addon/lint/lint.css')
link(rel='stylesheet', href='/bower_components/CodeMirror/theme/monokai.css') link(rel='stylesheet', href='/bower_components/CodeMirror/theme/monokai.css')
link(rel='stylesheet', href='/css/ubuntu.css') link(rel='stylesheet', href='/css/ubuntu.css')
.row.courseware-height .row
.col-md-3.col-lg-3 .col-md-3.col-lg-3
.scroll-locker(id = "scroll-locker") .scroll-locker(id = "scroll-locker")
.innerMarginFix(style = "width: 99%;") .innerMarginFix(style = "width: 99%;")

View File

@ -8,11 +8,12 @@ block content
.col-md-4.col-lg-3 .col-md-4.col-lg-3
.scroll-locker(id = "scroll-locker") .scroll-locker(id = "scroll-locker")
.innerMarginFix(style = "width: 99%;") .innerMarginFix(style = "width: 99%;")
#testCreatePanel.well #testCreatePanel
h3.text-center.negative-10= name h3.text-center.negative-10= name
if (isCompleted) if (isCompleted)
| &nbsp; | &nbsp;
i.ion-checkmark-circled.text-primary(title="Completed") i.ion-checkmark-circled.text-primary(title="Completed")
hr
.row .row
.col-xs-12 .col-xs-12
.bonfire-instructions .bonfire-instructions

View File

@ -5,21 +5,17 @@ block content
.spacer .spacer
.row .row
.col-xs-12.col-sm-12.col-md-3 .col-xs-12.col-sm-12.col-md-3
h3.nowrap Get connected
img.img-responsive.landing-icon.img-center(src= 'https://s3.amazonaws.com/freecodecamp/landingIcons_connect.svg.gz', alt='Get great references and connections to start your software engineer career') img.img-responsive.landing-icon.img-center(src= 'https://s3.amazonaws.com/freecodecamp/landingIcons_connect.svg.gz', alt='Get great references and connections to start your software engineer career')
p.landing-p Join a community of 100,000+ motivated people. p.large-p Join a community of 100,000+ developers.
.col-xs-12.col-sm-12.col-md-3 .col-xs-12.col-sm-12.col-md-3
h3.nowrap Learn JavaScript
img.img-responsive.landing-icon.img-center(src= 'https://s3.amazonaws.com/freecodecamp/landingIcons_learn.svg.gz', alt='Learn to code and learn full stack JavaScript') img.img-responsive.landing-icon.img-center(src= 'https://s3.amazonaws.com/freecodecamp/landingIcons_learn.svg.gz', alt='Learn to code and learn full stack JavaScript')
p.landing-p Work together on Full Stack JavaScript coding challenges. p.large-p Work together on coding challenges.
.col-xs-12.col-sm-12.col-md-3 .col-xs-12.col-sm-12.col-md-3
h3.nowrap Build your portfolio
img.img-responsive.landing-icon.img-center(src= 'https://s3.amazonaws.com/freecodecamp/landingIcons_portfolio.svg.gz', alt='Build a portfolio of apps for nonprofits') img.img-responsive.landing-icon.img-center(src= 'https://s3.amazonaws.com/freecodecamp/landingIcons_portfolio.svg.gz', alt='Build a portfolio of apps for nonprofits')
p.landing-p Build apps that solve real problems for real people. p.large-p Build a portfolio of apps that solve real problems.
.col-xs-12.col-sm-12.col-md-3 .col-xs-12.col-sm-12.col-md-3
h3.nowrap Help nonprofits
img.img-responsive.landing-icon.img-center(src= 'https://s3.amazonaws.com/freecodecamp/landingIcons_nonprofits.svg.gz', alt='Help empower nonprofits with code') img.img-responsive.landing-icon.img-center(src= 'https://s3.amazonaws.com/freecodecamp/landingIcons_nonprofits.svg.gz', alt='Help empower nonprofits with code')
p.landing-p Give nonprofits a boost by empowering them with code. p.large-p Empowering nonprofits with code.
.big-break .big-break
.row .row
.col-xs-12.col-sm-8.col-sm-offset-2 .col-xs-12.col-sm-8.col-sm-offset-2
@ -90,14 +86,15 @@ block content
.spacer .spacer
.col-xs-offset-0.col-sm-offset-1.text-left .col-xs-offset-0.col-sm-offset-1.text-left
h2 Here's why you should join our open source community right now: h2 Here's why you should join our open source community right now:
.spacer
ul.large-li ul.large-li
li.ion-code &thinsp; You'll get help in real time from our community chat rooms. li.ion-code.large-p &thinsp; You'll get help in real time from our community chat rooms.
li.ion-code &thinsp; You'll meet up with other coders in your city. li.ion-code.large-p &thinsp; You'll meet up with other coders in your city.
li.ion-code &thinsp; You'll learn to code at your own pace, in your browser or on your phone. li.ion-code.large-p &thinsp; You'll learn to code at your own pace, in your browser or on your phone.
li.ion-code &thinsp; You'll work through our focused, interactive courses and tutorials. li.ion-code.large-p &thinsp; You'll work through our focused, interactive courses and tutorials.
li.ion-code &thinsp; You'll learn state-of-the-art full stack JavaScript technologies. li.ion-code.large-p &thinsp; You'll learn state-of-the-art full stack JavaScript technologies.
li.ion-code &thinsp; You'll build projects that help nonprofits carry out their missions more effectively. li.ion-code.large-p &thinsp; You'll build projects that help nonprofits carry out their missions more effectively.
li.ion-code &thinsp; You'll assemble a portfolio of real apps used by real people. li.ion-code.large-p &thinsp; You'll assemble a portfolio of real apps used by real people.
.big-break .big-break
.row .row
.col-xs-12.col-sm-8.col-sm-offset-2 .col-xs-12.col-sm-8.col-sm-offset-2

View File

@ -2,77 +2,74 @@ extends ../layout
block content block content
script. script.
var challengeName = 'Nonprofits View'; var challengeName = 'Nonprofits View';
.panel.panel-info .row
.panel-heading.text-center= title .col-xs-12.col-sm-10.col-sm-offset-1
.panel-body
.row .row
.col-xs-12.col-sm-10.col-sm-offset-1 .col-xs-12
.row img.img-center.img-responsive(src=imageUrl)
.col-xs-12 .spacer
img.img-center.img-responsive(src=imageUrl) .row
.col-xs-12.col-sm-4
img.img-responsive(src=logoUrl)
.col-xs-12.col-sm-8
.col-xs-12
h4= whatDoesNonprofitDo
h4
a(href=websiteLink)= websiteLink
.spacer .spacer
.row h3 Project Description:
.col-xs-12.col-sm-4 .col-xs-12
img.img-responsive(src=logoUrl) h4.negative-15 #{projectDescription} (About #{estimatedHours} hours per camper)
.col-xs-12.col-sm-8 .spacer
.col-xs-12 h3 This project involves building:
h4= whatDoesNonprofitDo h4.negative-15.col-xs-12
h4 if (approvedWebsite)
a(href=websiteLink)= websiteLink .ion-android-globe &nbsp; Website
.spacer if (approvedDonor)
h3 Project Description: .ion-card &nbsp; Donor Management System
.col-xs-12 if (approvedInventory)
h4.negative-15 #{projectDescription} (About #{estimatedHours} hours per camper) .ion-ios-box &nbsp; Inventory Management System
.spacer if (approvedVolunteer)
h3 This project involves building: .ion-android-calendar &nbsp; Volunteer Management System
h4.negative-15.col-xs-12 if (approvedForm)
if (approvedWebsite) .ion-ios-list &nbsp; Webform
.ion-android-globe &nbsp; Website if (approvedCommunity)
if (approvedDonor) .ion-ios-people &nbsp; Community Management System
.ion-card &nbsp; Donor Management System if (approvedELearning)
if (approvedInventory) .ion-university &nbsp; E-learning Platform
.ion-ios-box &nbsp; Inventory Management System if (approvedOther)
if (approvedVolunteer) .ion-settings &nbsp; Other tools
.ion-android-calendar &nbsp; Volunteer Management System h3 Project Status: #{currentStatus}
if (approvedForm) if (moneySaved > 0)
.ion-ios-list &nbsp; Webform h3.text-primary Estimated Cost Savings for Nonprofit: $#{moneySaved.toString().replace(/000$/, ',000')}
if (approvedCommunity)
.ion-ios-people &nbsp; Community Management System
if (approvedELearning)
.ion-university &nbsp; E-learning Platform
if (approvedOther)
.ion-settings &nbsp; Other tools
h3 Project Status: #{currentStatus}
if (moneySaved > 0)
h3.text-primary Estimated Cost Savings for Nonprofit: $#{moneySaved.toString().replace(/000$/, ',000')}
if (interestedCampers && interestedCampers.length > 0) if (interestedCampers && interestedCampers.length > 0)
h3 Interested campers: h3 Interested campers:
.col-xs-12.text-left .col-xs-12.text-left
for interestedCamper in interestedCampers for interestedCamper in interestedCampers
a(href='/' + interestedCamper.username class="interested-camper-image") a(href='/' + interestedCamper.username class="interested-camper-image")
img.profile-picture.float-right(src=interestedCamper.picture) img.profile-picture.float-right(src=interestedCamper.picture)
if (assignedCampers && assignedCampers.length > 0) if (assignedCampers && assignedCampers.length > 0)
h3 Assigned campers: h3 Assigned campers:
.col-xs-12.text-left .col-xs-12.text-left
for assignedCamper in assignedCampers for assignedCamper in assignedCampers
a(href='/' + assignedCamper.username class="interested-camper-image") a(href='/' + assignedCamper.username class="interested-camper-image")
img.profile-picture.float-right(src=assignedCamper.picture) img.profile-picture.float-right(src=assignedCamper.picture)
if (!buttonActive) if (!buttonActive)
.col-xs-12.col-sm-8.col-sm-offset-2 .col-xs-12.col-sm-8.col-sm-offset-2
.text-center .text-center
if !user if !user
a.btn.btn-cta.signup-btn.btn-block(href="/login") Start learning to code (it's free) a.btn.btn-cta.signup-btn.btn-block(href="/login") Start learning to code (it's free)
.button-spacer .button-spacer
else else
a.btn.btn-primary.btn-big.btn-block.disabled(href='/nonprofits/interested-in-nonprofit/#{dashedName}') I'm interested in building this project * a.btn.btn-primary.btn-big.btn-block.disabled(href='/nonprofits/interested-in-nonprofit/#{dashedName}') I'm interested in building this project *
p * Complete all our Bonfires, Ziplines, and Basejumps to unlock this. p * Complete all our Bonfires, Ziplines, and Basejumps to unlock this.
a.btn.btn-info.btn-big.btn-block(href='/nonprofits/directory') Show all Nonprofit Projects a.btn.btn-info.btn-big.btn-block(href='/nonprofits/directory') Show all Nonprofit Projects
.spacer .spacer
if (buttonActive) if (buttonActive)
.col-xs-12.col-sm-8.col-sm-offset-2 .col-xs-12.col-sm-8.col-sm-offset-2
.text-center .text-center
a.btn.btn-primary.btn-big.btn-block(href='/nonprofits/interested-in-nonprofit/#{dashedName}') I'm interested in building this project a.btn.btn-primary.btn-big.btn-block(href='/nonprofits/interested-in-nonprofit/#{dashedName}') I'm interested in building this project
.button-spacer .button-spacer
a.btn.btn-info.btn-big.btn-block(href='/nonprofits/directory') Show all Nonprofit Projects a.btn.btn-info.btn-big.btn-block(href='/nonprofits/directory') Show all Nonprofit Projects
.spacer .spacer

View File

@ -24,9 +24,8 @@ nav.navbar.navbar-default.navbar-fixed-top.nav-height
li li
a(href='/about') About a(href='/about') About
if !user if !user
li &thinsp; &thinsp; &thinsp;
li li
a.btn.signup-btn.signup-btn-nav.signin-button-nav(href='/login') Sign in a(href='/login') Sign in
else else
li.brownie-points-nav li.brownie-points-nav
a(href='/' + user.username) [&thinsp;#{user.progressTimestamps.length}&thinsp;] a(href='/' + user.username) [&thinsp;#{user.progressTimestamps.length}&thinsp;]

View File

@ -0,0 +1,54 @@
extends ../layout
block content
table.table.link-table
tr
td.text-right
.ion-erlenmeyer-flask
td
a(href="/labs") Cool Apps Built by Campers
tr
td.text-right
.ion-chatbox
td
a(href="/stories") Stories from Campers
tr
td.text-right
.ion-speakerphone
td
a(href='//medium.freecodecamp.com', target='_blank') Medium Publication
tr
td.text-right
.ion-social-github
td
a(href="//github.com/freecodecamp", target='_blank') GitHub Repository
tr
td.text-right
.ion-social-reddit
td
a(href="//www.reddit.com/r/freecodecamp", target='_blank') Subreddit
tr
td.text-right
.ion-social-linkedin
td
a(href="//www.linkedin.com/edu/school?id=166029", target='_blank') LinkedIn University Page
tr
td.text-right
.ion-social-twitter
td
a(href="//twitter.com/freecodecamp", target='_blank') Twitter Feed
tr
td.text-right
.ion-social-facebook
td
a(href="//facebook.com/freecodecamp") Facebook Page
tr
td.text-right
.ion-social-twitch-outline
td
a(href="//twitch.tv/freecodecamp", target='_blank') Twitch.tv Channel
tr
td.text-right
.ion-locked
td
a(href="//github.com/FreeCodeCamp/freecodecamp/wiki/Free-Code-Camp's-Privacy-Policy") Privacy Policy
.spacer

View File

@ -1,77 +1,75 @@
extends ../layout extends ../layout
block content block content
.jumbotron .text-center
.text-center .row
.row .col-xs-12
.col-xs-12 h1.landing-heading Get pro bono code for your nonprofit.
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 .big-break
.col-xs-12.col-sm-12.col-md-12 h2 As featured in:
.embed-responsive.embed-responsive-16by9 img.img-center.img-responsive(src='https://s3.amazonaws.com/freecodecamp/as-seen-on.png')
iframe.embed-responsive-item(src='//player.vimeo.com/video/126228100') .spacer
.big-break hr
h2 As featured in: .spacer
img.img-center.img-responsive(src='https://s3.amazonaws.com/freecodecamp/as-seen-on.png') h2 Our process:
.spacer .spacer
hr .row
.spacer .col-xs-12.col-sm-12.col-md-4
h2 Our process: img.img-responsive.landing-icon.img-center(src= 'https://s3.amazonaws.com/freecodecamp/landingIcons_portfolio.svg.gz', alt='Image of a briefcase')
.row p.large-p You tell us how we can help you.
.col-xs-12.col-sm-12.col-md-4 .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_nonprofits.svg.gz', alt='Image of people putting their hands together in a huddle')
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 We'll hand pick developers and a project manager.
p.landing-p You tell us how we can help you. .col-xs-12.col-sm-12.col-md-4
.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')
h3.nowrap Our team p.large-p Together we'll set milestones and complete your project.
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') .spacer
p.landing-p We'll hand pick developers and a project manager. hr
.col-xs-12.col-sm-12.col-md-4 .spacer
h3.nowrap Your solution h2 Solutions we can help you build:
img.img-responsive.landing-icon.img-center(src= 'https://s3.amazonaws.com/freecodecamp/landingIcons_connect.svg.gz', alt='image of two people high-fiving') .spacer
p.landing-p Together we'll set milestones and complete your project. .text-center.negative-35
.spacer .col-xs-12.col-sm-12.col-md-3
hr .landing-skill-icon.ion-android-globe
.spacer h2.black-text Websites
h2 Solutions we can help you build: .col-xs-12.col-sm-12.col-md-3
.text-center.negative-35 .landing-skill-icon.ion-card
.col-xs-12.col-sm-12.col-md-3 h2.black-text Donation Systems
.landing-skill-icon.ion-android-globe .col-xs-12.col-sm-12.col-md-3
h2.black-text Websites .landing-skill-icon.ion-android-calendar
.col-xs-12.col-sm-12.col-md-3 h2.black-text Volunteer Systems
.landing-skill-icon.ion-card .col-xs-12.col-sm-12.col-md-3
h2.black-text Donation Systems .landing-skill-icon.ion-ios-box
.col-xs-12.col-sm-12.col-md-3 h2.black-text Inventory Systems
.landing-skill-icon.ion-android-calendar .col-xs-12.col-sm-12.col-md-3
h2.black-text Volunteer Systems .landing-skill-icon.ion-university
.col-xs-12.col-sm-12.col-md-3 h2.black-text E-learning Platforms
.landing-skill-icon.ion-ios-box .col-xs-12.col-sm-12.col-md-3
h2.black-text Inventory Systems .landing-skill-icon.ion-ios-list
.col-xs-12.col-sm-12.col-md-3 h2.black-text Paperless Workflows
.landing-skill-icon.ion-university .col-xs-12.col-sm-12.col-md-3
h2.black-text E-learning Platforms .landing-skill-icon.ion-ios-people
.col-xs-12.col-sm-12.col-md-3 h2.black-text Community Tools
.landing-skill-icon.ion-ios-list .col-xs-12.col-sm-12.col-md-3
h2.black-text Paperless Workflows .landing-skill-icon.ion-settings
.col-xs-12.col-sm-12.col-md-3 h2.black-text ...and other tools
.landing-skill-icon.ion-ios-people .spacer
h2.black-text Community Tools hr
.col-xs-12.col-sm-12.col-md-3 .spacer
.landing-skill-icon.ion-settings .large-p.text-left.col-xs-offset-0.col-sm-offset-1
h2.black-text ...and other tools h2 Our developers build projects for nonprofits who:
.spacer ul.large-li
hr li.ion-code &thinsp; already have people who benefit from their services.
.spacer li.ion-code &thinsp; are registered with their government and have tax-exempt status.
.large-p.text-left.col-xs-offset-0.col-sm-offset-1 li.ion-code &thinsp; have a stakeholder who can meet with our developers to direct the project.
h2 Our developers build projects for nonprofits who: li.ion-code &thinsp; can budget at least $20 per month for their own cloud servers.
ul.large-li li.ion-code &thinsp; can commit to using and maintaining the solution that our developers build.
li.ion-code &thinsp; already have people who benefit from their services. .big-break
li.ion-code &thinsp; are registered with their government and have tax-exempt status. .row
li.ion-code &thinsp; have a stakeholder who can meet with our developers to direct the project. .col-xs-12.col-sm-8.col-sm-offset-2
li.ion-code &thinsp; can budget at least $20 per month for their own cloud servers. a.btn.btn-cta.signup-btn.btn-block(href="/nonprofits-form") My nonprofit needs coding help
li.ion-code &thinsp; can commit to using and maintaining the solution that our developers build. .button-spacer
.big-break a.btn.btn-lg.btn-primary.btn-primary-ghost.btn-block(href="/nonprofits/directory") Browse our directory of nonprofits we've helped
.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
.button-spacer
a.btn.btn-lg.btn-primary.btn-primary-ghost.btn-block(href="/nonprofits/directory") Browse our directory of nonprofits we've helped

View File

@ -1,27 +1,25 @@
extends ../layout extends ../layout
block content block content
.panel.panel-info h1.text-center Stories from happy campers
.panel-heading.text-center Stories from happy campers hr
.panel-body.text-left .row
.col-xs-12.col-sm-10.col-sm-offset-1
.row .row
.col-xs-12.col-sm-10.col-sm-offset-1 for story in stories
.row .col-xs-12.col-sm-6.col-md-4
for story in stories .height-500
.col-xs-12.col-sm-6.col-md-4 a(href=story.linkedin target='_blank')
.height-500 img.testimonial-image.img-responsive.img-center(src=story.image)
a(href=story.linkedin target='_blank') h3.text-center= story.camper
img.testimonial-image.img-responsive.img-center(src=story.image) | &nbsp;
h3.text-center= story.camper a.fa.fa-linkedin-square.text-primary(alt="#{story.camper}'s LinkedIn Profile", href=story.linkedin, target='_blank')
| &nbsp; p.text-justify= story.quote
a.fa.fa-linkedin-square.text-primary(alt="#{story.camper}'s LinkedIn Profile", href=story.linkedin, target='_blank') .col-xs-12.col-sm-10.col-sm-offset-1
p.text-justify= story.quote if moreStories
.col-xs-12.col-sm-10.col-sm-offset-1 .text-center
if moreStories a.btn.btn-lg.btn-primary.btn-primary-ghost.btn-block(href="/all-stories") Show more stories
.text-center .spacer
a.btn.btn-lg.btn-primary.btn-primary-ghost.btn-block(href="/all-stories") Show more stories
.spacer
if !user if !user
.text-center .text-center
a.btn.btn-cta.signup-btn.btn-block(href="/login") Start learning to code (it's free) a.btn.btn-cta.signup-btn.btn-block(href="/login") Start learning to code (it's free)
.spacer