Clean up views, remove API controller views, add the gmail-shortcuts, control-shortcuts and deploy-a-website static views. Move all resource controller views to a resources view folder and update routes
This commit is contained in:
5
app.js
5
app.js
@ -192,6 +192,11 @@ app.get('/jquery-exercises', resourcesController.jqueryExercises);
|
|||||||
app.get('/live-pair-programming', resourcesController.livePairProgramming);
|
app.get('/live-pair-programming', resourcesController.livePairProgramming);
|
||||||
app.get('/javascript-in-your-inbox', resourcesController.javaScriptInYourInbox);
|
app.get('/javascript-in-your-inbox', resourcesController.javaScriptInYourInbox);
|
||||||
app.get('/chromebook', resourcesController.chromebook);
|
app.get('/chromebook', resourcesController.chromebook);
|
||||||
|
app.get('/deploy-a-website', resourcesController.deployAWebsite);
|
||||||
|
app.get('/gmail-shortcuts', resourcesController.gmailShortcuts);
|
||||||
|
app.get('/control-shortcuts', resourcesController.controlShortcuts);
|
||||||
|
app.get('/control-shortcuts', resourcesController.deployAWebsite);
|
||||||
|
app.get('/stats', resourcesController.stats);
|
||||||
|
|
||||||
app.get(
|
app.get(
|
||||||
'/pair-program-with-team-viewer',
|
'/pair-program-with-team-viewer',
|
||||||
|
@ -4,6 +4,11 @@ module.exports = {
|
|||||||
|
|
||||||
sessionSecret: process.env.SESSION_SECRET,
|
sessionSecret: process.env.SESSION_SECRET,
|
||||||
|
|
||||||
|
trello: {
|
||||||
|
key: process.env.TRELLO_KEY,
|
||||||
|
secret: process.env.TRELLO_SECRET
|
||||||
|
},
|
||||||
|
|
||||||
mandrill: {
|
mandrill: {
|
||||||
user: process.env.MANDRILL_USER,
|
user: process.env.MANDRILL_USER,
|
||||||
password: process.env.MANDRILL_PASSWORD
|
password: process.env.MANDRILL_PASSWORD
|
||||||
|
@ -1,72 +1,121 @@
|
|||||||
var User = require('../models/User'),
|
var User = require('../models/User'),
|
||||||
resources = require('./resources.json'),
|
resources = require('./resources.json'),
|
||||||
questions = resources.questions,
|
questions = resources.questions,
|
||||||
steps = resources.steps;
|
steps = resources.steps,
|
||||||
|
secrets = require('./../config/secrets')
|
||||||
|
|
||||||
//NOTE(BERKS): Async, total users may not available before it is used.
|
var Client = require('node-rest-client').Client;
|
||||||
var totalUsers = 0;
|
client = new Client();
|
||||||
User.count({}, function(err, count) {
|
|
||||||
totalUsers = count;
|
|
||||||
});
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* GET /
|
* GET /
|
||||||
* Resources.
|
* Resources.
|
||||||
*/
|
*/
|
||||||
//TODO: Stats view
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
learnToCode: function(req, res) {
|
learnToCode: function(req, res) {
|
||||||
res.render('learn-to-code', {
|
res.render('resources/learn-to-code', {
|
||||||
title: 'Learn to Code'
|
title: 'Learn to Code'
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
privacy: function privacy(req, res) {
|
privacy: function privacy(req, res) {
|
||||||
res.render('privacy', {
|
res.render('resources/privacy', {
|
||||||
title: 'Privacy'
|
title: 'Privacy'
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
statistics: function statistics(req, res) {
|
stats: function stats(req, res) {
|
||||||
res.render('statistics', {
|
var date1 = new Date("10/15/2014");
|
||||||
title: 'Code Camper Statistics'
|
var date2 = new Date();
|
||||||
//totalUsers: totalUsers,
|
var timeDiff = Math.abs(date2.getTime() - date1.getTime());
|
||||||
//usersOverTenChallenges: usersOverTenChallenges
|
var daysRunning = Math.ceil(timeDiff / (1000 * 3600 * 24));
|
||||||
|
var nonprofitProjects = client.get('https://trello.com/1/boards/BA3xVpz9/cards?key=' + secrets.trello.key, function(data, response){return data.length;});
|
||||||
|
User.count({}, function(err, users) { if (err) { debug('User err: ', err); next(err); }
|
||||||
|
User.count({'points': {'$gt': 2}}, function(err, c2) { if (err) { debug('User err: ', err); next(err); }
|
||||||
|
User.count({'points': {'$gt': 4}}, function(err, c4) { if (err) { debug('User err: ', err); next(err); }
|
||||||
|
User.count({'points': {'$gt': 9}}, function(err, c9) { if (err) { debug('User err: ', err); next(err); }
|
||||||
|
User.count({'points': {'$gt': 19}}, function(err, c19) { if (err) { debug('User err: ', err); next(err); }
|
||||||
|
User.count({'points': {'$gt': 29}}, function(err, c29) { if (err) { debug('User err: ', err); next(err); }
|
||||||
|
User.count({'points': {'$gt': 39}}, function(err, c39) { if (err) { debug('User err: ', err); next(err); }
|
||||||
|
User.count({'points': {'$gt': 49}}, function(err, c49) { if (err) { debug('User err: ', err); next(err); }
|
||||||
|
User.count({'points': {'$gt': 59}}, function(err, c59) { if (err) { debug('User err: ', err); next(err); }
|
||||||
|
res.render('resources/stats', {
|
||||||
|
title: 'Free Code Camp Stats:',
|
||||||
|
daysRunning: daysRunning,
|
||||||
|
users: users,
|
||||||
|
nonprofitProjects: nonprofitProjects, /* can't yet get this to work. Async issue?
|
||||||
|
Hardcoded value for now and created a Trello card */
|
||||||
|
c2: c2,
|
||||||
|
c4: c4,
|
||||||
|
c9: c9,
|
||||||
|
c19: c19,
|
||||||
|
c29: c29,
|
||||||
|
c39: c39,
|
||||||
|
c49: c49,
|
||||||
|
c59: c59
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
deployAWebsite: function deployAWebsite(req, res) {
|
||||||
|
res.render('resources/deploy-a-website', {
|
||||||
|
title: 'Deploy a Dynamic Website in 7 Minutes'
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
gmailShortcuts: function gmailShortcuts(req, res) {
|
||||||
|
res.render('resources/gmail-shortcuts', {
|
||||||
|
title: 'These Gmail Shortcuts will save you Hours'
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
controlShortcuts: function controlShortcuts(req, res) {
|
||||||
|
res.render('resources/control-shortcuts', {
|
||||||
|
title: 'These Control Shortcuts will save you Hours'
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
chromebook: function chromebook(req, res) {
|
chromebook: function chromebook(req, res) {
|
||||||
res.render('chromebook', {
|
res.render('resources/chromebook', {
|
||||||
title: 'Win a Chromebook'
|
title: 'Win a Chromebook'
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
jqueryExercises: function jqueryExercises(req, res) {
|
jqueryExercises: function jqueryExercises(req, res) {
|
||||||
res.render('jquery-exercises', {
|
res.render('resources/jquery-exercises', {
|
||||||
title: 'jQuery Exercises'
|
title: 'jQuery Exercises'
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
livePairProgramming: function(req, res) {
|
livePairProgramming: function(req, res) {
|
||||||
res.render('live-pair-programming', {
|
res.render('resources/live-pair-programming', {
|
||||||
title: 'Live Pair Programming'
|
title: 'Live Pair Programming'
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
javaScriptInYourInbox: function(req, res) {
|
javaScriptInYourInbox: function(req, res) {
|
||||||
res.render('javascript-in-your-inbox', {
|
res.render('resources/javascript-in-your-inbox', {
|
||||||
title: 'JavaScript in your Inbox'
|
title: 'JavaScript in your Inbox'
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
programmerInterviewQuestionsApp: function(req, res) {
|
programmerInterviewQuestionsApp: function(req, res) {
|
||||||
res.render('programmer-interview-questions-app', {
|
res.render('resources/programmer-interview-questions-app', {
|
||||||
title: 'Programmer Interview Questions App'
|
title: 'Programmer Interview Questions App'
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
pairProgramWithTeamViewer: function(req, res) {
|
pairProgramWithTeamViewer: function(req, res) {
|
||||||
res.render('pair-program-with-team-viewer', {
|
res.render('resources/pair-program-with-team-viewer', {
|
||||||
title: 'Challenge: Pair Program with Team Viewer',
|
title: 'Challenge: Pair Program with Team Viewer',
|
||||||
name: 'Pair Program with Team Viewer',
|
name: 'Pair Program with Team Viewer',
|
||||||
video: '',
|
video: '',
|
||||||
@ -77,13 +126,13 @@ module.exports = {
|
|||||||
},
|
},
|
||||||
|
|
||||||
about: function(req, res) {
|
about: function(req, res) {
|
||||||
res.render('about', {
|
res.render('resources/about', {
|
||||||
title: 'About Free Code Camp and Our Team of Volunteers'
|
title: 'About Free Code Camp and Our Team of Volunteers'
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
doneWithFirst100Hours: function(req, res) {
|
doneWithFirst100Hours: function(req, res) {
|
||||||
res.render('done-with-first-100-hours', {
|
res.render('resources/done-with-first-100-hours', {
|
||||||
title:
|
title:
|
||||||
'Congratulations on finishing the first 100 hours of Free Code Camp!'
|
'Congratulations on finishing the first 100 hours of Free Code Camp!'
|
||||||
});
|
});
|
||||||
|
@ -1,5 +0,0 @@
|
|||||||
extends layout
|
|
||||||
block content
|
|
||||||
include partials/about-us
|
|
||||||
br
|
|
||||||
include partials/faq
|
|
@ -1,47 +0,0 @@
|
|||||||
extends ../layout
|
|
||||||
|
|
||||||
block content
|
|
||||||
.page-header
|
|
||||||
h2
|
|
||||||
i.fa.fa-picture-o
|
|
||||||
| Aviary API
|
|
||||||
|
|
||||||
.btn-group.btn-group-justified
|
|
||||||
a.btn.btn-primary(href='http://developers.aviary.com/docs/web/setup-guide#constructor', target='_blank')
|
|
||||||
i.fa.fa-check-square-o
|
|
||||||
| API Overview
|
|
||||||
a.btn.btn-primary(href='http://developers.aviary.com/docs/web/setup-guide#saving', target='_blank')
|
|
||||||
i.fa.fa-save
|
|
||||||
| Saving Images
|
|
||||||
a.btn.btn-primary(href='http://developers.aviary.com/docs/web/setup-guide#styling', target='_blank')
|
|
||||||
i.fa.fa-flask
|
|
||||||
| CSS Styling
|
|
||||||
br
|
|
||||||
p: button.btn.btn-success(onclick='return launchEditor("myimage", "https://31.media.tumblr.com/d4411b4c0b41d9c7a73fbcdb1054cb5c/tumblr_n3fyfbZVud1tsaz7eo1_500.jpg");')
|
|
||||||
i.fa.fa-magic
|
|
||||||
| Edit Photo
|
|
||||||
img#myimage(src='https://31.media.tumblr.com/d4411b4c0b41d9c7a73fbcdb1054cb5c/tumblr_n3fyfbZVud1tsaz7eo1_500.jpg', width=250)
|
|
||||||
|
|
||||||
script(src='http://feather.aviary.com/js/feather.js')
|
|
||||||
script.
|
|
||||||
var featherEditor = new Aviary.Feather({
|
|
||||||
apiKey: 'c83c98c0da041785',
|
|
||||||
apiVersion: 3,
|
|
||||||
theme: 'dark',
|
|
||||||
tools: 'all',
|
|
||||||
appendTo: '',
|
|
||||||
onSave: function(imageID, newURL) {
|
|
||||||
var img = document.getElementById(imageID);
|
|
||||||
img.src = newURL;
|
|
||||||
},
|
|
||||||
onError: function(errorObj) {
|
|
||||||
alert(errorObj.message);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
function launchEditor(id, src) {
|
|
||||||
featherEditor.launch({
|
|
||||||
image: id,
|
|
||||||
url: src
|
|
||||||
});
|
|
||||||
return false;
|
|
||||||
}
|
|
@ -1,26 +0,0 @@
|
|||||||
extends ../layout
|
|
||||||
|
|
||||||
block content
|
|
||||||
.page-header
|
|
||||||
h2
|
|
||||||
i.fa.fa-phone
|
|
||||||
| Clockwork SMS API
|
|
||||||
|
|
||||||
.btn-group.btn-group-justified
|
|
||||||
a.btn.btn-primary(href='http://github.com/mediaburst/node-clockwork', target='_blank')
|
|
||||||
i.fa.fa-check-square-o
|
|
||||||
| Clockwork Node
|
|
||||||
a.btn.btn-primary(href='http://www.clockworksms.com/doc/clever-stuff/xml-interface/send-sms/', target='_blank')
|
|
||||||
i.fa.fa-code-fork
|
|
||||||
| XML API
|
|
||||||
|
|
||||||
h4 Send a text message
|
|
||||||
.row
|
|
||||||
.col-sm-6
|
|
||||||
form(role='form', method='POST')
|
|
||||||
input(type='hidden', name='_csrf', value=_csrf)
|
|
||||||
.form-group
|
|
||||||
.input-group
|
|
||||||
input.form-control(type='text', name='telephone', placeholder='Phone Number (international format)')
|
|
||||||
span.input-group-btn
|
|
||||||
button.btn.btn-success(type='submit') Send
|
|
@ -1,40 +0,0 @@
|
|||||||
extends ../layout
|
|
||||||
|
|
||||||
block content
|
|
||||||
.page-header
|
|
||||||
h2
|
|
||||||
i.fa.fa-facebook-square(style='color: #335397')
|
|
||||||
| Facebook API
|
|
||||||
.btn-group.btn-group-justified
|
|
||||||
a.btn.btn-primary(href='https://developers.facebook.com/docs/graph-api/quickstart/', target='_blank')
|
|
||||||
i.fa.fa-check-square-o
|
|
||||||
| Quickstart
|
|
||||||
a.btn.btn-primary(href='https://developers.facebook.com/tools/explorer', target='_blank')
|
|
||||||
i.fa.fa-facebook
|
|
||||||
| Graph API Explorer
|
|
||||||
a.btn.btn-primary(href='https://developers.facebook.com/docs/graph-api/reference/', target='_blank')
|
|
||||||
i.fa.fa-code-fork
|
|
||||||
| API Reference
|
|
||||||
|
|
||||||
h3
|
|
||||||
i.fa.fa-user
|
|
||||||
| My Profile
|
|
||||||
img.thumbnail(src='https://graph.facebook.com/#{me.id}/picture?type=large', width='90', height='90')
|
|
||||||
h4= me.name
|
|
||||||
h6 First Name: #{me.first_name}
|
|
||||||
h6 Last Name: #{me.last_name}
|
|
||||||
h6 Gender: #{me.gender}
|
|
||||||
h6 Username: #{me.username}
|
|
||||||
h6 Link: #{me.link}
|
|
||||||
h6 Email: #{me.email}
|
|
||||||
h6 Locale: #{me.locale}
|
|
||||||
h6 Timezone: #{me.timezone}
|
|
||||||
|
|
||||||
h3
|
|
||||||
i.fa.fa-group
|
|
||||||
| My Friends
|
|
||||||
.row
|
|
||||||
for friend in friends
|
|
||||||
.col-xs-3.col-md-2
|
|
||||||
a.thumbnail(href='http://facebook.com/#{friend.id}')
|
|
||||||
img(src='https://graph.facebook.com/#{friend.id}/picture?width=150&height=150')
|
|
@ -1,57 +0,0 @@
|
|||||||
extends ../layout
|
|
||||||
|
|
||||||
block content
|
|
||||||
.page-header
|
|
||||||
h2
|
|
||||||
i.fa.fa-foursquare
|
|
||||||
| Foursquare API
|
|
||||||
|
|
||||||
.btn-group.btn-group-justified
|
|
||||||
a.btn.btn-primary(href='https://developer.foursquare.com/start', target='_blank')
|
|
||||||
i.fa.fa-check-square-o
|
|
||||||
| Getting Started
|
|
||||||
a.btn.btn-primary(href='https://developer.foursquare.com/docs/explore', target='_blank')
|
|
||||||
i.fa.fa-laptop
|
|
||||||
| API Console
|
|
||||||
a.btn.btn-primary(href='https://developer.foursquare.com/docs/', target='_blank')
|
|
||||||
i.fa.fa-code-fork
|
|
||||||
| API Endpoints
|
|
||||||
h3.text-primary Trending Venues
|
|
||||||
table.table.table-striped.table-bordered
|
|
||||||
thead
|
|
||||||
tr
|
|
||||||
th Name
|
|
||||||
th.hidden-xs.hidden-sm Category
|
|
||||||
th.hidden-xs Checkins
|
|
||||||
th Here Now
|
|
||||||
tbody
|
|
||||||
for venue in trendingVenues.venues
|
|
||||||
tr
|
|
||||||
td= venue.name
|
|
||||||
td.hidden-xs.hidden-sm #{venue.categories[0].name}
|
|
||||||
td.hidden-xs #{venue.stats.checkinsCount}
|
|
||||||
td= venue.hereNow.count
|
|
||||||
br
|
|
||||||
h3.text-primary Venue Detail
|
|
||||||
p
|
|
||||||
img(src='#{venueDetail.venue.photos.groups[0].items[0].prefix}150x150#{venueDetail.venue.photos.groups[0].items[0].suffix}')
|
|
||||||
|
|
||||||
.label.label-primary #{venueDetail.venue.name} (#{venueDetail.venue.categories[0].shortName})
|
|
||||||
.label.label-success #{venueDetail.venue.location.address}, #{venueDetail.venue.location.city}, #{venueDetail.venue.location.state}
|
|
||||||
.label.label-warning #{venueDetail.venue.likes.count} likes, #{venueDetail.venue.rating} rating
|
|
||||||
|
|
||||||
h3.text-primary User Checkins
|
|
||||||
table.table.table-bordered.table-hover
|
|
||||||
thead
|
|
||||||
tr
|
|
||||||
th Name
|
|
||||||
th Location
|
|
||||||
th Category
|
|
||||||
th Checkins
|
|
||||||
tbody
|
|
||||||
for checkin in userCheckins.checkins.items
|
|
||||||
tr
|
|
||||||
td= checkin.venue.name
|
|
||||||
td #{checkin.venue.location.address}, #{checkin.venue.location.city}, #{checkin.venue.location.state}
|
|
||||||
td= checkin.venue.categories[0].shortName
|
|
||||||
td= checkin.venue.stats.checkinsCount
|
|
@ -1,43 +0,0 @@
|
|||||||
extends ../layout
|
|
||||||
|
|
||||||
block content
|
|
||||||
h2
|
|
||||||
i.fa.fa-github
|
|
||||||
| GitHub API
|
|
||||||
|
|
||||||
.btn-group.btn-group-justified
|
|
||||||
a.btn.btn-primary(href='http://developer.github.com/guides/getting-started/', target='_blank')
|
|
||||||
i.fa.fa-check-square-o
|
|
||||||
| Getting Started
|
|
||||||
a.btn.btn-primary(href='https://apigee.com/console/github', target='_blank')
|
|
||||||
i.fa.fa-laptop
|
|
||||||
| API Console
|
|
||||||
a.btn.btn-primary(href='http://developer.github.com/v3/', target='_blank')
|
|
||||||
i.fa.fa-file-text-o
|
|
||||||
| Documentation
|
|
||||||
br
|
|
||||||
.panel.panel-primary
|
|
||||||
.panel-heading
|
|
||||||
h3.panel-title Repository Information
|
|
||||||
.panel-body
|
|
||||||
.row
|
|
||||||
.col-xs-4
|
|
||||||
img.img-rounded.img-responsive(src='https://github.global.ssl.fastly.net/images/modules/logos_page/Octocat.png')
|
|
||||||
.col-xs-8
|
|
||||||
h4
|
|
||||||
a(href='#{repo.html_url}') #{repo.name}
|
|
||||||
ul.list-inline
|
|
||||||
li
|
|
||||||
i.fa.fa-eye-slash
|
|
||||||
| Subscribers: #{repo.subscribers_count}
|
|
||||||
li
|
|
||||||
i.fa.fa-star
|
|
||||||
| Starred: #{repo.stargazers_count}
|
|
||||||
li
|
|
||||||
i.fa.fa-code-fork
|
|
||||||
| Forks: #{repo.forks_count}
|
|
||||||
li
|
|
||||||
i.fa.fa-code
|
|
||||||
| #{repo.language}
|
|
||||||
strong DESCRIPTION
|
|
||||||
p= repo.description
|
|
@ -1,92 +0,0 @@
|
|||||||
extends ../layout
|
|
||||||
|
|
||||||
block content
|
|
||||||
h2 API Examples
|
|
||||||
hr
|
|
||||||
|
|
||||||
.row
|
|
||||||
.col-sm-4
|
|
||||||
.panel.panel-default(style='background-color: #000')
|
|
||||||
.panel-body
|
|
||||||
img(src='http://i.imgur.com/2AaBlpf.png', height=40)
|
|
||||||
a(href='/api/github', style='color: #fff') GitHub
|
|
||||||
.col-sm-4
|
|
||||||
.panel.panel-default(style='background-color: #00abf0')
|
|
||||||
.panel-body
|
|
||||||
img(src='http://i.imgur.com/EYA2FO1.png', height=40)
|
|
||||||
a(href='/api/twitter', style='color: #fff') Twitter
|
|
||||||
.col-sm-4
|
|
||||||
.panel.panel-default(style='background-color: #3b5998')
|
|
||||||
.panel-body
|
|
||||||
img(src='http://i.imgur.com/jiztYCH.png', height=40)
|
|
||||||
a(href='/api/facebook', style='color: #fff') Facebook
|
|
||||||
.col-sm-4
|
|
||||||
.panel.panel-default(style='background-color: #1cafec')
|
|
||||||
.panel-body
|
|
||||||
img(src='http://i.imgur.com/PixH9li.png', height=40)
|
|
||||||
a(href='/api/foursquare', style='color: #fff') Foursquare
|
|
||||||
.col-sm-4
|
|
||||||
.panel.panel-default(style='background-color: #947563')
|
|
||||||
.panel-body
|
|
||||||
img(src='http://i.imgur.com/aRc6LUJ.png', height=40)
|
|
||||||
a(href='/api/instagram', style='color: #fff') Instagram
|
|
||||||
.col-sm-4
|
|
||||||
.panel.panel-default(style='background-color: #d21309')
|
|
||||||
.panel-body
|
|
||||||
img(src='http://i.imgur.com/KfZY876.png', height=40)
|
|
||||||
a(href='/api/lastfm', style='color: #fff') Last.fm
|
|
||||||
.col-sm-4
|
|
||||||
.panel.panel-default(style='background-color: #007bb6')
|
|
||||||
.panel-body
|
|
||||||
img(src='http://i.imgur.com/sYmVWAw.png', height=40)
|
|
||||||
a(href='/api/linkedin', style='color: #fff') LinkedIn
|
|
||||||
.col-sm-4
|
|
||||||
.panel.panel-default(style='background-color: #454442')
|
|
||||||
.panel-body
|
|
||||||
img(src='http://i.imgur.com/e3sjmYj.png', height=40)
|
|
||||||
a(href='/api/nyt', style='color: #fff') New York Times
|
|
||||||
.col-sm-4
|
|
||||||
.panel.panel-default(style='background-color: #000')
|
|
||||||
.panel-body
|
|
||||||
img(src='http://i.imgur.com/1xGmKBX.jpg', height=40)
|
|
||||||
a(href='/api/steam', style='color: #fff') Steam
|
|
||||||
.col-sm-4
|
|
||||||
.panel.panel-default(style='background-color: #3da8e5')
|
|
||||||
.panel-body
|
|
||||||
img(src='http://i.imgur.com/w3s2RvW.png', height=40)
|
|
||||||
a(href='/api/stripe', style='color: #fff') Stripe
|
|
||||||
.col-sm-4
|
|
||||||
.panel.panel-default(style='background-color: #fd0404')
|
|
||||||
.panel-body
|
|
||||||
img(src='http://i.imgur.com/mEUd6zM.png', height=40)
|
|
||||||
a(href='/api/twilio', style='color: #fff') Twilio
|
|
||||||
.col-sm-4
|
|
||||||
.panel.panel-default(style='background-color: #304e6c')
|
|
||||||
.panel-body
|
|
||||||
img(src='http://i.imgur.com/rZGQShS.png', height=40)
|
|
||||||
a(href='/api/tumblr', style='color: #fff') Tumblr
|
|
||||||
.col-sm-4
|
|
||||||
.panel.panel-default(style='background-color: #ff6500')
|
|
||||||
.panel-body
|
|
||||||
img(src='http://i.imgur.com/RGCVvyR.png', height=40)
|
|
||||||
a(href='/api/scraping', style='color: #fff') Web Scraping
|
|
||||||
.col-sm-4
|
|
||||||
.panel.panel-default(style='background-color: #1f93cf')
|
|
||||||
.panel-body
|
|
||||||
img(src='http://i.imgur.com/90tl9C8.gif', height=40)
|
|
||||||
a(href='/api/venmo', style='color: #fff') Venmo
|
|
||||||
.col-sm-4
|
|
||||||
.panel.panel-default(style='background-color: #3d048b')
|
|
||||||
.panel-body
|
|
||||||
img(src='http://i.imgur.com/Cl6WJAu.png', height=40)
|
|
||||||
a(href='/api/yahoo', style='color: #fff') Yahoo
|
|
||||||
.col-sm-4
|
|
||||||
.panel.panel-default(style='background-color: #000')
|
|
||||||
.panel-body
|
|
||||||
img(src='http://i.imgur.com/YcdxZ5F.png', height=40)
|
|
||||||
a(href='/api/clockwork', style='color: #fff') Clockwork SMS
|
|
||||||
.col-sm-4
|
|
||||||
.panel.panel-default(style='background: linear-gradient(to bottom, #1f3d95 0%,#04aade 100%)')
|
|
||||||
.panel-body
|
|
||||||
img(src='http://i.imgur.com/npBRwMI.png', height=40)
|
|
||||||
a(href='/api/aviary', style='color: #fff') Aviary
|
|
@ -1,70 +0,0 @@
|
|||||||
extends ../layout
|
|
||||||
|
|
||||||
block content
|
|
||||||
.page-header
|
|
||||||
h2
|
|
||||||
i.fa.fa-instagram(style='color: #517fa4')
|
|
||||||
| Instagram API
|
|
||||||
.btn-group.btn-group-justified
|
|
||||||
a.btn.btn-primary(href='http://instagram.com/developer/', target='_blank')
|
|
||||||
i.fa.fa-check-square-o
|
|
||||||
| Overview
|
|
||||||
a.btn.btn-primary(href='https://github.com/teleportd/instagram-node', target='_blank')
|
|
||||||
i.fa.fa-laptop
|
|
||||||
| Node-Instagram Docs
|
|
||||||
a.btn.btn-primary(href='http://instagram.com/developer/endpoints/', target='_blank')
|
|
||||||
i.fa.fa-code-fork
|
|
||||||
| API Endpoints
|
|
||||||
|
|
||||||
br
|
|
||||||
p.lead Username Search for
|
|
||||||
strong richellemead
|
|
||||||
table.table.table-hover.table-bordered
|
|
||||||
thead
|
|
||||||
tr
|
|
||||||
th Picture
|
|
||||||
th Username
|
|
||||||
th Full Name
|
|
||||||
th Bio
|
|
||||||
tbody
|
|
||||||
for user in usernames
|
|
||||||
tr
|
|
||||||
td
|
|
||||||
img(src='#{user.profile_picture}', width='75', height='75')
|
|
||||||
td= user.username
|
|
||||||
td= user.full_name
|
|
||||||
td= user.bio
|
|
||||||
|
|
||||||
hr
|
|
||||||
p.lead User Search for ID
|
|
||||||
strong 175948269
|
|
||||||
|
|
||||||
|
|
||||||
.media
|
|
||||||
a.pull-left(href='http://instagram.com/#{userById.username}')
|
|
||||||
img.thumbnail(src='#{userById.profile_picture}', width='110', height='110')
|
|
||||||
.media-body
|
|
||||||
h4= userById.full_name
|
|
||||||
p= userById.bio
|
|
||||||
|
|
||||||
hr
|
|
||||||
p.lead
|
|
||||||
strong Popular Images
|
|
||||||
| on Instagram
|
|
||||||
.row
|
|
||||||
for image in popularImages
|
|
||||||
.col-xs-3
|
|
||||||
a.thumbnail(href='#{image.link}')
|
|
||||||
img(src='#{image.images.standard_resolution.url}', height='320px')
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
hr
|
|
||||||
p.lead
|
|
||||||
| My Recent
|
|
||||||
strong Media
|
|
||||||
.row
|
|
||||||
for image in myRecentMedia
|
|
||||||
.col-xs-3
|
|
||||||
a.thumbnail(href='#{image.link}')
|
|
||||||
img(src='#{image.images.standard_resolution.url}', height='320px')
|
|
@ -1,47 +0,0 @@
|
|||||||
extends ../layout
|
|
||||||
|
|
||||||
block content
|
|
||||||
.page-header
|
|
||||||
h2
|
|
||||||
i.fa.fa-play-circle-o(style='color: #db1302')
|
|
||||||
| Last.fm API
|
|
||||||
.btn-group.btn-group-justified
|
|
||||||
a.btn.btn-primary(href='https://github.com/jammus/lastfm-node#lastfm-node', target='_blank')
|
|
||||||
i.fa.fa-check-square-o
|
|
||||||
| Last.fm Node Docs
|
|
||||||
a.btn.btn-primary(href='http://www.last.fm/api/account/create', target='_blank')
|
|
||||||
i.fa.fa-laptop
|
|
||||||
| Create API Account
|
|
||||||
a.btn.btn-primary(href='http://www.last.fm/api', target='_blank')
|
|
||||||
i.fa.fa-code-fork
|
|
||||||
| API Endpoints
|
|
||||||
|
|
||||||
h3= artist.name
|
|
||||||
img.thumbnail(src='#{artist.image}')
|
|
||||||
|
|
||||||
h3 Tags
|
|
||||||
for tag in artist.tags
|
|
||||||
span.label.label-primary
|
|
||||||
i.fa.fa-tag
|
|
||||||
| #{tag.name}
|
|
||||||
|
|
|
||||||
|
|
||||||
h3 Biography
|
|
||||||
p!= artist.bio
|
|
||||||
|
|
||||||
h3 Top Albums
|
|
||||||
for album in artist.topAlbums
|
|
||||||
img(src='#{album}', width=150, height=150)
|
|
||||||
|
|
|
||||||
|
|
||||||
h3 Top Tracks
|
|
||||||
ol
|
|
||||||
for track in artist.topTracks
|
|
||||||
li
|
|
||||||
a(href='#{track.url}') #{track.name}
|
|
||||||
|
|
||||||
h3 Similar Artists
|
|
||||||
ul.list-unstyled.list-inline
|
|
||||||
for similarArtist in artist.similar
|
|
||||||
li
|
|
||||||
a(href='#{similarArtist.url}') #{similarArtist.name}
|
|
@ -1,72 +0,0 @@
|
|||||||
extends ../layout
|
|
||||||
|
|
||||||
block content
|
|
||||||
.page-header
|
|
||||||
h2
|
|
||||||
i.fa.fa-linkedin-square
|
|
||||||
| LinkedIn API
|
|
||||||
|
|
||||||
.btn-group.btn-group-justified
|
|
||||||
a.btn.btn-primary(href='https://github.com/Kuew/node-linkedin', target='_blank')
|
|
||||||
i.fa.fa-book
|
|
||||||
| Node LinkedIn Docs
|
|
||||||
a.btn.btn-primary(href='http://developer.linkedin.com/documents/authentication', target='_blank')
|
|
||||||
i.fa.fa-check-square-o
|
|
||||||
| Getting Started
|
|
||||||
a.btn.btn-primary(href='http://developer.linkedin.com/apis', target='_blank')
|
|
||||||
i.fa.fa-code-fork
|
|
||||||
| API Endpoints
|
|
||||||
|
|
||||||
h3.text-primary My LinkedIn Profile
|
|
||||||
.well.well-sm
|
|
||||||
.row
|
|
||||||
.col-sm-12
|
|
||||||
.col-sm-2
|
|
||||||
br
|
|
||||||
img.thumbnail(src='#{profile.pictureUrl}')
|
|
||||||
.col-sm-10
|
|
||||||
h3= profile.formattedName
|
|
||||||
h4= profile.headline
|
|
||||||
span.text-muted #{profile.location.name} | #{profile.industry}
|
|
||||||
br
|
|
||||||
.row
|
|
||||||
.col-sm-12
|
|
||||||
dl.dl-horizontal
|
|
||||||
dt.text-muted Current
|
|
||||||
for company in profile.positions.values
|
|
||||||
if company.isCurrent
|
|
||||||
dd
|
|
||||||
strong= company.title
|
|
||||||
| at
|
|
||||||
strong #{company.company.name}
|
|
||||||
dt.text-muted Previous
|
|
||||||
for company in profile.positions.values
|
|
||||||
if !company.isCurrent
|
|
||||||
dd
|
|
||||||
| #{company.title}
|
|
||||||
| at
|
|
||||||
| #{company.company.name}
|
|
||||||
if profile.educations
|
|
||||||
dt.text-muted Education
|
|
||||||
for education in profile.educations.values
|
|
||||||
dd= education.schoolName
|
|
||||||
dt.text-muted Recommendations
|
|
||||||
dd
|
|
||||||
strong #{profile.numRecommenders}
|
|
||||||
| recommendation(s) received
|
|
||||||
dt.text-muted Connections
|
|
||||||
dd
|
|
||||||
strong #{profile.numConnections}
|
|
||||||
| connections
|
|
||||||
.text-center
|
|
||||||
small.text-muted= profile.publicProfileUrl
|
|
||||||
|
|
||||||
h3.text-primary LinkedIn Connections
|
|
||||||
table.table.table-hover.table-striped.table-bordered
|
|
||||||
tbody
|
|
||||||
for connection in profile.connections.values
|
|
||||||
if connection.id != 'private'
|
|
||||||
tr
|
|
||||||
td
|
|
||||||
strong #{connection.firstName} #{connection.lastName}
|
|
||||||
.text-muted #{connection.headline}
|
|
@ -1,36 +0,0 @@
|
|||||||
extends ../layout
|
|
||||||
|
|
||||||
block content
|
|
||||||
.page-header
|
|
||||||
h2
|
|
||||||
i.fa.fa-building-o
|
|
||||||
| New York Times API
|
|
||||||
|
|
||||||
.btn-group.btn-group-justified
|
|
||||||
a.btn.btn-primary(href='http://developer.nytimes.com/page', target='_blank')
|
|
||||||
i.fa.fa-check-square-o
|
|
||||||
| Overview
|
|
||||||
a.btn.btn-primary(href='http://prototype.nytimes.com/gst/apitool/index.html', target='_blank')
|
|
||||||
i.fa.fa-laptop
|
|
||||||
| API Console
|
|
||||||
a.btn.btn-primary(href='http://developer.nytimes.com/docs', target='_blank')
|
|
||||||
i.fa.fa-code-fork
|
|
||||||
| API Endspoints
|
|
||||||
|
|
||||||
h4 Young Adult Best Sellers
|
|
||||||
table.table.table-striped.table-bordered
|
|
||||||
thead
|
|
||||||
tr
|
|
||||||
th Rank
|
|
||||||
th Title
|
|
||||||
th.hidden-xs Description
|
|
||||||
th Author
|
|
||||||
th.hidden-xs ISBN-13
|
|
||||||
tbody
|
|
||||||
for book in books
|
|
||||||
tr
|
|
||||||
td= book.rank
|
|
||||||
td= book.book_details[0].title
|
|
||||||
td.hidden-xs= book.book_details[0].description
|
|
||||||
td= book.book_details[0].author
|
|
||||||
td.hidden-xs= book.book_details[0].primary_isbn13
|
|
@ -1,27 +0,0 @@
|
|||||||
extends ../layout
|
|
||||||
|
|
||||||
block content
|
|
||||||
.page-header
|
|
||||||
h2
|
|
||||||
i.fa.fa-hacker-news(style='color: #ff6600')
|
|
||||||
| Web Scraping
|
|
||||||
|
|
||||||
.btn-group.btn-group-justified
|
|
||||||
a.btn.btn-primary(href='http://matthewmueller.github.io/cheerio/', target='_blank')
|
|
||||||
i.fa.fa-info
|
|
||||||
| Cheerio Docs
|
|
||||||
a.btn.btn-primary(href='http://vimeo.com/31950192', target='_blank')
|
|
||||||
i.fa.fa-film
|
|
||||||
| Cheerio Screencast
|
|
||||||
|
|
||||||
h3 Hacker News Frontpage
|
|
||||||
table.table.table-condensed
|
|
||||||
thead
|
|
||||||
tr
|
|
||||||
th №
|
|
||||||
th Title
|
|
||||||
tbody
|
|
||||||
each link, index in links
|
|
||||||
tr
|
|
||||||
td= index + 1
|
|
||||||
td!= link
|
|
@ -1,43 +0,0 @@
|
|||||||
extends ../layout
|
|
||||||
|
|
||||||
block content
|
|
||||||
.page-header
|
|
||||||
h2
|
|
||||||
i.fa.fa-steam-square
|
|
||||||
| Steam Web API
|
|
||||||
.btn-group.btn-group-justified
|
|
||||||
a.btn.btn-primary(href='https://developer.valvesoftware.com/wiki/Steam_Web_API', target='_blank')
|
|
||||||
i.fa.fa-check-square-o
|
|
||||||
| API Overview
|
|
||||||
|
|
||||||
br
|
|
||||||
|
|
||||||
.alert.alert-info
|
|
||||||
h4 Steam ID
|
|
||||||
p Displaying public information for Steam ID: #{playerSummary.steamid}.
|
|
||||||
|
|
||||||
h3 Profile Information
|
|
||||||
.row
|
|
||||||
.col-sm-2
|
|
||||||
img(src='#{playerSummary.avatarfull}', width='92', height='92')
|
|
||||||
.col-sm-8
|
|
||||||
span.lead #{playerSummary.personaname}
|
|
||||||
div Account since: #{new Date(playerSummary.timecreated * 1000)}
|
|
||||||
div Last Online: #{new Date(playerSummary.lastlogoff * 1000)}
|
|
||||||
div Online Status:
|
|
||||||
if playerSummary.personastate == 1
|
|
||||||
strong.text-success Online
|
|
||||||
else
|
|
||||||
strong.text-danger Offline
|
|
||||||
|
|
||||||
h3 #{playerAchievemments.gameName} Achievements
|
|
||||||
ul.lead.list-unstyled
|
|
||||||
for achievement in playerAchievemments.achievements
|
|
||||||
if achievement.achieved
|
|
||||||
li.text-success= achievement.name
|
|
||||||
|
|
||||||
h3 Owned Games
|
|
||||||
for game in ownedGames
|
|
||||||
a(href='http://store.steampowered.com/app/#{game.appid}/')
|
|
||||||
img.thumbnail(src='http://media.steampowered.com/steamcommunity/public/images/apps/#{game.appid}/#{game.img_logo_url}.jpg' width=92)
|
|
||||||
|
|
@ -1,124 +0,0 @@
|
|||||||
extends ../layout
|
|
||||||
|
|
||||||
block content
|
|
||||||
.page-header
|
|
||||||
h2 Stripe API
|
|
||||||
|
|
||||||
.btn-group.btn-group-justified
|
|
||||||
a.btn.btn-primary(href='https://stripe.com/docs/tutorials/checkout')
|
|
||||||
i.fa.fa-home
|
|
||||||
| Stripe Checkout
|
|
||||||
a.btn.btn-primary(href='https://stripe.com/docs/api', target='_blank')
|
|
||||||
i.fa.fa-code
|
|
||||||
| API Reference
|
|
||||||
a.btn.btn-primary(href='https://manage.stripe.com/account/apikeys', target='_blank')
|
|
||||||
i.fa.fa-gear
|
|
||||||
| Get API Keys
|
|
||||||
|
|
||||||
br
|
|
||||||
|
|
||||||
form(method='POST')
|
|
||||||
input(type='hidden', name='_csrf', value=_csrf)
|
|
||||||
script(
|
|
||||||
src='https://checkout.stripe.com/checkout.js',
|
|
||||||
class='stripe-button',
|
|
||||||
data-key=publishableKey,
|
|
||||||
data-image='http://static.tumblr.com/nljhkjv/z0Jlpk23i/logo',
|
|
||||||
data-name='Hackathon Starter',
|
|
||||||
data-description='Caramel Macchiato ($3.95)',
|
|
||||||
data-amount='395')
|
|
||||||
|
|
||||||
h3
|
|
||||||
i.fa.fa-credit-card
|
|
||||||
| Test Cards
|
|
||||||
p In test mode, you can use these test cards to simulate a successful transaction:
|
|
||||||
|
|
||||||
table.table.table-striped.table-bordered.table-condensed
|
|
||||||
thead
|
|
||||||
tr
|
|
||||||
th Number
|
|
||||||
th Card type
|
|
||||||
tbody
|
|
||||||
tr
|
|
||||||
td 4242 4242 4242 4242
|
|
||||||
td Visa
|
|
||||||
tr
|
|
||||||
td 4012 8888 8888 1881
|
|
||||||
td Visa
|
|
||||||
tr
|
|
||||||
td 5555 5555 5555 4444
|
|
||||||
td MasterCard
|
|
||||||
tr
|
|
||||||
td 5105 1051 0510 5100
|
|
||||||
td MasterCard
|
|
||||||
tr
|
|
||||||
td 3782 822463 10005
|
|
||||||
td American Express
|
|
||||||
tr
|
|
||||||
td 3714 496353 98431
|
|
||||||
td American Express
|
|
||||||
tr
|
|
||||||
td 6011 1111 1111 1117
|
|
||||||
td Discover
|
|
||||||
tr
|
|
||||||
td 6011 0009 9013 9424
|
|
||||||
td Discover
|
|
||||||
tr
|
|
||||||
td 3056 9309 0259 04
|
|
||||||
td Diners Club
|
|
||||||
tr
|
|
||||||
td 3852 0000 0232 37
|
|
||||||
td Diners Club
|
|
||||||
tr
|
|
||||||
td 3530 1113 3330 0000
|
|
||||||
td JCB
|
|
||||||
tr
|
|
||||||
td 3566 0020 2036 0505
|
|
||||||
td JCB
|
|
||||||
|
|
||||||
.panel.panel-primary
|
|
||||||
.panel-heading Stripe Successful Charge Example
|
|
||||||
.panel-body
|
|
||||||
p This is the response you will get when customer's card has been charged successfully.
|
|
||||||
| You could use some of the data below for logging purposes.
|
|
||||||
pre.
|
|
||||||
{ id: 'ch_103qzW2eZvKYlo2CiYcKs6Sw',
|
|
||||||
object: 'charge',
|
|
||||||
created: 1397510564,
|
|
||||||
livemode: false,
|
|
||||||
paid: true,
|
|
||||||
amount: 395,
|
|
||||||
currency: 'usd',
|
|
||||||
refunded: false,
|
|
||||||
card:
|
|
||||||
{ id: 'card_103qzW2eZvKYlo2CJ2Ss4kwS',
|
|
||||||
object: 'card',
|
|
||||||
last4: '4242',
|
|
||||||
type: 'Visa',
|
|
||||||
exp_month: 11,
|
|
||||||
exp_year: 2015,
|
|
||||||
fingerprint: 'Xt5EWLLDS7FJjR1c',
|
|
||||||
customer: null,
|
|
||||||
country: 'US',
|
|
||||||
name: 'sahat@me.com',
|
|
||||||
address_line1: null,
|
|
||||||
address_line2: null,
|
|
||||||
address_city: null,
|
|
||||||
address_state: null,
|
|
||||||
address_zip: null,
|
|
||||||
address_country: null,
|
|
||||||
cvc_check: 'pass',
|
|
||||||
address_line1_check: null,
|
|
||||||
address_zip_check: null },
|
|
||||||
captured: true,
|
|
||||||
refunds: [],
|
|
||||||
balance_transaction: 'txn_103qzW2eZvKYlo2CNEcJV8SN',
|
|
||||||
failure_message: null,
|
|
||||||
failure_code: null,
|
|
||||||
amount_refunded: 0,
|
|
||||||
customer: null,
|
|
||||||
invoice: null,
|
|
||||||
description: 'sahat@me.com',
|
|
||||||
dispute: null,
|
|
||||||
metadata: {},
|
|
||||||
statement_description: null }
|
|
@ -1,26 +0,0 @@
|
|||||||
extends ../layout
|
|
||||||
|
|
||||||
block content
|
|
||||||
.page-header
|
|
||||||
h2
|
|
||||||
i.fa.fa-tumblr-square
|
|
||||||
| Tumblr API
|
|
||||||
|
|
||||||
.btn-group.btn-group-justified
|
|
||||||
a.btn.btn-primary(href='http://www.tumblr.com/docs/en/api/v2#overview', target='_blank')
|
|
||||||
i.fa.fa-check-square-o
|
|
||||||
| Overview
|
|
||||||
a.btn.btn-primary(href='https://api.tumblr.com/console', target='_blank')
|
|
||||||
i.fa.fa-laptop
|
|
||||||
| API Console
|
|
||||||
a.btn.btn-primary(href='http://www.tumblr.com/docs/en/api/v2#blog_methods', target='_blank')
|
|
||||||
i.fa.fa-code-fork
|
|
||||||
| API Endpoints
|
|
||||||
|
|
||||||
h3.text-primary #{blog.name}'s blog
|
|
||||||
.btn.btn-xs.btn-primary-outline
|
|
||||||
i.fa.fa-file-text-o
|
|
||||||
| #{blog.posts} posts
|
|
||||||
h4 Latest Photo Post
|
|
||||||
for photo in photoset
|
|
||||||
img.item(src='#{photo.original_size.url}')
|
|
@ -1,34 +0,0 @@
|
|||||||
extends ../layout
|
|
||||||
|
|
||||||
block content
|
|
||||||
.page-header
|
|
||||||
h2
|
|
||||||
i.fa.fa-phone(style='color: #f00')
|
|
||||||
| Twilio API
|
|
||||||
|
|
||||||
.btn-group.btn-group-justified
|
|
||||||
a.btn.btn-primary(href='http://twilio.github.io/twilio-node/', target='_blank')
|
|
||||||
i.fa.fa-check-square-o
|
|
||||||
| Twilio Node
|
|
||||||
a.btn.btn-primary(href='https://apigee.com/console/twilio', target='_blank')
|
|
||||||
i.fa.fa-laptop
|
|
||||||
| API Console
|
|
||||||
a.btn.btn-primary(href='https://www.twilio.com/docs/api/rest', target='_blank')
|
|
||||||
i.fa.fa-code-fork
|
|
||||||
| REST API
|
|
||||||
|
|
||||||
br
|
|
||||||
|
|
||||||
.row
|
|
||||||
.col-sm-6
|
|
||||||
form(role='form', method='POST')
|
|
||||||
input(type='hidden', name='_csrf', value=_csrf)
|
|
||||||
.form-group
|
|
||||||
label.control-label Number to text
|
|
||||||
input.form-control(type='text', name='number', autofocus)
|
|
||||||
.form-group
|
|
||||||
label.control-label Message
|
|
||||||
input.form-control(type='text', name='message')
|
|
||||||
button.btn.btn-default(type='submit')
|
|
||||||
i.fa.fa-location-arrow
|
|
||||||
| Send
|
|
@ -1,52 +0,0 @@
|
|||||||
extends ../layout
|
|
||||||
|
|
||||||
block content
|
|
||||||
.page-header
|
|
||||||
h2
|
|
||||||
i.fa.fa-twitter(style='color: #4099ff')
|
|
||||||
| Twitter API
|
|
||||||
|
|
||||||
.btn-group.btn-group-justified
|
|
||||||
a.btn.btn-success(href='https://github.com/ttezel/twit', target='_blank')
|
|
||||||
i.fa.fa-file-text-o
|
|
||||||
| Twit Library Docs
|
|
||||||
a.btn.btn-success(href='https://dev.twitter.com/docs', target='_blank')
|
|
||||||
i.fa.fa-check-square-o
|
|
||||||
| Overview
|
|
||||||
a.btn.btn-success(href='https://dev.twitter.com/docs/api/1.1', target='_blank')
|
|
||||||
i.fa.fa-code-fork
|
|
||||||
| API Endpoints
|
|
||||||
|
|
||||||
br
|
|
||||||
|
|
||||||
.well
|
|
||||||
h4 Compose new Tweet
|
|
||||||
form(role='form', method='POST')
|
|
||||||
input(type='hidden', name='_csrf', value=_csrf)
|
|
||||||
.form-group
|
|
||||||
input.form-control(type='text', name='tweet', autofocus)
|
|
||||||
p.help-block This new Tweet will be posted on your Twitter profile.
|
|
||||||
button.btn.btn-primary(type='submit')
|
|
||||||
i.fa.fa-twitter
|
|
||||||
| Tweet
|
|
||||||
|
|
||||||
br
|
|
||||||
|
|
||||||
.lead Latest
|
|
||||||
strong #{tweets.length}
|
|
||||||
| Tweets containing the term
|
|
||||||
strong nodejs
|
|
||||||
| in NYC within
|
|
||||||
strong 5
|
|
||||||
| miles radius
|
|
||||||
|
|
||||||
ul.media-list
|
|
||||||
for tweet in tweets
|
|
||||||
li.media
|
|
||||||
a.pull-left(href='#')
|
|
||||||
- var image = tweet.user.profile_image_url.replace('_normal', '');
|
|
||||||
img.media-object(src='#{image}', style='width: 64px; height: 64px;')
|
|
||||||
.media-body
|
|
||||||
strong.media-heading #{tweet.user.name}
|
|
||||||
span.text-muted @#{tweet.user.screen_name}
|
|
||||||
p= tweet.text
|
|
@ -1,80 +0,0 @@
|
|||||||
extends ../layout
|
|
||||||
|
|
||||||
block content
|
|
||||||
.page-header
|
|
||||||
h2
|
|
||||||
i.fa.fa-money
|
|
||||||
| Venmo API
|
|
||||||
|
|
||||||
.btn-group.btn-group-justified
|
|
||||||
a.btn.btn-primary(href='https://developer.venmo.com/docs/quickstart', target='_blank')
|
|
||||||
i.fa.fa-book
|
|
||||||
| Quickstart
|
|
||||||
a.btn.btn-primary(href='https://developer.venmo.com/docs/api-console', target='_blank')
|
|
||||||
i.fa.fa-laptop
|
|
||||||
| API Console
|
|
||||||
a.btn.btn-primary(href='https://developer.venmo.com/docs/endpoints/payments', target='_blank')
|
|
||||||
i.fa.fa-code-fork
|
|
||||||
| API Endspoints
|
|
||||||
|
|
||||||
h3 Venmo Profile
|
|
||||||
.row
|
|
||||||
.col-sm-2
|
|
||||||
img(src='#{profile.user.profile_picture_url}')
|
|
||||||
.col-sm-8
|
|
||||||
.row
|
|
||||||
.col-sm-6
|
|
||||||
strong #{profile.user.display_name}
|
|
||||||
div Balance:
|
|
||||||
strong $#{profile.balance}
|
|
||||||
div Friends:
|
|
||||||
strong #{profile.user.friends_count}
|
|
||||||
.col-sm-6
|
|
||||||
div Email:
|
|
||||||
strong #{profile.user.email}
|
|
||||||
div Phone:
|
|
||||||
strong #{profile.user.phone}
|
|
||||||
div ID:
|
|
||||||
strong #{profile.user.id}
|
|
||||||
p #{profile.user.about}
|
|
||||||
|
|
||||||
.row
|
|
||||||
.col-sm-5
|
|
||||||
h3 Make Payment
|
|
||||||
form(role='form', method='POST')
|
|
||||||
input(type='hidden', name='_csrf', value=_csrf)
|
|
||||||
.form-group
|
|
||||||
label.control-label(for='user') Phone, Email or Venmo User ID
|
|
||||||
input.form-control(type='text', name='user', id='user', placeholder='15555555555', autofocus=true)
|
|
||||||
.form-group
|
|
||||||
label.control-label(for='note') Note
|
|
||||||
input.form-control(type='text', name='note', id='note', placeholder='A message to accompany the payment.')
|
|
||||||
.form-group
|
|
||||||
label.control-label(for='amount') Amount
|
|
||||||
input.form-control(type='text', name='amount', id='amount', placeholder='0.10')
|
|
||||||
.form-group
|
|
||||||
button.btn.btn-primary(type='submit')
|
|
||||||
i.fa.fa-usd
|
|
||||||
| Send
|
|
||||||
|
|
||||||
h3 Recent Payments
|
|
||||||
table.table.table-striped.table-condensed.table-bordered
|
|
||||||
thead
|
|
||||||
tr
|
|
||||||
th To
|
|
||||||
th Amount
|
|
||||||
th Status
|
|
||||||
th Date
|
|
||||||
th Note
|
|
||||||
tbody
|
|
||||||
if recentPayments.length
|
|
||||||
for payment in recentPayments
|
|
||||||
tr
|
|
||||||
td= payment.target.phone || payment.target.email || payment.target.user
|
|
||||||
td $#{payment.amount}
|
|
||||||
td= payment.status
|
|
||||||
td= payment.date_created
|
|
||||||
td= payment.note
|
|
||||||
else
|
|
||||||
tr
|
|
||||||
td(colspan=5) No recent payments.
|
|
@ -1,30 +0,0 @@
|
|||||||
extends ../layout
|
|
||||||
|
|
||||||
block content
|
|
||||||
.page-header
|
|
||||||
h2
|
|
||||||
i.fa.fa-yahoo(style='color: #7b0099')
|
|
||||||
| Yahoo API
|
|
||||||
.btn-group.btn-group-justified
|
|
||||||
a.btn.btn-primary(href='https://developer.yahoo.com/yql/', target='_blank')
|
|
||||||
i.fa.fa-check-square-o
|
|
||||||
| YQL Getting Started
|
|
||||||
a.btn.btn-primary(href='http://yuilibrary.com/yui/docs/node/', target='_blank')
|
|
||||||
i.fa.fa-laptop
|
|
||||||
| YUI on Node.js
|
|
||||||
a.btn.btn-primary(href='https://developer.yahoo.com/everything.html', target='_blank')
|
|
||||||
i.fa.fa-code
|
|
||||||
| Yahoo APIs
|
|
||||||
|
|
||||||
br
|
|
||||||
p.lead Weather for ZIP Code:
|
|
||||||
strong 10007
|
|
||||||
.alert.alert-info
|
|
||||||
p It is currently
|
|
||||||
strong #{condition.temp}
|
|
||||||
| degrees in
|
|
||||||
strong #{location.city}, #{location.region}
|
|
||||||
| .
|
|
||||||
|
|
||||||
h3 YQL Query
|
|
||||||
pre SELECT * FROM weather.forecast WHERE (location = 10007)
|
|
5
views/resources/about.jade
Normal file
5
views/resources/about.jade
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
extends ../layout
|
||||||
|
block content
|
||||||
|
include ../partials/about-us
|
||||||
|
br
|
||||||
|
include ../partials/faq
|
@ -1,4 +1,4 @@
|
|||||||
extends layout
|
extends ../layout
|
||||||
block content
|
block content
|
||||||
.jumbotron.negative-15.text-center
|
.jumbotron.negative-15.text-center
|
||||||
h1.hug-top Win a Chromebook
|
h1.hug-top Win a Chromebook
|
22
views/resources/control-shortcuts.jade
Normal file
22
views/resources/control-shortcuts.jade
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
extends ../layout
|
||||||
|
block content
|
||||||
|
.jumbotron.negative-15.text-center
|
||||||
|
h1.hug-top Global Control Shortcuts for Mac
|
||||||
|
h2 These Global Control Shortcuts for Mac will save you hours by speeding up your typing
|
||||||
|
br
|
||||||
|
.embed-responsive.embed-responsive-16by9
|
||||||
|
iframe.embed-responsive-item(src='//player.vimeo.com/video/107073108')
|
||||||
|
.text-left
|
||||||
|
h3 These global shortcuts work everywhere on a Mac:
|
||||||
|
ul
|
||||||
|
li Control + F = Forward
|
||||||
|
li Control + B = Backward
|
||||||
|
li Control + N = Next Line
|
||||||
|
li Control + P = Previous Line
|
||||||
|
li Control + H = Backspace
|
||||||
|
li Control + D = Delete
|
||||||
|
li Control + A = Beginning of Line
|
||||||
|
li Control + E = End of Line
|
||||||
|
li Control + K = Kill line
|
||||||
|
a.btn.btn-cta.signup-btn.btn-primary(href="/login") Start learning to code (it's free)
|
||||||
|
br
|
25
views/resources/deploy-a-website.jade
Normal file
25
views/resources/deploy-a-website.jade
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
extends ../layout
|
||||||
|
block content
|
||||||
|
.jumbotron.negative-15.text-center
|
||||||
|
h1.hug-top Deploy a Dynamic Website in 7 Minutes
|
||||||
|
h2 Here's a fast and easy way to deploy a dynamic website to the internet
|
||||||
|
br
|
||||||
|
.embed-responsive.embed-responsive-16by9
|
||||||
|
iframe.embed-responsive-item(src='//player.vimeo.com/video/107073108')
|
||||||
|
.text-left
|
||||||
|
h3 Use these links:
|
||||||
|
ul
|
||||||
|
li
|
||||||
|
a(href='http://www.atom.io' target='_blank') http://www.atom.io
|
||||||
|
| - free text editor
|
||||||
|
li
|
||||||
|
a(href='http://www.startbootstrap.com' target='_blank') http://www.startbootstrap.com
|
||||||
|
| - free responsive (Bootstrap) templates
|
||||||
|
li
|
||||||
|
a(href='http://www.powr.io' target='_blank') http://www.powr.io
|
||||||
|
| - great plugins
|
||||||
|
li
|
||||||
|
a(href='http://www.bitballoon.com' target='_blank') http://www.bitballoon.com
|
||||||
|
| - drag-and-drop deployment
|
||||||
|
a.btn.btn-cta.signup-btn.btn-primary(href="/login") Start learning to code (it's free)
|
||||||
|
br
|
@ -1,4 +1,4 @@
|
|||||||
extends layout
|
extends ../layout
|
||||||
block content
|
block content
|
||||||
.jumbotron.negative-15.text-center
|
.jumbotron.negative-15.text-center
|
||||||
h1.hug-top Congratulations on finishing the first 100 hours of Free Code Camp!
|
h1.hug-top Congratulations on finishing the first 100 hours of Free Code Camp!
|
24
views/resources/gmail-shortcuts.jade
Normal file
24
views/resources/gmail-shortcuts.jade
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
extends ../layout
|
||||||
|
block content
|
||||||
|
.jumbotron.negative-15.text-center
|
||||||
|
h1.hug-top Gmail Shortcuts
|
||||||
|
h2 These Gmail Shortcuts will save you hours and help you get to Zero Inbox
|
||||||
|
br
|
||||||
|
.embed-responsive.embed-responsive-16by9
|
||||||
|
iframe.embed-responsive-item(src='//player.vimeo.com/video/115194016')
|
||||||
|
.text-left
|
||||||
|
h3 The shortcuts:
|
||||||
|
ul
|
||||||
|
li j - move down
|
||||||
|
li k - move up
|
||||||
|
li o - open
|
||||||
|
li r - reply
|
||||||
|
li a - reply all
|
||||||
|
li f - forward
|
||||||
|
li c - compose
|
||||||
|
li x - select
|
||||||
|
li e - archive
|
||||||
|
li ! - mark spam
|
||||||
|
li z - undo
|
||||||
|
a.btn.btn-cta.signup-btn.btn-primary(href="/login") Start learning to code (it's free)
|
||||||
|
br
|
@ -1,4 +1,4 @@
|
|||||||
extends layout
|
extends ../layout
|
||||||
block content
|
block content
|
||||||
.jumbotron.negative-15.text-center
|
.jumbotron.negative-15.text-center
|
||||||
h1.hug-top Win a Chromebook
|
h1.hug-top Win a Chromebook
|
@ -1,4 +1,4 @@
|
|||||||
extends layout
|
extends ../layout
|
||||||
block content
|
block content
|
||||||
script.
|
script.
|
||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
@ -1,5 +1,5 @@
|
|||||||
extends layout
|
extends ../layout
|
||||||
block content
|
block content
|
||||||
.text-center
|
.text-center
|
||||||
h2.big-text Learn to Code
|
h2.big-text Learn to Code
|
||||||
include partials/faq
|
include ../partials/faq
|
@ -1,4 +1,4 @@
|
|||||||
extends layout
|
extends ../layout
|
||||||
block content
|
block content
|
||||||
.jumbotron.negative-15.text-center
|
.jumbotron.negative-15.text-center
|
||||||
h1.hug-top Live Pair Programming
|
h1.hug-top Live Pair Programming
|
@ -1,4 +1,4 @@
|
|||||||
extends ./layout
|
extends ../layout
|
||||||
block content
|
block content
|
||||||
.row
|
.row
|
||||||
.col-sm-12.col-md-8.col-xs-12
|
.col-sm-12.col-md-8.col-xs-12
|
||||||
@ -24,4 +24,4 @@ block content
|
|||||||
a(href="https://reddit.com/r/freecodecamp", target="_blank") Subreddit
|
a(href="https://reddit.com/r/freecodecamp", target="_blank") Subreddit
|
||||||
| .
|
| .
|
||||||
.col-sm-12.col-md-4.col-xs-12
|
.col-sm-12.col-md-4.col-xs-12
|
||||||
include ./partials/challenges
|
include ../partials/challenges
|
@ -1,4 +1,4 @@
|
|||||||
extends layout
|
extends ../layout
|
||||||
block content
|
block content
|
||||||
.jumbotron
|
.jumbotron
|
||||||
h2.big-text Privacy
|
h2.big-text Privacy
|
@ -1,4 +1,4 @@
|
|||||||
extends layout
|
extends ../layout
|
||||||
block content
|
block content
|
||||||
script.
|
script.
|
||||||
$(document).ready(function () {
|
$(document).ready(function () {
|
70
views/resources/stats.jade
Normal file
70
views/resources/stats.jade
Normal file
@ -0,0 +1,70 @@
|
|||||||
|
extends ../layout
|
||||||
|
block content
|
||||||
|
.jumbotron.negative-15.text-center
|
||||||
|
h1.hug-top Free Code Camp Stats
|
||||||
|
.row
|
||||||
|
.col-xs-6.text-right
|
||||||
|
h2 Days since we Launched:
|
||||||
|
.col-xs-6.text-left
|
||||||
|
h2
|
||||||
|
= daysRunning
|
||||||
|
.row
|
||||||
|
.col-xs-6.text-right
|
||||||
|
h2 Nonprofit Projects:
|
||||||
|
.col-xs-6.text-left
|
||||||
|
h2
|
||||||
|
a(href="https://trello.com/1/boards/BA3xVpz9") 14
|
||||||
|
.row
|
||||||
|
.col-xs-6.text-right
|
||||||
|
h2 Total users:
|
||||||
|
.col-xs-6.text-left
|
||||||
|
h2
|
||||||
|
= users
|
||||||
|
.row
|
||||||
|
.col-xs-6.text-right
|
||||||
|
h2 Users with > 2 Points:
|
||||||
|
.col-xs-6.text-left
|
||||||
|
h2
|
||||||
|
= c2
|
||||||
|
.row
|
||||||
|
.col-xs-6.text-right
|
||||||
|
h2 Users with > 4 Points:
|
||||||
|
.col-xs-6.text-left
|
||||||
|
h2
|
||||||
|
= c4
|
||||||
|
.row
|
||||||
|
.col-xs-6.text-right
|
||||||
|
h2 Users with > 9 Points:
|
||||||
|
.col-xs-6.text-left
|
||||||
|
h2
|
||||||
|
= c9
|
||||||
|
.row
|
||||||
|
.col-xs-6.text-right
|
||||||
|
h2 Users with > 19 Points:
|
||||||
|
.col-xs-6.text-left
|
||||||
|
h2
|
||||||
|
= c19
|
||||||
|
.row
|
||||||
|
.col-xs-6.text-right
|
||||||
|
h2 Users with > 29 Points:
|
||||||
|
.col-xs-6.text-left
|
||||||
|
h2
|
||||||
|
= c29
|
||||||
|
.row
|
||||||
|
.col-xs-6.text-right
|
||||||
|
h2 Users with > 39 Points:
|
||||||
|
.col-xs-6.text-left
|
||||||
|
h2
|
||||||
|
= c39
|
||||||
|
.row
|
||||||
|
.col-xs-6.text-right
|
||||||
|
h2 Users with > 49 Points:
|
||||||
|
.col-xs-6.text-left
|
||||||
|
h2
|
||||||
|
= c49
|
||||||
|
.row
|
||||||
|
.col-xs-6.text-right
|
||||||
|
h2 Users with > 59 Points:
|
||||||
|
.col-xs-6.text-left
|
||||||
|
h2
|
||||||
|
= c59
|
Reference in New Issue
Block a user