chore(redirects): Migrate redirects and clean up server views
This commit is contained in:
@ -3,7 +3,6 @@ import request from 'request';
|
|||||||
import { homeLocation } from '../../../config/env';
|
import { homeLocation } from '../../../config/env';
|
||||||
|
|
||||||
import constantStrings from '../utils/constantStrings.json';
|
import constantStrings from '../utils/constantStrings.json';
|
||||||
import testimonials from '../resources/testimonials.json';
|
|
||||||
|
|
||||||
const githubClient = process.env.GITHUB_ID;
|
const githubClient = process.env.GITHUB_ID;
|
||||||
const githubSecret = process.env.GITHUB_SECRET;
|
const githubSecret = process.env.GITHUB_SECRET;
|
||||||
@ -14,8 +13,6 @@ module.exports = function(app) {
|
|||||||
const User = app.models.User;
|
const User = app.models.User;
|
||||||
|
|
||||||
router.get('/api/github', githubCalls);
|
router.get('/api/github', githubCalls);
|
||||||
router.get('/chat', chat);
|
|
||||||
router.get('/twitch', twitch);
|
|
||||||
router.get('/u/:email', unsubscribeDepricated);
|
router.get('/u/:email', unsubscribeDepricated);
|
||||||
router.get('/unsubscribe/:email', unsubscribeDepricated);
|
router.get('/unsubscribe/:email', unsubscribeDepricated);
|
||||||
router.get('/ue/:unsubscribeId', unsubscribeById);
|
router.get('/ue/:unsubscribeId', unsubscribeById);
|
||||||
@ -27,72 +24,18 @@ module.exports = function(app) {
|
|||||||
router.get('/unsubscribed', unsubscribed);
|
router.get('/unsubscribed', unsubscribed);
|
||||||
api.get('/resubscribe/:unsubscribeId', resubscribe);
|
api.get('/resubscribe/:unsubscribeId', resubscribe);
|
||||||
router.get('/nonprofits', nonprofits);
|
router.get('/nonprofits', nonprofits);
|
||||||
router.get('/nonprofits-form', nonprofitsForm);
|
|
||||||
router.get('/pmi-acp-agile-project-managers', agileProjectManagers);
|
|
||||||
router.get('/pmi-acp-agile-project-managers-form', agileProjectManagersForm);
|
|
||||||
router.get('/coding-bootcamp-cost-calculator', bootcampCalculator);
|
router.get('/coding-bootcamp-cost-calculator', bootcampCalculator);
|
||||||
router.get('/stories', showTestimonials);
|
|
||||||
router.get('/all-stories', showAllTestimonials);
|
|
||||||
router.get('/how-nonprofit-projects-work', howNonprofitProjectsWork);
|
|
||||||
router.get(
|
|
||||||
'/software-resources-for-nonprofits',
|
|
||||||
softwareResourcesForNonprofits
|
|
||||||
);
|
|
||||||
router.get('/academic-honesty', academicHonesty);
|
|
||||||
|
|
||||||
app.use(router);
|
app.use(router);
|
||||||
|
|
||||||
app.use('/internal', api);
|
app.use('/internal', api);
|
||||||
|
|
||||||
function chat(req, res) {
|
|
||||||
res.redirect('https://gitter.im/FreeCodeCamp/FreeCodeCamp');
|
|
||||||
}
|
|
||||||
|
|
||||||
function howNonprofitProjectsWork(req, res) {
|
|
||||||
res.redirect(
|
|
||||||
301,
|
|
||||||
'https://medium.freecodecamp.com/open-source-for-good-1a0ea9f32d5a'
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
function softwareResourcesForNonprofits(req, res) {
|
|
||||||
res.render('resources/software-resources-for-nonprofits', {
|
|
||||||
title: 'Software Resources for Nonprofits'
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function academicHonesty(req, res) {
|
|
||||||
res.render('resources/academic-honesty', {
|
|
||||||
title: 'Academic Honesty policy'
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function theFastestWebPageOnTheInternet(req, res) {
|
function theFastestWebPageOnTheInternet(req, res) {
|
||||||
res.render('resources/the-fastest-web-page-on-the-internet', {
|
res.render('resources/the-fastest-web-page-on-the-internet', {
|
||||||
title: 'This is the fastest web page on the internet'
|
title: 'This is the fastest web page on the internet'
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function showTestimonials(req, res) {
|
|
||||||
res.render('resources/stories', {
|
|
||||||
title:
|
|
||||||
'Testimonials from Happy freeCodeCamp Students ' +
|
|
||||||
'who got Software Engineer Jobs',
|
|
||||||
stories: testimonials.slice(0, 72),
|
|
||||||
moreStories: true
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function showAllTestimonials(req, res) {
|
|
||||||
res.render('resources/stories', {
|
|
||||||
title:
|
|
||||||
'Testimonials from Happy freeCodeCamp Students ' +
|
|
||||||
'who got Software Engineer Jobs',
|
|
||||||
stories: testimonials,
|
|
||||||
moreStories: false
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function bootcampCalculator(req, res) {
|
function bootcampCalculator(req, res) {
|
||||||
res.render('resources/calculator', {
|
res.render('resources/calculator', {
|
||||||
title: 'Coding Bootcamp Cost Calculator'
|
title: 'Coding Bootcamp Cost Calculator'
|
||||||
@ -105,28 +48,6 @@ module.exports = function(app) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function nonprofitsForm(req, res) {
|
|
||||||
res.render('resources/nonprofits-form', {
|
|
||||||
title: 'Nonprofit Projects Proposal Form'
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function agileProjectManagers(req, res) {
|
|
||||||
res.render('resources/pmi-acp-agile-project-managers', {
|
|
||||||
title: 'Get Agile Project Management Experience for the PMI-ACP'
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function agileProjectManagersForm(req, res) {
|
|
||||||
res.render('resources/pmi-acp-agile-project-managers-form', {
|
|
||||||
title: 'Agile Project Management Program Application Form'
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function twitch(req, res) {
|
|
||||||
res.redirect('https://twitch.tv/freecodecamp');
|
|
||||||
}
|
|
||||||
|
|
||||||
function unsubscribeDepricated(req, res) {
|
function unsubscribeDepricated(req, res) {
|
||||||
req.flash(
|
req.flash(
|
||||||
'info',
|
'info',
|
||||||
|
@ -1,32 +0,0 @@
|
|||||||
module.exports = function(app) {
|
|
||||||
var router = app.loopback.Router();
|
|
||||||
|
|
||||||
router.get('/nonprofit-project-instructions', function(req, res) {
|
|
||||||
res.redirect(
|
|
||||||
301,
|
|
||||||
'http://forum.freecodecamp.org/t/'
|
|
||||||
+ 'how-free-code-camps-nonprofits-projects-work/19547'
|
|
||||||
);
|
|
||||||
});
|
|
||||||
|
|
||||||
router.get('/agile', function(req, res) {
|
|
||||||
res.redirect(301, '/pmi-acp-agile-project-managers');
|
|
||||||
});
|
|
||||||
|
|
||||||
router.get('/privacy', function(req, res) {
|
|
||||||
res.redirect(
|
|
||||||
301,
|
|
||||||
'http://forum.freecodecamp.org/t/free-code-camp-privacy-policy/19545'
|
|
||||||
);
|
|
||||||
});
|
|
||||||
|
|
||||||
router.get('/learn-to-code', function(req, res) {
|
|
||||||
res.redirect(301, '/map');
|
|
||||||
});
|
|
||||||
|
|
||||||
router.get('/field-guide/*', function(req, res) {
|
|
||||||
res.redirect(302, 'http://forum.freecodecamp.org');
|
|
||||||
});
|
|
||||||
|
|
||||||
app.use(router);
|
|
||||||
};
|
|
1
api-server/server/resources/.gitkeep
Normal file
1
api-server/server/resources/.gitkeep
Normal file
@ -0,0 +1 @@
|
|||||||
|
# this file is here to add an empty dir to git
|
@ -1,569 +0,0 @@
|
|||||||
[
|
|
||||||
{
|
|
||||||
"camper": "Meta Hirschl",
|
|
||||||
"quote": "By building a robust and highly functional web app I was able to not only increase my confidence but was able to show potential employers what I was able to create. Both were huge for me and led me to getting a fantastic job.",
|
|
||||||
"github": "MetaCoderHirschl",
|
|
||||||
"linkedin": "https://www.linkedin.com/profile/view?id=ADEAAAKX2fEBfeZ1GVdOh-c0zzkYZKw38o8qzow",
|
|
||||||
"image": "https://i.imgur.com/nsvNixW.jpg"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"camper": "Branden Byers",
|
|
||||||
"quote": "My goal was to become employed by the end of 2015. Instead, I ended up with a job at the beginning of 2015. This was directly related to my work at freeCodeCamp.",
|
|
||||||
"github": "brandenbyers",
|
|
||||||
"linkedin": "https://www.linkedin.com/in/brandenbyers",
|
|
||||||
"image": "https://i.imgur.com/NbzknHq.jpg"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"camper": "Bruna Torman Reseres Franasa",
|
|
||||||
"quote": "I’m now receiving offers for internships. I have no experience in IT, but now good things are happening!",
|
|
||||||
"github": "brunatrf",
|
|
||||||
"linkedin": "https://www.linkedin.com/profile/view?id=AAkAABVPh9IB730qyshrsqO1hDNNRUL-X_4i8n0",
|
|
||||||
"image": "https://i.imgur.com/TqxHSNY.jpg"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"camper": "Maxim Orlov",
|
|
||||||
"quote": "I started freeCodeCamp with zero knowledge of web development. 6 months later, I landed my first job as a back end engineer.",
|
|
||||||
"github": "Maximization",
|
|
||||||
"linkedin": "https://www.linkedin.com/profile/view?id=AAkAAAo83nwBF57LpD9mZlm5dH6OcovOpYKPs3k",
|
|
||||||
"image": "https://i.imgur.com/wjlDigg.jpg"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"camper": "Alexander Black, Jr.",
|
|
||||||
"quote": "My work on a nonprofit project gave me the opportunity to learn how to build Chrome extensions and showcase my skills as a full-stack developer.",
|
|
||||||
"github": "alexblackjr",
|
|
||||||
"linkedin": "https://www.linkedin.com/profile/view?id=AAkAAA553L4BgfgBR-M9RQc7x5matd6FUx3a6-I",
|
|
||||||
"image": "https://i.imgur.com/iHC6ZI4.jpg"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"camper": "Cristiane Henriques",
|
|
||||||
"quote": "I am getting more work contacts after including freeCodeCamp on my CV and my LinkedIn.",
|
|
||||||
"github": "CrisHenriques",
|
|
||||||
"linkedin": "https://www.linkedin.com/in/crishenriques",
|
|
||||||
"image": "https://i.imgur.com/T6iTQHs.jpg"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"camper": "Viktor Bakurin",
|
|
||||||
"quote": "During my work on freeCodeCamp's nonprofit projects, I found a MEAN stack position outside of my home country. Now I work in Budapest.",
|
|
||||||
"github": "letalumil",
|
|
||||||
"linkedin": "https://www.linkedin.com/profile/view?id=AAkAAAq6G3QBA1DIwFZGrS4DGqDzBDTzFjrbNQo",
|
|
||||||
"image": "https://i.imgur.com/fvUAWlx.jpg"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"camper": "Ashley Drake",
|
|
||||||
"quote": "freeCodeCamp helped me get my first engineering job. This amazing community made my career switch a lot easier and more fun.",
|
|
||||||
"github": "aldraco",
|
|
||||||
"linkedin": "https://www.linkedin.com/profile/view?id=AAkAABcdBycB1iVHvcW7N3yVK-18ES7Nrxx2jbE",
|
|
||||||
"image": "https://i.imgur.com/xzDoJef.jpg"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"camper": "Brian Grant",
|
|
||||||
"quote": "freeCodeCamp's a great way for disabled veterans like me to retrain. I'm receiving engineering job offers, and I haven't even finished yet.",
|
|
||||||
"github": "codeseekingman",
|
|
||||||
"linkedin": "https://www.linkedin.com/profile/view?id=AAkAAAEUqXoBFOq1SWQrBsTMHG4ij9Ss4Qqnrtg",
|
|
||||||
"image": "https://i.imgur.com/QPpjPac.jpg"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"camper": "Thomas Joseph Izen",
|
|
||||||
"quote": "After spending lots of time trying different sites that aim to teach people how to code, freeCodeCamp has been different from the beginning. They provide the best and most organized track for anyone at any level to learn how to code and build an amazing, marketable portfolio.",
|
|
||||||
"github": "TommyIzen",
|
|
||||||
"linkedin": "https://www.linkedin.com/profile/view?id=AAkAAA79qIYB_RHmvOP59S6VPK3Lm06oG8fM6dw",
|
|
||||||
"image": "https://i.imgur.com/RkO2ISf.jpg"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"camper": "Lori Becker",
|
|
||||||
"quote": "After graduating with a Masters degree in computer science, I could not share any of my code with employers (university policy: fear of aiding cheating). With freeCodeCamp, I was able to develop a small portfolio.",
|
|
||||||
"github": "LCBecker",
|
|
||||||
"linkedin": "https://www.linkedin.com/profile/view?id=AAkAAADrtuwBOA_0ihkKIbUFXoXskXikQT9uVeo",
|
|
||||||
"image": "https://i.imgur.com/J1cbqDQ.jpg"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"camper": "Robert Trammel",
|
|
||||||
"quote": "I'm working a job integrating JavaScript into FileMaker and doing some custom web publishing for a school district. I've also have job offers from Apple and a few technology firms around the country. If it wasn't for freeCodeCamp, I'd still be in the dark with some really awesome but irrelevant skills.",
|
|
||||||
"github": "comajama",
|
|
||||||
"linkedin": "https://www.linkedin.com/profile/view?id=AAIAABQsM30BEAI6xyAhk-OqbBNUJL0WD2uA3GE",
|
|
||||||
"image": "https://i.imgur.com/E9YdQIn.jpg"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"camper": "Brian Atkins",
|
|
||||||
"quote": "I'm spending less time then I used to on freeCodeCamp, because people have begun to hire me to work on their projects. freeCodeCamp has provided me the foundation I have needed to get these jobs.",
|
|
||||||
"github": "BrianAtk",
|
|
||||||
"linkedin": "https://www.linkedin.com/profile/view?id=AAkAAABtTx0BmDzmB7eDGOkAJbRw8RZdvysreso",
|
|
||||||
"image": "https://i.imgur.com/veN77Iw.jpg"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"camper": "Andrea Goulet",
|
|
||||||
"quote": "Before enrolling in freeCodeCamp, I was nervous when people asked me, \"Do you code?\", Now, I answer with a confident \"YES!\"",
|
|
||||||
"github": "andreagoulet",
|
|
||||||
"linkedin": "https://www.linkedin.com/profile/view?id=AAkAAAA4KWYB-mCMwEU3LvDHXt6H0rVHbBvszq0",
|
|
||||||
"image": "https://i.imgur.com/XWt7fXk.jpg"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"camper": "David McGill",
|
|
||||||
"quote": "Even if you have a CS degree like I do, you still need projects to prove to employers that you care about coding. freeCodeCamp provided me with a platform for doing this. It's all laid out for you - you just have step up and step into the map!",
|
|
||||||
"github": "dmcgill50",
|
|
||||||
"linkedin": "https://www.linkedin.com/profile/view?id=AAkAAAEBy74BHsJCpgrbohr2dJxbdXuvMuJDx6k",
|
|
||||||
"image": "https://i.imgur.com/ZVNPIYU.jpg"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"camper": "Adam Recvlohe",
|
|
||||||
"quote": "I had no previous development experience and I was working a full-time as an Instructional Designer. freeCodeCamp helped me get hired as a JavaScript developer.",
|
|
||||||
"github": "arecvlohe",
|
|
||||||
"linkedin": "https://www.linkedin.com/in/adamrecvlohe",
|
|
||||||
"image": "https://i.imgur.com/oFxOlRG.jpg"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"camper": "John Ellis",
|
|
||||||
"quote": "freeCodeCamp has been one of the major contributors to my career in software development. I started as an apps analyst, spent 3 months going through the coursework in my off time and weekends, and just landed a job as a business systems developer.",
|
|
||||||
"github": "johnmellis",
|
|
||||||
"linkedin": "https://www.linkedin.com/profile/view?id=AAkAAAbrISEBqAVYOBfhni9mB3YoFFzzrAbYvvo",
|
|
||||||
"image": "https://i.imgur.com/qLfaM9Y.jpg"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"camper": "Rachel Krantz",
|
|
||||||
"quote": "freeCodeCamp gave me confidence that I could apply to software engineering jobs, because I knew I was capable of learning. That confidence convinced the hiring manager to hire me.",
|
|
||||||
"github": "krantzinator",
|
|
||||||
"linkedin": "https://www.linkedin.com/profile/view?id=AAkAAAOdv-oBnOGtQCoGooUB0xGJ4TWoAgV_z_E",
|
|
||||||
"image": "https://i.imgur.com/dqHrkkC.jpg"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"camper": "Alex Dixon",
|
|
||||||
"quote": "I was hired by the owner of the company, a programmer with 25 years of experience in web development. I graduated from university with a degree in English and had no programming experience prior to attending freeCodeCamp.",
|
|
||||||
"github": "alex-dixon",
|
|
||||||
"linkedin": "https://www.linkedin.com/profile/view?id=AAkAABhCmLMBLAR1AXskaJXDMT-uLPZ8M7TynPQ",
|
|
||||||
"image": "https://i.imgur.com/poiaanK.jpg"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"camper": "Ryan Lindeman",
|
|
||||||
"quote": "freeCodeCamp has been great in giving me a direct path to the full stack development skills I wanted to become more involved in projects at work.",
|
|
||||||
"github": "fai1whale",
|
|
||||||
"linkedin": "https://www.linkedin.com/profile/view?id=AAkAAAkMT1EBFCY849rMWYSDIEj6kosBJSH9n2s",
|
|
||||||
"image": "https://i.imgur.com/jHOjcyN.jpg"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"camper": "Stephanie Brown",
|
|
||||||
"quote": "freeCodeCamp has given me structure and a direction while learning to code.",
|
|
||||||
"github": "strawmitch",
|
|
||||||
"linkedin": "https://www.linkedin.com/profile/view?id=AAkAAARqP5cBDDdBxPUzluctvjUhOP3UsiowRtM",
|
|
||||||
"image": "https://i.imgur.com/k5EEyNf.jpg"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"camper": "Jimson Sulit",
|
|
||||||
"quote": "Aside from the fact that I’m learning full stack web development, freeCodeCamp has also given me the opportunity to lead local community projects.",
|
|
||||||
"github": "webdevjedi25",
|
|
||||||
"linkedin": "https://www.linkedin.com/profile/view?id=AAkAAAWqUccBopX2Wo_P1gYgy0iIEqChwXPTh2k",
|
|
||||||
"image": "https://i.imgur.com/DzMDPS5.jpg"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"camper": "Brian Emory",
|
|
||||||
"quote": "I like to learn by doing but with the books, while very informative, there was more reading than doing. I came across freeCodeCamp which has allowed me to learn by doing. Whereas before I was struggling to learn, I am now not only learning but learning while building cool projects.",
|
|
||||||
"github": "thebrianemory",
|
|
||||||
"linkedin": "https://www.linkedin.com/profile/view?id=AAkAABc3jXwB-iZdZKZIVAvL93RHGB7_J9gDbVA",
|
|
||||||
"image": "https://i.imgur.com/JcdSD9H.jpg"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"camper": "Ralph Cachero",
|
|
||||||
"quote": "I am a software QA engineer. freeCodeCamp has helped me understand what the developers go through.",
|
|
||||||
"github": "rcachero",
|
|
||||||
"linkedin": "https://www.linkedin.com/profile/view?id=AAkAAAJEF88BiUtMoxS3Ww7ooI9QmTZdrgP272Q",
|
|
||||||
"image": "https://i.imgur.com/5umfPRq.jpg"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"camper": "Ina Tsetsova",
|
|
||||||
"quote": "Bonfires really make me think and combine programming concepts creatively.",
|
|
||||||
"github": "Tsetsova",
|
|
||||||
"linkedin": "https://www.linkedin.com/profile/view?id=AAkAAAjPoIcBJsAF91dqwgxFQ4qct88yFcljXNU",
|
|
||||||
"image": "https://i.imgur.com/9Ta15Ow.jpg"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"camper": "Ryan Jones",
|
|
||||||
"quote": "Learning to code with freeCodeCamp has given me a leg up in my career. It has helped to train my brain to think with the logic that computers use. This is a tremendous aid in the field of digital forensics.",
|
|
||||||
"github": "ryanmjones",
|
|
||||||
"linkedin": "https://www.linkedin.com/profile/view?id=AAkAABPJt1MBxC4Yero3PJPhF9rrr_Y7WfOGcCU",
|
|
||||||
"image": "https://i.imgur.com/8cRU20S.jpg"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"camper": "Sara Powell",
|
|
||||||
"quote": "I’ve progressed from not coding very much at all, to coding well enough to land job interviews for front end development positions.",
|
|
||||||
"github": "newtcobell",
|
|
||||||
"linkedin": "https://www.linkedin.com/profile/view?id=AAkAAAy1jmQBRjoGSUWd6Zib7FtekpSMBVHr7Vw",
|
|
||||||
"image": "https://i.imgur.com/4l4OBbR.jpg"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"camper": "Rhonadale Florentino",
|
|
||||||
"quote": "I can now confidently tell clients that I can design their website.",
|
|
||||||
"github": "None Given",
|
|
||||||
"linkedin": "https://www.linkedin.com/profile/view?id=AAkAAAI53oUBmy6MPKp1UeHxBy3_y0cyTS4bWow",
|
|
||||||
"image": "https://i.imgur.com/soEDnv6.jpg"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"camper": "Justin Clay Lane",
|
|
||||||
"quote": "freeCodeCamp provided a structured learning experience more akin to an actual class, compared to other free learning sites. I was recently hired to update and maintain the website for a local doctor’s office. The extra money and experience from that is wonderful.",
|
|
||||||
"github": "jclane",
|
|
||||||
"linkedin": "https://www.linkedin.com/profile/view?id=AAkAAAYZYQ4BBY337OqRUhMnZqDJNX1wNXjT7Bk",
|
|
||||||
"image": "https://i.imgur.com/COEPda5.jpg"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"camper": "Angshuman Gupta",
|
|
||||||
"quote": "I’m a co-founder of a startup. We had been coding with PHP, but always wanted to shift to meteor.js. freeCodeCamp gave me a structured JavaScript guide.",
|
|
||||||
"github": "codingang",
|
|
||||||
"linkedin": "https://www.linkedin.com/profile/view?id=AAkAAAhIipMB6vAXaratEs0MtUd3GgyYm70cvbE",
|
|
||||||
"image": "https://i.imgur.com/7pwkFQ5.jpg"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"camper": "Genavieve Clausen",
|
|
||||||
"quote": "freeCodeCamp has benefitted me in numerous ways, including the opportunity to learn in a self-paced, supportive environment. I am excited to be a part of a growing community making lasting connections for the career and lifestyle I am pursuing.",
|
|
||||||
"github": "GenavieveMarie",
|
|
||||||
"linkedin": "https://www.linkedin.com/profile/view?id=AAkAAAOISlMBAi43m1SG-xM_S2B8Vy05yiQz5rE",
|
|
||||||
"image": "https://i.imgur.com/vr7lTkx.jpg"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"camper": "Tim Stauffer",
|
|
||||||
"quote": "I found freeCodeCamp more helpful than my MS degree, so I quit college. Learning so much. Also saving $50,000.",
|
|
||||||
"github": "timstauffer",
|
|
||||||
"linkedin": "https://www.linkedin.com/profile/view?id=AAkAAADVcVIBz8UCNjQKl2GUy9ka8UGnQXAXAYw",
|
|
||||||
"image": "https://i.imgur.com/b8YCzf1.jpg"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"camper": "Marquina M Iliev-Piselli",
|
|
||||||
"quote": "I’m re-designing a site for my full-time job.",
|
|
||||||
"github": "Marquina",
|
|
||||||
"linkedin": "https://www.linkedin.com/profile/view?id=AAkAAACYvVUBTuu8dNRHthN1TFiyk137PLDqnv4",
|
|
||||||
"image": "https://i.imgur.com/6Ep9hfs.jpg"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"camper": "Pete Considine",
|
|
||||||
"quote": "The guided and structured lessons have been really helpful, as has the relatively slow pace that new concepts are introduced. I had been taking a Udemy course and it really seemed to be skimming the surface of JavaScript in the interest of \"getting to everything.\"",
|
|
||||||
"github": "Pjconsidine",
|
|
||||||
"linkedin": "https://www.linkedin.com/profile/view?id=AAkAAAAi8-8BxUVpoi_VuJQmeGWN5zhMBgbvPbs",
|
|
||||||
"image": "https://i.imgur.com/SkYRcDW.jpg"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"camper": "Khatra Ahmed",
|
|
||||||
"quote": "I can learn to code with support by my side. Everyone is so helpful and it makes learning to code less of a struggle.",
|
|
||||||
"github": "Mystfreak",
|
|
||||||
"linkedin": "https://www.linkedin.com/profile/view?id=AAkAAAbdUsIBApacWEmL7CIxe2q7aevMn7aQvmQ",
|
|
||||||
"image": "https://i.imgur.com/XguPEF7.jpg"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"camper": "Marcus Lyons",
|
|
||||||
"quote": "freeCodeCamp has helped me gain the confidence to automate part of my work responsibilities. I was able to use skills I learned from freeCodeCamp to help with writing a bash script to search through mobile app database log files to find errors.",
|
|
||||||
"github": "auron1223",
|
|
||||||
"linkedin": "https://www.linkedin.com/profile/view?id=AAkAAA_1aLABo1pVJH9ijSqz8PvLgpzVYkIsjVc",
|
|
||||||
"image": "https://i.imgur.com/X5c77Ov.jpg"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"camper": "Reynald Emmanuel Endaya",
|
|
||||||
"quote": "There is an active community (even in Manila) and it’s interactive, unlike all the MOOCs I tried before where I had to listen to somebody speak for a long time. I am learning a lot here and I have not yet lost my momentum.",
|
|
||||||
"github": "None Given",
|
|
||||||
"linkedin": "https://www.linkedin.com/profile/view?id=AAkAAAUlm8oBQuXm_Y89_LDC9mb2vOjjQH_pZDo",
|
|
||||||
"image": "https://i.imgur.com/oA5CtWF.jpg"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"camper": "Victoria Kariolic",
|
|
||||||
"quote": "I discovered a coding partner through the freeCodeCamp groups who has been able to cover gaps for my client work.",
|
|
||||||
"github": "Niaskywalk",
|
|
||||||
"linkedin": "https://www.linkedin.com/profile/view?id=AAkAAAEFmXMBlTFIR2j1G-vJhAMsUOPONILGrLM",
|
|
||||||
"image": "https://i.imgur.com/TiqbM1f.jpg"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"camper": "Cameron Eshgh",
|
|
||||||
"quote": "freeCodeCamp enables me as a digital marketer to dive right into whatever asset or content and fix things that haven’t been working, as well as roll up my sleeves when our web developers are not available.",
|
|
||||||
"github": "eshghitude",
|
|
||||||
"linkedin": "https://www.linkedin.com/profile/view?id=AAkAAAVdU1MBFFiei4ZYNImnVDcR3H_EiuS6qLY",
|
|
||||||
"image": "https://i.imgur.com/PEzJLCp.jpg"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"camper": "Devarsh Ruparelia",
|
|
||||||
"quote": "Even though I am still just a high school student. The startup I intern for said that if I finish the full track of freeCodeCamp, they will strongly consider me for their programming jobs. Thanks freeCodeCamp!",
|
|
||||||
"github": "devarsh1997",
|
|
||||||
"linkedin": "https://www.linkedin.com/profile/view?id=AAkAAApxpP8BZBcHQzr6Ci3xmkkZX-OSH_oLuJs",
|
|
||||||
"image": "https://i.imgur.com/ouv1qUd.jpg"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"camper": "Miranda Bashore",
|
|
||||||
"quote": "I want to be able to freelance and create dynamic websites. freeCodeCamp makes that more of a reality for me, as I cannot afford an expensive bootcamp while getting my Master’s degree.",
|
|
||||||
"github": "DutchBay",
|
|
||||||
"linkedin": "https://www.linkedin.com/profile/view?id=AAkAAA8KmJMBTtvvgJzjeAUo_YOssh2yLZZlvlk",
|
|
||||||
"image": "https://i.imgur.com/mJlUzOq.jpg"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"camper": "Christian Morera",
|
|
||||||
"quote": "freeCodeCamp has been a great experience. I’ve learned so many things. I am in the process of transitioning from content developer to full stack developer.",
|
|
||||||
"github": "chrmorfeus",
|
|
||||||
"linkedin": "https://www.linkedin.com/profile/view?id=AAkAAAMc-tYBtYri0H1KHz1WNQjWxZ23jg0tMNU",
|
|
||||||
"image": "https://i.imgur.com/sfhBDHw.jpg"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"camper": "Jason Arnold",
|
|
||||||
"quote": "I like self-paced learning, so freeCodeCamp has been great. The challenges are difficult enough to push boundaries but not so tough to scare people off.",
|
|
||||||
"github": "thejasonfile",
|
|
||||||
"linkedin": "https://www.linkedin.com/profile/view?id=AAkAAABlImsBwAEZ3u3A5NIlCegho8WZ2j4h0w0",
|
|
||||||
"image": "https://i.imgur.com/hqQ3nPA.jpg"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"camper": "Kaveet Laxmidas",
|
|
||||||
"quote": "freeCodeCamp is inspiring me to overhaul some of my old open source projects using more modern approaches and technologies.",
|
|
||||||
"github": "kaveet",
|
|
||||||
"linkedin": "https://www.linkedin.com/profile/view?id=AAkAABZooOgBZJg_0MAJ09pd5vROk83oBFA1cEE",
|
|
||||||
"image": "https://i.imgur.com/1PadpKm.jpg"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"camper": "Brett Guillory",
|
|
||||||
"quote": "freeCodeCamp has given me a great, goal oriented curriculum to learn exactly what I was looking for. And best of all it’s 100% free!",
|
|
||||||
"github": "Kurzninja",
|
|
||||||
"linkedin": "https://www.linkedin.com/profile/view?id=AAkAAAUMPqMBa6GwMTkA_oHUeqnZzyD95FisjwM",
|
|
||||||
"image": "https://i.imgur.com/WjHNwIu.jpg"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"camper": "Kory J. Campbell",
|
|
||||||
"quote": "I just graduated university, so my financial status is pretty meager, however this camp has definitely helped me improve my skills.",
|
|
||||||
"github": "@koryjcampbell [sic]",
|
|
||||||
"linkedin": "https://www.linkedin.com/profile/view?id=AAkAAAtxvTgB0N_uJhW-87Dew4wHyeqLUP-XyZk",
|
|
||||||
"image": "https://i.imgur.com/buAYlTA.jpg"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"camper": "Bryon Christopher Miller",
|
|
||||||
"quote": "freeCodeCamp has given me a free, online opportunity to study full stack JavaScript in a structured, community-based format. I am very grateful for this opportunity.",
|
|
||||||
"github": "bryonmiller",
|
|
||||||
"linkedin": "https://www.linkedin.com/profile/view?id=AAkAABEXhHoBxj3Uiq7I0a5v1pVkeJ1gWycbm90",
|
|
||||||
"image": "https://i.imgur.com/ssKAX9d.jpg"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"camper": "Darren Joy",
|
|
||||||
"quote": "Great learning opportunity. Good coding challenges and I’m meeting some very motivated people.",
|
|
||||||
"github": "Darrenfj",
|
|
||||||
"linkedin": "https://www.linkedin.com/profile/view?id=AAkAAARv6UIBWeXw4ZfCJ70kBKgnhcv8XgnVsa8",
|
|
||||||
"image": "https://i.imgur.com/sCkeJ0z.jpg"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"camper": "Stephen Mayeux",
|
|
||||||
"quote": "freeCodeCamp is helpful because it’s not 100% hand-holding, and it pushes me out of my comfort zone.",
|
|
||||||
"github": "stephenmayeux",
|
|
||||||
"linkedin": "https://www.linkedin.com/profile/view?id=AAkAAAjTe7cBhjovoz6zTE_M6MwZ_rr3szhiSOM",
|
|
||||||
"image": "https://i.imgur.com/TbuwAJ3.jpg"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"camper": "John Hillegass",
|
|
||||||
"quote": "freeCodeCamp has given me the confidence that I need when heading into high level client meetings and developer scrum sessions.",
|
|
||||||
"github": "Ohillio",
|
|
||||||
"linkedin": "https://www.linkedin.com/profile/view?id=AAkAAAWEO3AB51y8eR2tYF8nydQb8kANkdPwR5U",
|
|
||||||
"image": "https://i.imgur.com/P61e3dt.jpg"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"camper": "Eric Hartline",
|
|
||||||
"quote": "The community is very helpful, and I have already accomplished so much more than what I did with other self-guided courses.",
|
|
||||||
"github": "wildlifehexagon",
|
|
||||||
"linkedin": "https://www.linkedin.com/profile/view?id=AAkAAAFitUwByB_tgxdExntMnakgQnTK1H3eEd8",
|
|
||||||
"image": "https://i.imgur.com/PgvxbY2.jpg"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"camper": "Danielle J Moss",
|
|
||||||
"quote": "Aside from learning to code in a fun way, I also know I’m not alone and have somewhere to go when I do get stuck and need help.",
|
|
||||||
"github": "psykobilliethekid",
|
|
||||||
"linkedin": "https://www.linkedin.com/profile/view?id=AAkAAAV4ccABlbMXZ5VfzvlYentPOIKzFbjgbZM",
|
|
||||||
"image": "https://i.imgur.com/AhaRZ3I.jpg"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"camper": "Orcun Tonyali",
|
|
||||||
"quote": "The thorough curriculum helped a lot in managing my company’s website.",
|
|
||||||
"github": "orcuntonyali",
|
|
||||||
"linkedin": "https://www.linkedin.com/profile/view?id=AAkAAAVwBQIBvE3-M8pDWxzep9umHDnV6JjKmTU",
|
|
||||||
"image": "https://i.imgur.com/54O0p69.jpg"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"camper": "Brendan Murphy",
|
|
||||||
"quote": "I like that it isn’t just a 9 week course. The chat room and partner coding were also very helpful.",
|
|
||||||
"github": "dendari",
|
|
||||||
"linkedin": "https://www.linkedin.com/profile/view?id=AAkAAAA06V8BqPNnPod-FGRuvifILht-QwZX3YY",
|
|
||||||
"image": "https://i.imgur.com/36Ba4HU.jpg"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"camper": "Michael Berry",
|
|
||||||
"quote": "freeCodeCamp has helped me learn JavaScript, jQuery, and Bootstrap as well as helped me brush up on my HTML and CSS skills. I was laid off from Boeing in April. I’m hoping to land a job as a JavaScript developer as I get closer to finishing the curriculum. I wish I had known about freeCodeCamp sooner.",
|
|
||||||
"github": "Karnblack ",
|
|
||||||
"linkedin": "https://www.linkedin.com/profile/view?id=AAkAAAGRqf4BwCI3cdJw9wAPc6NlReG3fzOIQq0",
|
|
||||||
"image": "https://i.imgur.com/rIhq3gl.jpg"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"camper": "Angie Canon",
|
|
||||||
"quote": "freeCodeCamp is helping my career. I work with developers and I’m beginning to understand their world better. I can phrase questions more clearly, and begin to guess what an issue might be related to.",
|
|
||||||
"github": "angiecan",
|
|
||||||
"linkedin": "https://www.linkedin.com/profile/view?id=AAkAAACfWbABAMsll9ovljvvsLpH317o47hNHX0",
|
|
||||||
"image": "https://i.imgur.com/v258ssn.jpg"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"camper": "Irfan Kucuk",
|
|
||||||
"quote": "I’ve long been looking for a place that could keep me interested in learning how to code. I’ve tried several Codecademy and comparable places, but none have proven as engaging as freeCodeCamp.",
|
|
||||||
"github": "Ikucuk",
|
|
||||||
"linkedin": "https://www.linkedin.com/profile/view?id=AAkAAA5ripkBiFAjXkB3ndO6sKiiq6gD21mk6bw",
|
|
||||||
"image": "https://i.imgur.com/Ox8ycSi.jpg"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"camper": "Jonathan Kvicky",
|
|
||||||
"quote": "freeCodeCamp has given me a strong foundational advantage into pursuing a career in software/web development, and has also served as a great platform for connecting with others who share the same passion for software engineering.",
|
|
||||||
"github": "jonkvix",
|
|
||||||
"linkedin": "https://www.linkedin.com/profile/view?id=AAkAABk3i9YB_hcw1AyVg2QHaf8KMQ8ADQ_R_vg",
|
|
||||||
"image": "https://i.imgur.com/CZsAqDK.jpg"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"camper": "Susannah Skyer Gupta",
|
|
||||||
"quote": "As a jack-of-all-trades at a small educational software company, I’m already putting my coding skills to work, beginning to submit my own pull requests for bug fixes instead of just opening a problem ticket and waiting for someone else to fix it.",
|
|
||||||
"github": "SuzGupta",
|
|
||||||
"linkedin": "https://www.linkedin.com/profile/view?id=AAkAAAFIosEBLewkmbuudMwAqiTM5YE3wHvcE4A",
|
|
||||||
"image": "https://i.imgur.com/sazGykY.jpg"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"camper": "Puneet Shivanand",
|
|
||||||
"quote": "freeCodeCamp has helped me create and maintain a website for a local bioinformatics conference.",
|
|
||||||
"github": "puneet-shivanand",
|
|
||||||
"linkedin": "https://www.linkedin.com/profile/view?id=AAkAAArBgXABw4qoSJQoGjqrvU6_vBX1gUmcwGg",
|
|
||||||
"image": "https://i.imgur.com/5BJDA16.jpg"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"camper": "Ian Seabrook",
|
|
||||||
"quote": "I’ve made connections with people I never would have approached before freeCodeCamp.",
|
|
||||||
"github": "ianseabrook",
|
|
||||||
"linkedin": "https://www.linkedin.com/profile/view?id=AAkAAAuVUi4BSJ3K6fcyTa2fnZr_9Oosb3nKM34",
|
|
||||||
"image": "https://i.imgur.com/z17zai3.jpg"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"camper": "Oleh Kuchuk",
|
|
||||||
"quote": "The coding exercises helped me to prepare for my first job interview.",
|
|
||||||
"github": "drkraken",
|
|
||||||
"linkedin": "https://www.linkedin.com/profile/view?id=AAkAABgy6MwBva2OKpsffAU-OBBeTC7qahTYpGw",
|
|
||||||
"image": "https://i.imgur.com/4KHGgjR.jpg"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"camper": "Larisa Bekerman",
|
|
||||||
"quote": "freeCodeCamp has made me more comfortable with certain aspects of code and helped me review and understand concepts in a more hands-on style. Some people learn by reading theory, I don’t understand things until I’ve made them work myself!",
|
|
||||||
"github": "xaosqueen",
|
|
||||||
"linkedin": "https://www.linkedin.com/profile/view?id=AAkAAAB-SHUBga96BB-iaHe7QFI-S2dFmeUQaq0",
|
|
||||||
"image": "https://i.imgur.com/EptT3Yl.jpg"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"camper": "Jesse Mull",
|
|
||||||
"quote": "I learned more using freeCodeCamp in three months than I ever could have at a traditional university.",
|
|
||||||
"github": "jessemull",
|
|
||||||
"linkedin": "https://www.linkedin.com/profile/view?id=AAkAAAr2HfcBswHtmQeLM1rxDEg7GdCuxvNin5s",
|
|
||||||
"image": "https://i.imgur.com/853QDiC.jpg"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"camper": "Mihai Popescu",
|
|
||||||
"quote": "The exercises helped me hone my skills and get an internship at a tech startup. My projects were a great talking point in the interview, showing them what I did and how I approached the problems.",
|
|
||||||
"github": "Mihaisavezi",
|
|
||||||
"linkedin": "https://www.linkedin.com/profile/view?id=AAkAAApQxGQBYz-WAQu_0zXPTkW-R7QbdaXEZeA",
|
|
||||||
"image": "https://i.imgur.com/FfrhMjg.jpg"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"camper": "Normandy Real",
|
|
||||||
"quote": "I'm doing freeCodeCamp to transition from mainframe programming to front end development.",
|
|
||||||
"github": "mandyreal",
|
|
||||||
"linkedin": "https://www.linkedin.com/profile/view?id=AAkAAAdebIIBHfcSRnxGI-j6g5y6crfOXSg55Dc",
|
|
||||||
"image": "https://i.imgur.com/U5jVHGk.jpg"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"camper": "Kristin Anthony",
|
|
||||||
"quote": "The layout, pacing, and resources of freeCodeCamp have given me focus and shown me a path to mastery. Just being able to tell people in my field that I’m learning full stack JavaScript and having projects to show for it has been immensely helpful.",
|
|
||||||
"github": "anthkris",
|
|
||||||
"linkedin": "https://www.linkedin.com/profile/view?id=AAkAAAZRM5MBACvQe36s4cvpe5ZHWEfgxprDUFg",
|
|
||||||
"image": "https://i.imgur.com/LAE3xBr.jpg"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"camper": "Zlatko Cabric",
|
|
||||||
"quote": "I am still in school, pursuing an AS in web development. The JavaScript course in college was a breeze thanks to freeCodeCamp.",
|
|
||||||
"github": "zlajac ",
|
|
||||||
"linkedin": "https://www.linkedin.com/profile/view?id=AAkAAAsCCFMBUlE24Ie41G_YS3XhdtQMDl5vCZA",
|
|
||||||
"image": "https://i.imgur.com/X2ozvfP.jpg"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"camper": "Geoff Storbeck",
|
|
||||||
"quote": "I've been able to build tools that has helped moved my current career further and has opened up many more doors in the field.",
|
|
||||||
"github": "storbeck",
|
|
||||||
"linkedin": "https://www.linkedin.com/profile/view?id=AAkAAAdVQZYBHPYLt5efKwqZmiDM5SqIdH0_AR4",
|
|
||||||
"image": "https://i.imgur.com/DULhJ8z.jpg"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"camper": "Jason Rueckert",
|
|
||||||
"quote": "freeCodeCamp helped me get to the point as a programmer that I felt confident enough to apply for tech jobs. I got the third one I interviewed for.",
|
|
||||||
"github": "jsonify",
|
|
||||||
"linkedin": "https://www.linkedin.com/profile/view?id=AAkAAAF-rVIBwdzAFzGkWCaIw81O_jajBs-zKZU",
|
|
||||||
"image": "https://i.imgur.com/vSkODHr.jpg"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"camper": "Anthony DePaolo",
|
|
||||||
"quote": "I can learn web development at my own pace, which is great with my crazy life’s schedule. It also doesn’t cost $10k-$17k, which I just can’t fork over right now.",
|
|
||||||
"github": "adepaolo",
|
|
||||||
"linkedin": "https://www.linkedin.com/profile/view?id=AAkAAAOCUkABzCvw3p1mBiPbbFWq91BEFXGXKxA",
|
|
||||||
"image": "https://i.imgur.com/Dm02s0W.jpg"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"camper": "Jimmy Epperson",
|
|
||||||
"quote": "I learned to build websites, which is now a new service I offer to local businesses.",
|
|
||||||
"github": "jimmyepp",
|
|
||||||
"linkedin": "https://www.linkedin.com/profile/view?id=AAkAAADg3N8BTBm_D58gu8Tgq6UPa3OQ_19CrSE",
|
|
||||||
"image": "https://media.licdn.com/mpr/mpr/shrinknp_400_400/AAEAAQAAAAAAAALWAAAAJDUwZDc5YzYwLTc2MjYtNDIzYy1iYzAyLWNlNzZmMTNjM2M1NA.jpg"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"camper": "Jonathan Lucas",
|
|
||||||
"quote": "freeCodeCamp has been nothing but supportive and helpful, taking me from a rather basic knowledge of front end technologies to a better, more complete understanding from a full stack perspective.",
|
|
||||||
"github": "jonslucas",
|
|
||||||
"linkedin": "https://www.linkedin.com/profile/view?id=AAkAAATn9H4BI7BP7MBpZ0NR1EvldkWTvAdGy2w",
|
|
||||||
"image": "https://i.imgur.com/Fn91jpJ.jpg"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"camper": "Brian Barrow",
|
|
||||||
"quote": "freeCodeCamp has given me confidence that I can become a web developer.",
|
|
||||||
"github": "briancbarrow",
|
|
||||||
"linkedin": "https://www.linkedin.com/profile/view?id=AAkAAAVH-osBCI8WZTtv3Om5WjeD2rYnjQ6z7zA",
|
|
||||||
"image": "https://i.imgur.com/VfdBd5Z.jpg"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"camper": "Josh Cronkhite",
|
|
||||||
"quote": "My resume has been bolstered by adding a completely new stack, providing value to my clients and opening up the pool of potential clients that I would have otherwise referred to peers.",
|
|
||||||
"github": "joshcronkhite",
|
|
||||||
"linkedin": "https://www.linkedin.com/profile/view?id=AAkAAAGTPvoBg__9rivrYrYgo8sDJ561JpAfhHk",
|
|
||||||
"image": "https://i.imgur.com/DjAIqps.jpg"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"camper": "Adam Goswick",
|
|
||||||
"quote": "freeCodeCamp is helping me learn web development when I can’t afford to go back to school.",
|
|
||||||
"github": "thegoz85",
|
|
||||||
"linkedin": "https://www.linkedin.com/profile/view?id=AAkAAAObbhkBzeCKrzuEB0ssE_iGrBX0Xnu9URc",
|
|
||||||
"image": "https://i.imgur.com/XYdoDCQ.jpg"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"camper": "Travis Wouters",
|
|
||||||
"quote": "freeCodeCamp helped me add skillsets to my resume that show experience instead of knowledge without practical application.",
|
|
||||||
"github": "",
|
|
||||||
"linkedin": "https://www.linkedin.com/profile/view?id=AAkAAABHP0YBddxsmaf2OghV2jAy17RVMhig4RM",
|
|
||||||
"image": "https://i.imgur.com/fyRsiOs.jpg"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"camper": "Nicholas Slaven",
|
|
||||||
"quote": "freeCodeCamp has given me the courage to open the door to the idea of programming for a career.",
|
|
||||||
"github": "nslaven22",
|
|
||||||
"linkedin": "https://www.linkedin.com/profile/view?id=AAkAAA5HGyIBmpNcXY_tfHBkWxXI6OtwsFAeHRQ",
|
|
||||||
"image": "https://i.imgur.com/9ZYscsm.jpg"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"camper": "John Bull",
|
|
||||||
"quote": "I am now able to add customized branding and layouts to web applications that fellow employees and customers use everyday. I’m now looking to move away from desktop support and into development roles.",
|
|
||||||
"github": "Jbull328",
|
|
||||||
"linkedin": "https://www.linkedin.com/profile/view?id=AAkAABAyfz8BsjE-oGv1k3URGzhRyeupnTGuK3I",
|
|
||||||
"image": "https://i.imgur.com/U2kJtoX.jpg"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"camper": "Nick Galluzzo",
|
|
||||||
"quote": "I currently work in a support role for a tech startup. The more I learn about JavaScript, the more I’m able to contribute to a product I really believe in!",
|
|
||||||
"github": "ngalluzzo",
|
|
||||||
"linkedin": "https://www.linkedin.com/profile/view?id=AAkAAAjQl1EBZPrbUQ6zGPXmKIuNzpCyqqsnox4",
|
|
||||||
"image": "https://i.imgur.com/edJP2Qt.jpg"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"camper": "James Allen",
|
|
||||||
"quote": "I finally feel like I can learn to code in my own time and progress to the point of employability.",
|
|
||||||
"github": "None Given",
|
|
||||||
"linkedin": "https://www.linkedin.com/profile/view?id=AAkAAA4OrsIB5WyfuqeECSQO7HYisImVMDiFBl0",
|
|
||||||
"image": "https://i.imgur.com/quRxESK.jpg"
|
|
||||||
}
|
|
||||||
]
|
|
@ -1,20 +0,0 @@
|
|||||||
extends ./layout
|
|
||||||
|
|
||||||
block content
|
|
||||||
.spacer
|
|
||||||
.row
|
|
||||||
.col-sm-6.col-sm-offset-3
|
|
||||||
hr
|
|
||||||
.text-center
|
|
||||||
h1 404
|
|
||||||
.row
|
|
||||||
.col-sm-6.col-sm-offset-3
|
|
||||||
.text-center
|
|
||||||
h2 Ooops, we couldn't find that page.
|
|
||||||
.spacer
|
|
||||||
.row
|
|
||||||
.col-sm-6.col-sm-offset-3
|
|
||||||
.text-center
|
|
||||||
a.btn.signup-btn.btn-block(href='/map') Head to the Map
|
|
||||||
hr
|
|
||||||
.spacer
|
|
@ -1,121 +0,0 @@
|
|||||||
extends ../layout
|
|
||||||
block content
|
|
||||||
.row.flashMessage.negative-30
|
|
||||||
.col-xs-12.col-sm-8.col-sm-offset-2.col-md-6.col-md-offset-3
|
|
||||||
#flash-board.alert.fade.in(style='display: none;')
|
|
||||||
button.close(type='button', data-dismiss='alert')
|
|
||||||
i.fas.fa-times-circle#flash-close
|
|
||||||
#flash-content
|
|
||||||
.row
|
|
||||||
.col-xs-12
|
|
||||||
#accept-privacy-terms
|
|
||||||
.row
|
|
||||||
.text-center
|
|
||||||
br
|
|
||||||
br
|
|
||||||
h3 Please review our updated privacy policy and the terms of service.
|
|
||||||
br
|
|
||||||
.row
|
|
||||||
.col-sm-6.col-sm-offset-3
|
|
||||||
form(method='POST', action='/update-privacy-terms')
|
|
||||||
input(type='hidden', name='_csrf', value=_csrf)
|
|
||||||
.checkbox
|
|
||||||
label
|
|
||||||
input(id='terms', name='privacy', type='checkbox')
|
|
||||||
span.cr
|
|
||||||
i.cr-icon.fa.fa-check
|
|
||||||
| I accept the
|
|
||||||
a(href='https://www.freecodecamp.org/terms' target='_blank') terms of service
|
|
||||||
| (required).
|
|
||||||
.checkbox
|
|
||||||
label
|
|
||||||
input(id='privacy', name='privacy', type='checkbox')
|
|
||||||
span.cr
|
|
||||||
i.cr-icon.fa.fa-check
|
|
||||||
| I accept the
|
|
||||||
a(href='https://www.freecodecamp.org/privacy' target='_blank') privacy policy
|
|
||||||
| (required).
|
|
||||||
.checkbox
|
|
||||||
label
|
|
||||||
input(id='quincyemails', name='quincyemails', type='checkbox')
|
|
||||||
span.cr
|
|
||||||
i.cr-icon.fa.fa-check
|
|
||||||
| I want weekly emails from Quincy (freeCodeCamp.org's founder).
|
|
||||||
.button-spacer
|
|
||||||
button.btn.btn-primary.btn-lg.btn-block(id='submit-button', type='submit')
|
|
||||||
.row
|
|
||||||
.col-sm-6.col-sm-offset-3
|
|
||||||
a.btn.btn-primary.btn-lg.btn-block(id='continue-button', href='/', style='display: none;')
|
|
||||||
| Continue to freeCodeCamp
|
|
||||||
|
|
||||||
include ../homePartials/scripts
|
|
||||||
script.
|
|
||||||
$(document).ready(function() {
|
|
||||||
var checkedBoxCount = 0;
|
|
||||||
function disableContinueButtonForAgreement(isLaunched) {
|
|
||||||
if (isLaunched) {
|
|
||||||
$('#submit-button').prop('disabled', true).html(
|
|
||||||
'<span style="color:#E0E0E0;">Submit<\/span>');
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!isLaunched && checkedBoxCount === 2){
|
|
||||||
$('#submit-button').prop('disabled', false).html(
|
|
||||||
'<span>Submit<\/span>');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
disableContinueButtonForAgreement(true);
|
|
||||||
$('#terms').click(function() {
|
|
||||||
if (this.checked) {
|
|
||||||
checkedBoxCount++;
|
|
||||||
disableContinueButtonForAgreement(false);
|
|
||||||
} else {
|
|
||||||
checkedBoxCount--;
|
|
||||||
disableContinueButtonForAgreement(true);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
$('#privacy').click(function() {
|
|
||||||
if (this.checked) {
|
|
||||||
checkedBoxCount++;
|
|
||||||
disableContinueButtonForAgreement(false);
|
|
||||||
} else {
|
|
||||||
checkedBoxCount--;
|
|
||||||
disableContinueButtonForAgreement(true);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
$('form').submit(function(event){
|
|
||||||
event.preventDefault();
|
|
||||||
$('#flash-board').hide();
|
|
||||||
var $form = $(event.target);
|
|
||||||
$.ajax({
|
|
||||||
type : 'POST',
|
|
||||||
url : $form.attr('action'),
|
|
||||||
data : $form.serialize(),
|
|
||||||
dataType : 'json',
|
|
||||||
encode : true,
|
|
||||||
xhrFields : { withCredentials: true }
|
|
||||||
})
|
|
||||||
.fail(error => {
|
|
||||||
if (error.responseText){
|
|
||||||
var data = JSON.parse(error.responseText);
|
|
||||||
if(data.message)
|
|
||||||
$('#flash-content').html(data.message);
|
|
||||||
$('#flash-board')
|
|
||||||
.removeClass('alert-success')
|
|
||||||
.addClass('alert-info')
|
|
||||||
.fadeIn();
|
|
||||||
}
|
|
||||||
})
|
|
||||||
.done(data =>{
|
|
||||||
if(data && data.message){
|
|
||||||
$('#flash-content').html(data.message);
|
|
||||||
$('#flash-board')
|
|
||||||
.removeClass('alert-info')
|
|
||||||
.addClass('alert-success')
|
|
||||||
.fadeIn();
|
|
||||||
$('#accept-privacy-terms').hide();
|
|
||||||
$('#continue-button').show();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
@ -1,17 +0,0 @@
|
|||||||
extends ../layout
|
|
||||||
block content
|
|
||||||
.text-center
|
|
||||||
h2 Welcome to the freeCodeCamp beta.
|
|
||||||
h3 We have disabled new sign ups on beta.
|
|
||||||
.text-left.col-xs-12.col-sm-8.col-sm-offset-2.col-md-6.col-md-offset-3
|
|
||||||
p You can try our new beta challenges, but your progress <bold>will not</bold> be saved. 
|
|
||||||
a(href='/map') Click here to go to the beta challenges
|
|
||||||
| .
|
|
||||||
p Or you can return to our stable challenges, where your progress <bold>will</bold> be saved. 
|
|
||||||
a(href='https://www.freecodecamp.org') Click here to go to the stable challenges
|
|
||||||
| .
|
|
||||||
p If you want to learn more about this beta, read our 
|
|
||||||
a(href='https://forum.freecodecamp.org/t/frequently-asked-questions-about-the-freecodecamp-beta/134331') Frequently Asked Questions
|
|
||||||
| .
|
|
||||||
|
|
||||||
p Happy coding!
|
|
@ -1,28 +0,0 @@
|
|||||||
extends ../layout
|
|
||||||
block content
|
|
||||||
include ../partials/flyer
|
|
||||||
#modal-dialog.modal
|
|
||||||
.modal-dialog
|
|
||||||
.modal-content
|
|
||||||
.modal-header
|
|
||||||
a.close(href='/settings', data-dismiss='modal', aria-hidden='true') ×
|
|
||||||
h3 You don't really want to delete your account, do you?
|
|
||||||
.modal-body
|
|
||||||
p This will really delete all your data, including all your progress and brownie points.
|
|
||||||
p We won't be able to recover any of it for you later, even if you change your mind.
|
|
||||||
p If there's something we could do better, send us an email instead and we'll do our best:  
|
|
||||||
a(href="mailto:team@freecodecamp.org") team@freecodecamp.org
|
|
||||||
| .
|
|
||||||
.modal-footer
|
|
||||||
a.btn.btn-success.btn-block(href='/settings', data-dismiss='modal', aria-hidden='true')
|
|
||||||
| Nevermind, I don't want to delete all of my progress
|
|
||||||
.spacer
|
|
||||||
form(action='/account/delete', method='POST')
|
|
||||||
input(type='hidden', name='_csrf', value=_csrf)
|
|
||||||
button.btn.btn-danger.btn-block(type='submit')
|
|
||||||
| I am 100% sure I want to delete my account and all of my progress
|
|
||||||
script.
|
|
||||||
document.addEventListener('DOMContentLoaded', function() {
|
|
||||||
const modal$ = document.getElementById('modal-dialog');
|
|
||||||
modal$.classList.add('show');
|
|
||||||
});
|
|
@ -1,29 +0,0 @@
|
|||||||
extends ../layout
|
|
||||||
block content
|
|
||||||
#modal-dialog.modal
|
|
||||||
.modal-dialog
|
|
||||||
.modal-content
|
|
||||||
.modal-header
|
|
||||||
a.close(href='/settings', data-dismiss='modal', aria-hidden='true') ×
|
|
||||||
h3 Do you want to report #{username}'s profile for abuse?
|
|
||||||
.modal-body
|
|
||||||
p We will notify the community moderators' team,
|
|
||||||
| and a send copy of this report to your email:
|
|
||||||
strong #{user.email}
|
|
||||||
| . We may get back to you for more information, if required.
|
|
||||||
.modal-footer
|
|
||||||
form(action='/' + username +'/report-user/', method='POST')
|
|
||||||
input(type='hidden', name='_csrf', value=_csrf)
|
|
||||||
div
|
|
||||||
textarea.modal-textarea(name='reportDescription', cols='40', rows='5')
|
|
||||||
.spacer
|
|
||||||
button.btn.btn-danger.btn-block(type='submit')
|
|
||||||
| Yes, submit my report about this user's profile.
|
|
||||||
.spacer
|
|
||||||
a.btn.btn-success.btn-block(href='/settings', data-dismiss='modal', aria-hidden='true')
|
|
||||||
| Nevermind, I don't want to report this user.
|
|
||||||
script.
|
|
||||||
document.addEventListener('DOMContentLoaded', function() {
|
|
||||||
const modal$ = document.getElementById('modal-dialog');
|
|
||||||
modal$.classList.add('show');
|
|
||||||
});
|
|
@ -1,25 +0,0 @@
|
|||||||
extends ../layout
|
|
||||||
block content
|
|
||||||
include ../partials/flyer
|
|
||||||
#modal-dialog.modal
|
|
||||||
.modal-dialog
|
|
||||||
.modal-content
|
|
||||||
.modal-header
|
|
||||||
a.close(href='/settings', data-dismiss='modal', aria-hidden='true') ×
|
|
||||||
h3 You don't really want to reset your progress, do you?
|
|
||||||
.modal-body
|
|
||||||
p This will really delete all of your progress and brownie points.
|
|
||||||
p We won't be able to recover any of it for you later, even if you change your mind.
|
|
||||||
.modal-footer
|
|
||||||
a.btn.btn-success.btn-block(href='/settings', data-dismiss='modal', aria-hidden='true')
|
|
||||||
| Nevermind, I don't want to delete all of my progress and brownie points
|
|
||||||
.spacer
|
|
||||||
form(action='/account/resetprogress', method='POST')
|
|
||||||
input(type='hidden', name='_csrf', value=_csrf)
|
|
||||||
button.btn.btn-danger.btn-block(type='submit')
|
|
||||||
| I am 100% sure I want to reset all of my progress and brownie points
|
|
||||||
script.
|
|
||||||
document.addEventListener('DOMContentLoaded', function() {
|
|
||||||
const modal$ = document.getElementById('modal-dialog');
|
|
||||||
modal$.classList.add('show');
|
|
||||||
});
|
|
@ -1,188 +0,0 @@
|
|||||||
extends ../layout
|
|
||||||
block content
|
|
||||||
include ../partials/flyer
|
|
||||||
.app-content.app-centered
|
|
||||||
script.
|
|
||||||
var challengeName = 'Profile View';
|
|
||||||
if (user && user.username === username)
|
|
||||||
.row
|
|
||||||
.col-xs-12
|
|
||||||
a.btn.btn-lg.btn-block.btn-primary.btn-link-social(href='/settings')
|
|
||||||
| Update my settings
|
|
||||||
.col-xs-12
|
|
||||||
a.btn.btn-lg.btn-block.btn-primary.btn-link-social(href='/signout')
|
|
||||||
| Sign me out of freeCodeCamp
|
|
||||||
.col-xs-12
|
|
||||||
a.btn.btn-lg.btn-block.btn-primary.btn-link-social(href='mailto:team@freecodecamp.org')
|
|
||||||
| Email us at team@freecodecamp.org
|
|
||||||
.spacer
|
|
||||||
h1.text-center #{username}'s code portfolio
|
|
||||||
hr
|
|
||||||
.row
|
|
||||||
.col-xs-12.col-sm-10.col-sm-offset-1.col-md-8.col-md-offset-2.text-center
|
|
||||||
if picture
|
|
||||||
img.img-center.img-responsive.public-profile-img.border-radius-5(src=picture)
|
|
||||||
else
|
|
||||||
img.img-center.img-responsive.public-profile-img.border-radius-5(src='https://s3.amazonaws.com/freecodecamp/camper-image-placeholder.png')
|
|
||||||
h1.text-center.negative-5.profile-social-icons
|
|
||||||
if (twitter)
|
|
||||||
a.fa.fa-twitter-square.text-primary(title="@#{username}'s Twitter Profile", href='https://twitter.com/' + twitter, target='_blank')
|
|
||||||
if (github)
|
|
||||||
a.fa.fa-github-square.text-primary(title="@#{username}'s GitHub Profile", href=github, target='_blank')
|
|
||||||
if (linkedin)
|
|
||||||
a.fa.fa-linkedin-square.text-primary(title="@#{username}'s LinkedIn Profile", href=linkedin, target='_blank')
|
|
||||||
h1.flat-top.wrappable= name
|
|
||||||
h1.flat-top.wrappable= location
|
|
||||||
p.flat-top.bio= bio
|
|
||||||
h1.flat-top.text-primary= "[ " + (progressTimestamps.length) + " ]"
|
|
||||||
if pledge
|
|
||||||
.spacer
|
|
||||||
h4
|
|
||||||
| This camper has committed to giving $#{pledge.amount} to
|
|
||||||
a(href='#{pledge.donateUrl}?ref=freecodecamp.org' target='_blank') #{pledge.displayName}
|
|
||||||
| each month until they have completed their #{pledge.goal}.
|
|
||||||
.spacer
|
|
||||||
.row
|
|
||||||
.col-xs-12.col-sm-10.col-sm-offset-1.col-md-8.col-md-offset-2
|
|
||||||
if isFrontEndCert
|
|
||||||
a.btn.btn-primary.btn-block(href='/' + username + '/front-end-certification') View My Front End Development Certification
|
|
||||||
if isDataVisCert
|
|
||||||
.button-spacer
|
|
||||||
a.btn.btn-primary.btn-block(href='/' + username + '/data-visualization-certification') View My Data Visualization Certification
|
|
||||||
if isBackEndCert
|
|
||||||
.button-spacer
|
|
||||||
a.btn.btn-primary.btn-block(href='/' + username + '/back-end-certification') View My Back End Development Certification
|
|
||||||
if isRespWebDesignCert
|
|
||||||
.button-spacer
|
|
||||||
a.btn.btn-primary.btn-block(href='/' + username + '/responsive-web-design-certification') View My Responsive Web Design Certification
|
|
||||||
if isFrontEndLibsCert
|
|
||||||
.button-spacer
|
|
||||||
a.btn.btn-primary.btn-block(href='/' + username + '/front-end-libraries-certification') View My Front End Libraries Certification
|
|
||||||
if isJsAlgoDataStructCert
|
|
||||||
.button-spacer
|
|
||||||
a.btn.btn-primary.btn-block(href='/' + username + '/javascript-algorithms-data-structures-certification') View My JavaScript Algorithms Data Structures Certification
|
|
||||||
if isApisMicroservicesCert
|
|
||||||
.button-spacer
|
|
||||||
a.btn.btn-primary.btn-block(href='/' + username + '/apis-microservices-certification') View My APIs Microservices Certification
|
|
||||||
if isInfosecQaCert
|
|
||||||
.button-spacer
|
|
||||||
a.btn.btn-primary.btn-block(href='/' + username + '/information-security-quality-assurance-certification') View My Information Sequrity Quality Assurance Certification
|
|
||||||
if (user && user.username != username)
|
|
||||||
.button-spacer
|
|
||||||
a.btn.btn-primary.btn-block(href='/' + username + '/report-user/') Report this user's profile for abuse
|
|
||||||
.row
|
|
||||||
.col-xs-12.text-center
|
|
||||||
if (badges.coreTeam && badges.coreTeam.length)
|
|
||||||
h4 Core Team #{badges.coreTeam.reverse().join(', ')}
|
|
||||||
|
|
||||||
.spacer
|
|
||||||
.col-md-12
|
|
||||||
#cal-heatmap.hidden-xs.hidden-sm.d3-centered
|
|
||||||
script.
|
|
||||||
$(document).ready(function () {
|
|
||||||
var cal = new CalHeatMap();
|
|
||||||
var calendar = !{JSON.stringify(calender)};
|
|
||||||
var rectSelector = "#cal-heatmap > svg > svg.graph-legend > g > rect.r";
|
|
||||||
var calLegendTitles = ["0 items", "1 item", "2 items", "3 or more items"]
|
|
||||||
cal.init({
|
|
||||||
itemSelector: "#cal-heatmap",
|
|
||||||
domain: "month",
|
|
||||||
subDomain: "x_day",
|
|
||||||
domainGutter: 10,
|
|
||||||
data: calendar,
|
|
||||||
cellSize: 15,
|
|
||||||
align: 'center',
|
|
||||||
cellRadius: 3,
|
|
||||||
cellPadding: 2,
|
|
||||||
tooltip: true,
|
|
||||||
range: 6,
|
|
||||||
start: new Date().setDate(new Date().getDate() - 150),
|
|
||||||
legendColors: ["#cccccc", "#215f1e"],
|
|
||||||
legend: [1, 2, 3],
|
|
||||||
label: {
|
|
||||||
position: "top"
|
|
||||||
}
|
|
||||||
});
|
|
||||||
calLegendTitles.forEach(function(title, i) {
|
|
||||||
document.querySelector(rectSelector + (i + 1).toString() + '> title').innerHTML = title;
|
|
||||||
});
|
|
||||||
});
|
|
||||||
.row
|
|
||||||
.hidden-xs.col-sm-12.text-center
|
|
||||||
.row.text-primary
|
|
||||||
h4.col-sm-6.text-right Longest Streak: #{longestStreak} #{longestStreak === 1 ? ' day' : ' days'}
|
|
||||||
h4.col-sm-6.text-left Current Streak: #{currentStreak} #{currentStreak === 1 ? ' day' : ' days'}
|
|
||||||
|
|
||||||
|
|
||||||
if (user && user.username == username || !isLocked)
|
|
||||||
if (projects .length > 0)
|
|
||||||
.col-sm-12
|
|
||||||
table.table.table-striped
|
|
||||||
thead
|
|
||||||
tr
|
|
||||||
th.col-xs-5 Projects
|
|
||||||
th.col-xs-2.hidden-xs Completed
|
|
||||||
th.col-xs-2.hidden-xs Last Updated
|
|
||||||
th.col-xs-2.hidden-xs Link
|
|
||||||
for challenge in projects
|
|
||||||
tr
|
|
||||||
td.col-xs-5.hidden-xs
|
|
||||||
a(href='/challenges/#{challenge.block}/#{challenge.dashedName}', target='_blank')= challenge.name
|
|
||||||
td.col-xs-2.hidden-xs= challenge.completedDate ? challenge.completedDate : 'Not Available'
|
|
||||||
td.col-xs-2.hidden-xs= challenge.lastUpdated ? challenge.lastUpdated : ''
|
|
||||||
td.col-xs-2.hidden-xs
|
|
||||||
a(href=challenge.solution, target='_blank') View project
|
|
||||||
td.col-xs-12.visible-xs
|
|
||||||
a(href=challenge.solution, target='_blank')= challenge.name
|
|
||||||
if (algorithms.length > 0)
|
|
||||||
.col-sm-12
|
|
||||||
table.table.table-striped
|
|
||||||
thead
|
|
||||||
tr
|
|
||||||
th.col-xs-5 Algorithms
|
|
||||||
th.col-xs-2.hidden-xs Completed
|
|
||||||
th.col-xs-2.hidden-xs Last Updated
|
|
||||||
th.col-xs-2.hidden-xs Solution
|
|
||||||
for challenge in algorithms
|
|
||||||
tr
|
|
||||||
td.col-xs-5.hidden-xs= challenge.name
|
|
||||||
td.col-xs-2.hidden-xs= challenge.completedDate ? challenge.completedDate : 'Not Available'
|
|
||||||
td.col-xs-2.hidden-xs= challenge.lastUpdated ? challenge.lastUpdated : ''
|
|
||||||
td.col-xs-2.hidden-xs
|
|
||||||
if (challenge.solution)
|
|
||||||
a(href='/challenges/#{challenge.block}/#{challenge.dashedName}?solution=#{encodeURIComponent(encodeFcc(challenge.solution))}', target='_blank') View solution
|
|
||||||
else
|
|
||||||
a(href='/challenges/#{challenge.block}/#{challenge.dashedName}') View this challenge
|
|
||||||
td.col-xs-12.visible-xs
|
|
||||||
if (challenge.solution)
|
|
||||||
a(href='/challenges/#{challenge.block}/#{challenge.dashedName}?solution=#{encodeURIComponent(encodeFcc(challenge.solution))}', target='_blank')= challenge.name
|
|
||||||
else
|
|
||||||
a(href='/challenges/#{challenge.block}/#{challenge.dashedName}')= challenge.name
|
|
||||||
if (challenges.length > 0)
|
|
||||||
.col-sm-12
|
|
||||||
table.table.table-striped
|
|
||||||
thead
|
|
||||||
tr
|
|
||||||
th.col-xs-5 Challenges
|
|
||||||
th.col-xs-2.hidden-xs Completed
|
|
||||||
th.col-xs-2.hidden-xs Last Updated
|
|
||||||
th.col-xs-2.hidden-xs Solution
|
|
||||||
for challenge in challenges
|
|
||||||
tr
|
|
||||||
td.col-xs-5.hidden-xs= challenge.name
|
|
||||||
td.col-xs-2.hidden-xs= challenge.completedDate ? challenge.completedDate : 'Not Available'
|
|
||||||
td.col-xs-2.hidden-xs= challenge.lastUpdated ? challenge.lastUpdated : ''
|
|
||||||
td.col-xs-2.hidden-xs
|
|
||||||
if (challenge.solution && challenge.name)
|
|
||||||
a(href='/challenges/#{challenge.block}/#{challenge.dashedName}?solution=#{encodeURIComponent(encodeFcc(challenge.solution))}', target='_blank') View solution
|
|
||||||
else if (challenge.name)
|
|
||||||
a(href='/challenges/#{challenge.block}/#{challenge.dashedName}') View this challenge
|
|
||||||
else
|
|
||||||
span N/A
|
|
||||||
td.col-xs-12.visible-xs
|
|
||||||
if (challenge.solution && challenge.name)
|
|
||||||
a(href='/challenges/#{challenge.block}/#{challenge.dashedName}?solution=#{encodeURIComponent(encodeFcc(challenge.solution))}', target='_blank')= challenge.name
|
|
||||||
else if (challenge.name)
|
|
||||||
a(href='/challenges/#{challenge.block}/#{challenge.dashedName}')= challenge.name
|
|
||||||
else
|
|
||||||
span N/A
|
|
@ -1,57 +0,0 @@
|
|||||||
extends ../layout
|
|
||||||
block content
|
|
||||||
.row.flashMessage.negative-30
|
|
||||||
.col-xs-12.col-sm-8.col-sm-offset-2.col-md-6.col-md-offset-3
|
|
||||||
#flash-board.alert.fade.in(style='display: none;')
|
|
||||||
button.close(type='button', data-dismiss='alert')
|
|
||||||
i.fas.fa-times-circle#flash-close
|
|
||||||
#flash-content
|
|
||||||
.container
|
|
||||||
h2.text-center Update your email address here:
|
|
||||||
form.form-horizontal.update-email(method='POST', action='/update-my-email', name="updateEmailForm")
|
|
||||||
.row
|
|
||||||
.col-sm-6.col-sm-offset-3
|
|
||||||
input(type='hidden', name='_csrf', value=_csrf)
|
|
||||||
.form-group
|
|
||||||
input.input-lg.form-control(type='email', name='email', id='email', value=user.email || '', placeholder=user.email || 'Enter your new email', autofocus, required, autocomplete="off")
|
|
||||||
.form-group
|
|
||||||
button.btn.btn-lg.btn-primary.btn-block(type='submit')= !user.email || user.emailVerified ? 'Update my Email' : 'Verify Email'
|
|
||||||
a.btn.btn-lg.btn-block.btn-primary.btn-link-social(href='/signout')
|
|
||||||
| Sign out
|
|
||||||
|
|
||||||
script.
|
|
||||||
$(document).ready(function() {
|
|
||||||
$('form').submit(function(event){
|
|
||||||
event.preventDefault();
|
|
||||||
$('#flash-board').hide();
|
|
||||||
var $form = $(event.target);
|
|
||||||
$.ajax({
|
|
||||||
type : 'POST',
|
|
||||||
url : $form.attr('action'),
|
|
||||||
data : $form.serialize(),
|
|
||||||
dataType : 'json',
|
|
||||||
encode : true,
|
|
||||||
xhrFields : { withCredentials: true }
|
|
||||||
})
|
|
||||||
.fail(error => {
|
|
||||||
if (error.responseText){
|
|
||||||
var data = JSON.parse(error.responseText);
|
|
||||||
if(data.message)
|
|
||||||
$('#flash-content').html(data.message);
|
|
||||||
$('#flash-board')
|
|
||||||
.removeClass('alert-success')
|
|
||||||
.addClass('alert-info')
|
|
||||||
.fadeIn();
|
|
||||||
}
|
|
||||||
})
|
|
||||||
.done(data =>{
|
|
||||||
if(data && data.message){
|
|
||||||
$('#flash-content').html(data.message);
|
|
||||||
$('#flash-board')
|
|
||||||
.removeClass('alert-info')
|
|
||||||
.addClass('alert-success')
|
|
||||||
.fadeIn();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
@ -1,58 +0,0 @@
|
|||||||
doctype html
|
|
||||||
head
|
|
||||||
title!= errorTitle
|
|
||||||
style.
|
|
||||||
* {
|
|
||||||
margin: 0;
|
|
||||||
padding: 0;
|
|
||||||
outline: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
body {
|
|
||||||
padding: 80px 100px;
|
|
||||||
background: #ECE9E9 -webkit-gradient(linear, 0% 0%, 0% 100%, from(#fff), to(#ECE9E9));
|
|
||||||
background: #ECE9E9 -moz-linear-gradient(top, #fff, #ECE9E9);
|
|
||||||
background-repeat: no-repeat;
|
|
||||||
color: #555;
|
|
||||||
-webkit-font-smoothing: antialiased;
|
|
||||||
}
|
|
||||||
h1, h2 {
|
|
||||||
font-size: 22px;
|
|
||||||
color: #343434;
|
|
||||||
}
|
|
||||||
h1 em, h2 em {
|
|
||||||
padding: 0 5px;
|
|
||||||
font-weight: normal;
|
|
||||||
}
|
|
||||||
h1 {
|
|
||||||
font-size: 60px;
|
|
||||||
}
|
|
||||||
h2 {
|
|
||||||
margin-top: 10px;
|
|
||||||
}
|
|
||||||
ul li {
|
|
||||||
list-style: none;
|
|
||||||
}
|
|
||||||
#trace {
|
|
||||||
margin-top: 10px;
|
|
||||||
margin-left: 60px;
|
|
||||||
}
|
|
||||||
body
|
|
||||||
#wrapper
|
|
||||||
h1!= title
|
|
||||||
h2
|
|
||||||
em!= status
|
|
||||||
| #{errorTitle}
|
|
||||||
h2
|
|
||||||
em User Message:
|
|
||||||
| #{message}
|
|
||||||
h2
|
|
||||||
em Type:
|
|
||||||
| #{type}
|
|
||||||
h2
|
|
||||||
em redirect to:
|
|
||||||
a(href=redirectTo) #{redirectTo}
|
|
||||||
h2
|
|
||||||
em stack trace:
|
|
||||||
ul#trace!= stack
|
|
||||||
|
|
@ -1,14 +0,0 @@
|
|||||||
script.
|
|
||||||
$(document).ready(function getActiveUsers() {
|
|
||||||
setInterval(function getActiveUsersInterval() {
|
|
||||||
$.ajax({
|
|
||||||
type : 'GET',
|
|
||||||
url : '/api/about/get-active-users',
|
|
||||||
})
|
|
||||||
.done(function({ activeUsers }) {
|
|
||||||
document.getElementById('active-user-count').innerHTML = `
|
|
||||||
<h3><span class='green-text'>${activeUsers}</span> people are using freeCodeCamp right now</h3>
|
|
||||||
`;
|
|
||||||
})
|
|
||||||
}, 2000)
|
|
||||||
})
|
|
@ -1,4 +0,0 @@
|
|||||||
#active-user-count(style='display:none;')
|
|
||||||
h3
|
|
||||||
span.green-text=activeUsers
|
|
||||||
| people are using freeCodeCamp right now
|
|
@ -1,18 +0,0 @@
|
|||||||
.row
|
|
||||||
.col-xs-12.col-sm-8.col-sm-offset-2
|
|
||||||
h2 News Feed
|
|
||||||
ul.list-group
|
|
||||||
each item in feed
|
|
||||||
li.list-group-item
|
|
||||||
a(href=item.link)
|
|
||||||
h3=item.title
|
|
||||||
div !{item.extract}
|
|
||||||
.spacer
|
|
||||||
.row
|
|
||||||
.col-xs-12.col-sm-8.col-sm-offset-2
|
|
||||||
.more-button-container
|
|
||||||
div
|
|
||||||
button.btn.btn-primary.btn-lg(href='https://medium.freecodecamp.org') More Articles
|
|
||||||
div
|
|
||||||
button.btn.btn-primary.btn-lg(href='https://freecodecamp.libsyn.com/') More Podcasts
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
|||||||
.row.quote-partial
|
|
||||||
.col-xs-12.col-sm-10.col-sm-offset-1
|
|
||||||
blockquote.blockquote
|
|
||||||
span
|
|
||||||
q=quote
|
|
||||||
.spacer
|
|
||||||
footer.quote-author=author
|
|
@ -1,3 +0,0 @@
|
|||||||
script(src='https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js')
|
|
||||||
script(src='https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/js/bootstrap.min.js')
|
|
||||||
// include activeUsersScript
|
|
@ -1,35 +0,0 @@
|
|||||||
.row
|
|
||||||
.col-xs-12.col-sm-8.col-sm-offset-2
|
|
||||||
p.stats
|
|
||||||
| You have completed
|
|
||||||
strong
|
|
||||||
span.green-text=completedChallengeCount
|
|
||||||
| of
|
|
||||||
strong
|
|
||||||
span.green-text=challengeCount
|
|
||||||
| coding challenges.
|
|
||||||
p.stats
|
|
||||||
| You have built
|
|
||||||
strong
|
|
||||||
span.green-text=completedProjectCount
|
|
||||||
| out of
|
|
||||||
strong
|
|
||||||
span.green-text 30
|
|
||||||
| projects.
|
|
||||||
if !!completedLegacyCertCount
|
|
||||||
p.stats
|
|
||||||
| You have earned
|
|
||||||
strong
|
|
||||||
span.green-text=completedLegacyCertCount
|
|
||||||
| out of
|
|
||||||
strong
|
|
||||||
span.green-text 3
|
|
||||||
| legacy certifications.
|
|
||||||
p.stats
|
|
||||||
| You have earned
|
|
||||||
strong
|
|
||||||
span.green-text=completedCertCount
|
|
||||||
| out of
|
|
||||||
strong
|
|
||||||
span.green-text 6
|
|
||||||
| certifications.
|
|
@ -1,11 +0,0 @@
|
|||||||
doctype html
|
|
||||||
html(lang='en')
|
|
||||||
head
|
|
||||||
if title
|
|
||||||
title= title
|
|
||||||
else
|
|
||||||
title freeCodeCamp
|
|
||||||
include partials/react-stylesheets
|
|
||||||
body
|
|
||||||
#news-app-mount!= markup
|
|
||||||
script(src=cacheBreaker(rev('/js', 'news.js')))
|
|
@ -1,26 +0,0 @@
|
|||||||
doctype html
|
|
||||||
html(lang='en').full-size
|
|
||||||
head
|
|
||||||
if title
|
|
||||||
title= title
|
|
||||||
else
|
|
||||||
title freeCodeCamp
|
|
||||||
include partials/react-stylesheets
|
|
||||||
body.full-size
|
|
||||||
#fcc.full-size!= markup
|
|
||||||
script!= state
|
|
||||||
script.
|
|
||||||
window.webpackManifest = !{JSON.stringify(chunkManifest || {})};
|
|
||||||
(function setTheme() {
|
|
||||||
let fccTheme;
|
|
||||||
try {
|
|
||||||
fccTheme = JSON.parse(localStorage.getItem('fcc-theme'));
|
|
||||||
if (fccTheme && fccTheme === 'night') {
|
|
||||||
document.body.classList.add('night');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch(e) {
|
|
||||||
fccTheme = null;
|
|
||||||
}
|
|
||||||
})();
|
|
||||||
script(src=cacheBreaker(rev('/js', 'client.js')))
|
|
@ -1,16 +0,0 @@
|
|||||||
doctype html
|
|
||||||
html(lang='en')
|
|
||||||
head
|
|
||||||
include partials/meta
|
|
||||||
include partials/stylesheets
|
|
||||||
if showAside
|
|
||||||
body.map-aside-body(class=theme !== 'default' ? theme : '')
|
|
||||||
include partials/scripts
|
|
||||||
block content
|
|
||||||
else
|
|
||||||
body.no-top-and-bottom-margins(class=theme !== 'default' ? theme : '')
|
|
||||||
include partials/scripts
|
|
||||||
include partials/navbar
|
|
||||||
include partials/flash
|
|
||||||
block content
|
|
||||||
include partials/footer
|
|
@ -1,12 +0,0 @@
|
|||||||
doctype html
|
|
||||||
html(lang='en')
|
|
||||||
head
|
|
||||||
include partials/meta
|
|
||||||
include partials/stylesheets
|
|
||||||
body.main-container(class=theme !== 'default' ? theme : '')
|
|
||||||
include partials/scripts
|
|
||||||
include partials/navbar
|
|
||||||
include partials/flash
|
|
||||||
.container
|
|
||||||
block content
|
|
||||||
include partials/footer
|
|
@ -1,90 +0,0 @@
|
|||||||
extends layout
|
|
||||||
block content
|
|
||||||
.text-center
|
|
||||||
.row
|
|
||||||
h1.landing-heading Learn to code for free.
|
|
||||||
.big-break
|
|
||||||
include homePartials/activeUsersView
|
|
||||||
.big-break
|
|
||||||
.big-break
|
|
||||||
.col-xs-12.col-sm-12.col-md-4
|
|
||||||
img.img-responsive.landing-icon.img-center(src= 'https://s3.amazonaws.com/freecodecamp/landing-icon-community.svg', alt='Get great references and connections to start your software engineer career')
|
|
||||||
p.large-p Join a supportive community of millions of coders.
|
|
||||||
|
|
||||||
.col-xs-12.col-sm-12.col-md-4
|
|
||||||
img.img-responsive.landing-icon.img-center(src= 'https://s3.amazonaws.com/freecodecamp/landing-icon-certificate.svg', alt='Help nonprofits with bro bono code projects')
|
|
||||||
p.large-p Build projects and earn free certifications.
|
|
||||||
|
|
||||||
.col-xs-12.col-sm-12.col-md-4
|
|
||||||
img.img-responsive.landing-icon.img-center(src= 'https://s3.amazonaws.com/freecodecamp/landing-icon-experience.svg', alt='Get hired as a developer and start your software engineer career')
|
|
||||||
p.large-p Get experience by coding for nonprofits.
|
|
||||||
|
|
||||||
.big-break
|
|
||||||
.big-break
|
|
||||||
.row
|
|
||||||
.col-xs-12.col-sm-8.col-sm-offset-2
|
|
||||||
a.btn.btn-cta.signup-btn.btn-block(href="/signin") Start coding (it's free)
|
|
||||||
.spacer
|
|
||||||
h2 As featured in:
|
|
||||||
img.img-center.img-responsive(src='https://s3.amazonaws.com/freecodecamp/as-seen-on.png')
|
|
||||||
.spacer
|
|
||||||
hr
|
|
||||||
.spacer
|
|
||||||
h2 Launch your developer career
|
|
||||||
.spacer
|
|
||||||
.row
|
|
||||||
.col-xs-12.col-sm-12.col-md-4
|
|
||||||
img.img-responsive.testimonial-image.img-center(src="https://i.imgur.com/nsvNixW.jpg", alt="Meta's testimonial image")
|
|
||||||
p.testimonial-copy Through freeCodeCamp, I built a robust and highly functional web app for a nonprofit. This led me to getting a fantastic job.
|
|
||||||
h3 - Meta Hirschl
|
|
||||||
.col-xs-12.col-sm-12.col-md-4
|
|
||||||
img.img-responsive.testimonial-image.img-center(src="https://i.imgur.com/QPpjPac.jpg", alt="Brian's testimonial image")
|
|
||||||
p.testimonial-copy freeCodeCamp is a great way for disabled veterans like me to retrain. I'm already receiving software engineering job offers.
|
|
||||||
h3 - Brian Grant
|
|
||||||
.col-xs-12.col-sm-12.col-md-4
|
|
||||||
img.img-responsive.testimonial-image.img-center(src="https://i.imgur.com/wjlDigg.jpg", alt="Maxim Orlov's testimonial image")
|
|
||||||
p.testimonial-copy I joined freeCodeCamp with zero knowledge of web development. 6 months later, I landed my first job as a back end engineer.
|
|
||||||
h3 - Maxim Orlov
|
|
||||||
.spacer
|
|
||||||
hr
|
|
||||||
.spacer
|
|
||||||
h2 Learn powerful skills
|
|
||||||
.spacer
|
|
||||||
.row
|
|
||||||
.text-center.negative-35
|
|
||||||
.col-xs-12.col-sm-6.col-md-3
|
|
||||||
.landing-skill-icon.fab.fa-html5.font-awesome-padding
|
|
||||||
h2.black-text HTML5
|
|
||||||
.col-xs-12.col-sm-6.col-md-3
|
|
||||||
.landing-skill-icon.fab.fa-css3-alt.font-awesome-padding
|
|
||||||
h2.black-text CSS3
|
|
||||||
.col-xs-12.col-sm-6.col-md-3
|
|
||||||
.landing-skill-icon.fab.fa-js.font-awesome-padding
|
|
||||||
h2.black-text JavaScript
|
|
||||||
.col-xs-12.col-sm-6.col-md-3
|
|
||||||
.landing-skill-icon.fas.fa-database.font-awesome-padding
|
|
||||||
h2.black-text Databases
|
|
||||||
.col-xs-12.col-sm-6.col-md-3
|
|
||||||
.landing-skill-icon.fab.fa-github.font-awesome-padding
|
|
||||||
h2.black-text Git & GitHub
|
|
||||||
.col-xs-12.col-sm-6.col-md-3
|
|
||||||
.landing-skill-icon.fab.fa-node-js.font-awesome-padding
|
|
||||||
h2.black-text Node.js
|
|
||||||
.col-xs-12.col-sm-6.col-md-3
|
|
||||||
.landing-skill-icon.fab.fa-react.font-awesome-padding
|
|
||||||
h2.black-text React.js
|
|
||||||
.col-xs-12.col-sm-6.col-md-3
|
|
||||||
.landing-skill-icon.custom-landing-skill-icon
|
|
||||||
img(src='https://s3.amazonaws.com/freecodecamp/d3-logo.svg')
|
|
||||||
h2.black-text D3.js
|
|
||||||
.big-break
|
|
||||||
.row
|
|
||||||
.col-xs-12.col-sm-8.col-sm-offset-2
|
|
||||||
a.btn.btn-cta.signup-btn.btn-block(href="/signin") Start coding (it's free)
|
|
||||||
.big-break
|
|
||||||
.big-break
|
|
||||||
hr
|
|
||||||
.big-break
|
|
||||||
.big-break
|
|
||||||
.big-break
|
|
||||||
include homePartials/scripts
|
|
@ -1,21 +0,0 @@
|
|||||||
.container
|
|
||||||
.row.flashMessage
|
|
||||||
.col-xs-12.col-sm-8.col-sm-offset-2.col-md-6.col-md-offset-3
|
|
||||||
if messages.danger
|
|
||||||
.alert.alert-danger.fade.in
|
|
||||||
button.close(type='button', data-dismiss='alert')
|
|
||||||
i.fas.fa-times-circle
|
|
||||||
for danger in messages.danger
|
|
||||||
div!= typeof danger === 'string' ? danger : danger.msg
|
|
||||||
if messages.info
|
|
||||||
.alert.alert-info.fade.in
|
|
||||||
button.close(type='button', data-dismiss='alert')
|
|
||||||
i.fas.fa-times-circle
|
|
||||||
for info in messages.info
|
|
||||||
div!= typeof info === 'string' ? info : info.msg
|
|
||||||
if messages.success
|
|
||||||
.alert.alert-success.fade.in
|
|
||||||
button.close(type='button', data-dismiss='alert')
|
|
||||||
i.fas.fa-times-circle
|
|
||||||
for success in messages.success
|
|
||||||
div!= typeof success === 'string' ? success : success.msg
|
|
@ -1,8 +0,0 @@
|
|||||||
if (user && user.points > 15)
|
|
||||||
.container
|
|
||||||
.row.flashMessage.negative-30
|
|
||||||
.col-xs-12
|
|
||||||
#bill-board.alert.alert-info.fade.in(style='display: none;')
|
|
||||||
button.close(type='button', data-dismiss='alert', id='dismiss-bill')
|
|
||||||
i.fas.fa-times-circle
|
|
||||||
#bill-content
|
|
@ -1,2 +0,0 @@
|
|||||||
// scripts should be moved here
|
|
||||||
|
|
@ -1,60 +0,0 @@
|
|||||||
meta(charset='utf-8')
|
|
||||||
meta(http-equiv='X-UA-Compatible', content='IE=edge')
|
|
||||||
meta(name='viewport', content='width=device-width, initial-scale=1.0')
|
|
||||||
title #{title} | freeCodeCamp
|
|
||||||
link(rel='canonical', href='https://www.freecodecamp.org')
|
|
||||||
meta(charset='utf-8')
|
|
||||||
meta(http-equiv='X-UA-Compatible', content='IE=edge')
|
|
||||||
meta(name='viewport', content='width=device-width, initial-scale=1.0')
|
|
||||||
meta(name='csrf-token', content=_csrf)
|
|
||||||
meta(property="og:title", content="Learn to code with free online courses, programming projects, and interview preparation for developer jobs.")
|
|
||||||
meta(property="og:site_name", content="freeCodeCamp")
|
|
||||||
meta(name='twitter:widgets:csp', content='on')
|
|
||||||
meta(name='p:domain_verify', content='d0bc047a482c03c24f1168004c2a216a')
|
|
||||||
meta(property="og:url", content="https://www.freecodecamp.org")
|
|
||||||
meta(property="og:description", content="Learn to code with free online courses, programming projects, and interview preparation for developer jobs.")
|
|
||||||
meta(property="og:image", content="https://s3.amazonaws.com/freecodecamp/curriculum-diagram-full.jpg")
|
|
||||||
meta(property="og:type", content="article")
|
|
||||||
meta(property="article:publisher", content="https://www.facebook.com/freecodecamp")
|
|
||||||
meta(property="article:section", content="Responsive")
|
|
||||||
link(rel="publisher", href="https://plus.google.com/+Freecodecamp")
|
|
||||||
link(rel="author", href="https://plus.google.com/+Freecodecamp")
|
|
||||||
meta(name="description", content="Learn to code with free online courses, programming projects, and interview preparation for developer jobs.")
|
|
||||||
meta(name="twitter:creator", content="@freecodecamp")
|
|
||||||
meta(name="twitter:url", content="http://www.freecodecamp.org")
|
|
||||||
meta(name="twitter:site", content="@freecodecamp")
|
|
||||||
meta(name="twitter:card", content="summary_large_image")
|
|
||||||
meta(name="twitter:image:src", content="https://s3.amazonaws.com/freecodecamp/curriculum-diagram-full.jpg")
|
|
||||||
meta(name="twitter:title", content="Learn to code for free")
|
|
||||||
meta(name="twitter:description", content="Learn to code with free online courses, programming projects, and interview preparation for developer jobs.")
|
|
||||||
meta(content="a40ee5d5dba3bb091ad783ebd2b1383f", name="p:domain_verify")
|
|
||||||
meta(name="msapplication-TileColor", content="#FFFFFF")
|
|
||||||
meta(name="msapplication-TileImage", content="/")
|
|
||||||
link(rel="android-chrome", sizes="144x144" href="https://s3.amazonaws.com/freecodecamp/favicons/android-chrome-144x144.png")
|
|
||||||
link(rel="android-chrome", sizes="192x192" href="https://s3.amazonaws.com/freecodecamp/favicons/android-chrome-192x192.png")
|
|
||||||
link(rel="android-chrome", sizes="36x36" href="https://s3.amazonaws.com/freecodecamp/favicons/android-chrome-36x36.png")
|
|
||||||
link(rel="android-chrome", sizes="48x48" href="https://s3.amazonaws.com/freecodecamp/favicons/android-chrome-48x48.png")
|
|
||||||
link(rel="android-chrome", sizes="72x72" href="https://s3.amazonaws.com/freecodecamp/favicons/android-chrome-72x72.png")
|
|
||||||
link(rel="android-chrome", sizes="96x96" href="https://s3.amazonaws.com/freecodecamp/favicons/android-chrome-96x96.png")
|
|
||||||
link(rel="android-chrome-manifest", href="https://s3.amazonaws.com/freecodecamp/favicons/android-chrome-manifest.json")
|
|
||||||
link(rel="apple-touch-icon", sizes="114x114", href="https://s3.amazonaws.com/freecodecamp/favicons/apple-touch-icon-114x114.png")
|
|
||||||
link(rel="apple-touch-icon", sizes="120x120", href="https://s3.amazonaws.com/freecodecamp/favicons/apple-touch-icon-120x120.png")
|
|
||||||
link(rel="apple-touch-icon", sizes="144x144", href="https://s3.amazonaws.com/freecodecamp/favicons/apple-touch-icon-144x144.png")
|
|
||||||
link(rel="apple-touch-icon", sizes="152x152", href="https://s3.amazonaws.com/freecodecamp/favicons/apple-touch-icon-152x152.png")
|
|
||||||
link(rel="apple-touch-icon", sizes="180x180", href="https://s3.amazonaws.com/freecodecamp/favicons/apple-touch-icon-180x180.png")
|
|
||||||
link(rel="apple-touch-icon", sizes="57x57", href="https://s3.amazonaws.com/freecodecamp/favicons/apple-touch-icon-57x57.png")
|
|
||||||
link(rel="apple-touch-icon", sizes="60x60", href="https://s3.amazonaws.com/freecodecamp/favicons/apple-touch-icon-60x60.png")
|
|
||||||
link(rel="apple-touch-icon", sizes="72x72", href="https://s3.amazonaws.com/freecodecamp/favicons/apple-touch-icon-72x72.png")
|
|
||||||
link(rel="apple-touch-icon", sizes="76x76", href="https://s3.amazonaws.com/freecodecamp/favicons/apple-touch-icon-76x76.png")
|
|
||||||
link(rel="apple-touch-icon-precomposed", href="https://s3.amazonaws.com/freecodecamp/favicons/apple-touch-icon-precomposed.png")
|
|
||||||
link(rel="apple-touch-icon", href="https://s3.amazonaws.com/freecodecamp/favicons/apple-touch-icon.png")
|
|
||||||
link(rel="favicon", sizes="16x16", href="https://s3.amazonaws.com/freecodecamp/favicons/favicon-16x16.png")
|
|
||||||
link(rel="favicon", sizes="32x32", href="https://s3.amazonaws.com/freecodecamp/favicons/favicon-32x32.png")
|
|
||||||
link(rel="favicon", sizes="96x96", href="https://s3.amazonaws.com/freecodecamp/favicons/favicon-96x96.png")
|
|
||||||
link(rel="mstile", sizes="144x144", href="https://s3.amazonaws.com/freecodecamp/favicons/mstile-144x144.png")
|
|
||||||
link(rel="mstile", sizes="150x150", href="https://s3.amazonaws.com/freecodecamp/favicons/mstile-150x150.png")
|
|
||||||
link(rel="mstile", sizes="310x310", href="https://s3.amazonaws.com/freecodecamp/favicons/mstile-310x310.png")
|
|
||||||
link(rel="mstile", sizes="310x150", href="https://s3.amazonaws.com/freecodecamp/favicons/mstile-310x150.png")
|
|
||||||
link(rel="mstile", sizes="70x70", href="https://s3.amazonaws.com/freecodecamp/favicons/mstile-70x70.png")
|
|
||||||
link(rel="favicon", href="https://s3.amazonaws.com/freecodecamp/favicons/favicon.ico")
|
|
||||||
link(rel='shortcut icon', href='//s3.amazonaws.com/freecodecamp/favicons/favicon.ico')
|
|
@ -1,22 +0,0 @@
|
|||||||
nav.navbar.navbar-default.navbar-static-top.nav-height
|
|
||||||
|
|
||||||
.navbar-header
|
|
||||||
button.hamburger.navbar-toggle(type='button', data-toggle='collapse', data-target='.navbar-collapse')
|
|
||||||
.col-xs-12
|
|
||||||
span.hamburger-text Menu
|
|
||||||
a.navbar-brand(href='/')
|
|
||||||
img.img-responsive.nav-logo(src='https://s3.amazonaws.com/freecodecamp/freecodecamp_logo.svg', alt='learn to code javascript at freeCodeCamp logo')
|
|
||||||
.collapse.navbar-collapse
|
|
||||||
ul.nav.navbar-nav.navbar-right.hamburger-dropdown
|
|
||||||
li
|
|
||||||
a(href='https://learn.freecodecamp.org' rel='noopener') Curriculum
|
|
||||||
li
|
|
||||||
a(href='https://forum.freecodecamp.org', target='_blank' rel='noopener') Forum
|
|
||||||
li
|
|
||||||
a(href='/news', rel='noopener') News
|
|
||||||
if !user
|
|
||||||
li
|
|
||||||
a(href='/signin') Sign in
|
|
||||||
else
|
|
||||||
li
|
|
||||||
a(href='/settings') Settings
|
|
@ -1,18 +0,0 @@
|
|||||||
link(rel='stylesheet', type='text/css' href='/css/lato.css')
|
|
||||||
link(rel='stylesheet', type='text/css' href='/css/ubuntu.css')
|
|
||||||
link(rel='stylesheet', href='https://use.fontawesome.com/releases/v5.2.0/css/all.css' integrity='sha384-hWVjflwFxL6sNzntih27bfxkr27PmbbK/iSvJ+a4+0owXq79v+lsFkW54bOGbiDQ' crossorigin='anonymous')
|
|
||||||
link(rel='stylesheet', href=cacheBreaker(rev('/css', 'main.css')))
|
|
||||||
|
|
||||||
include meta
|
|
||||||
meta(charset='utf-8')
|
|
||||||
meta(http-equiv='X-UA-Compatible', content='IE=edge')
|
|
||||||
meta(name='viewport', content='width=device-width, initial-scale=1.0')
|
|
||||||
meta(name='csrf-token', content=_csrf)
|
|
||||||
script.
|
|
||||||
(function(i,s,o,g,r,a,m){ i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
|
|
||||||
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
|
|
||||||
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
|
|
||||||
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
|
|
||||||
ga('create', 'UA-55446531-1', 'auto');
|
|
||||||
ga('require', 'displayfeatures');
|
|
||||||
ga('send', 'pageview');
|
|
@ -1,18 +0,0 @@
|
|||||||
script.
|
|
||||||
(function(i,s,o,g,r,a,m){ i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
|
|
||||||
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
|
|
||||||
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
|
|
||||||
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
|
|
||||||
ga('create', 'UA-55446531-1', 'auto');
|
|
||||||
ga('require', 'displayfeatures');
|
|
||||||
ga('send', 'pageview');
|
|
||||||
// Leave the below lines alone!
|
|
||||||
script.
|
|
||||||
(function(global) {
|
|
||||||
global.main = global.main || {};
|
|
||||||
global.main.isLoggedIn = !{JSON.stringify(!!user)};
|
|
||||||
global.main.userId = !{JSON.stringify(user && user.id || false)};
|
|
||||||
}(window))
|
|
||||||
script(defer, src=rev('/js/lib/fontawesome', 'fa-brands.min.js'))
|
|
||||||
script(defer, src=rev('/js/lib/fontawesome', 'fa-solid.min.js'))
|
|
||||||
script(src=rev('/js/lib/fontawesome', 'fontawesome.min.js'))
|
|
@ -1,4 +0,0 @@
|
|||||||
link(rel='stylesheet', type='text/css' href='/css/lato.css')
|
|
||||||
link(rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/cal-heatmap/3.5.2/cal-heatmap.css")
|
|
||||||
link(rel='stylesheet', href='https://cdnjs.cloudflare.com/ajax/libs/lightbox2/2.8.2/css/lightbox.min.css')
|
|
||||||
link(rel='stylesheet', href=cacheBreaker(rev('/css', 'main.css')))
|
|
@ -1,13 +0,0 @@
|
|||||||
extends ../layout
|
|
||||||
block content
|
|
||||||
.col-xs-12.col-sm-8.col-sm-offset-2.col-md-6.col-md-offset-3
|
|
||||||
html.
|
|
||||||
<h2 class='text-center'></a>Academic Honesty Policy</h2>
|
|
||||||
<hr>
|
|
||||||
<p>Before we issue our verified certification to a camper, he or she must accept our Academic Honesty Pledge, which reads:</p>
|
|
||||||
<p>"I understand that plagiarism means copying someone else’s work and presenting the work as if it were my own, without clearly attributing the original author.</p>
|
|
||||||
<p>"I understand that plagiarism is an act of intellectual dishonesty, and that people usually get kicked out of university or fired from their jobs if they get caught plagiarizing.</p>
|
|
||||||
<p>"Aside from using open source libraries such as jQuery and Bootstrap, and short snippets of code which are clearly attributed to their original author, 100% of the code in my projects was written by me, or along with another camper with whom I was pair programming in real time.</p>
|
|
||||||
<p>"I pledge that I did not plagiarize any of my freeCodeCamp work. I understand that freeCodeCamp’s team will audit my projects to confirm this."</p>
|
|
||||||
<p>In the situations where we discover instances of unambiguous plagiarism, we will replace the camper in question’s certification with a message that "Upon review, this account has been flagged for academic dishonesty."</p>
|
|
||||||
<p>As an academic institution that grants achievement-based certifications, we take academic honesty very seriously. If you have any questions about this policy, or suspect that someone has violated it, you can email <a href="mailto:team@freecodecamp.org">team@freecodecamp.org</a> and we will investigate.</p>
|
|
@ -1,3 +0,0 @@
|
|||||||
extends ../layout
|
|
||||||
block content
|
|
||||||
iframe(src="https://docs.google.com/forms/d/1MtQDh8E1Nvkg5jdOucS4LSyk6oMQrN8XTwmQGtgJPAQ/viewform?embedded=true", frameborder="0", marginheight="0", marginwidth="0", width='102%', height=2550, scrolling="no") Loading...
|
|
@ -1,116 +0,0 @@
|
|||||||
extends ../layout
|
|
||||||
block content
|
|
||||||
.text-center
|
|
||||||
h1.landing-heading We will build software for your nonprofit. Pro Bono.
|
|
||||||
.big-spacer
|
|
||||||
.row
|
|
||||||
.col-xs-12.col-sm-12.col-md-4
|
|
||||||
img.img-responsive.landing-icon.img-center(src= 'https://s3.amazonaws.com/freecodecamp/landingIcons_portfolio.svg.gz', alt='Image of a briefcase')
|
|
||||||
p.large-p Apply for a Code Grant.
|
|
||||||
.col-xs-12.col-sm-12.col-md-4
|
|
||||||
img.img-responsive.landing-icon.img-center(src= 'https://s3.amazonaws.com/freecodecamp/landingIcons_nonprofits.svg.gz', alt='Image of people putting their hands together in a huddle')
|
|
||||||
p.large-p We'll provide volunteer developers and a project manager.
|
|
||||||
.col-xs-12.col-sm-12.col-md-4
|
|
||||||
img.img-responsive.landing-icon.img-center(src= 'https://s3.amazonaws.com/freecodecamp/landingIcons_connect.svg.gz', alt='image of two people high-fiving')
|
|
||||||
p.large-p We'll collaborate with you to build the tool you need.
|
|
||||||
.spacer
|
|
||||||
h2 As featured in:
|
|
||||||
img.img-center.img-responsive(src='https://s3.amazonaws.com/freecodecamp/as-seen-on.png')
|
|
||||||
hr
|
|
||||||
.spacer
|
|
||||||
h1 What nonprofit leaders are saying:
|
|
||||||
.spacer
|
|
||||||
.row
|
|
||||||
.col-xs-12.col-sm-12.col-md-4
|
|
||||||
img.img-responsive.testimonial-image.img-center(src="https://i.imgur.com/ZHnFFN5.jpg", alt="Ewa's testimonial image")
|
|
||||||
p.nonprofit-testimonial-copy With freeCodeCamp's valuable contribution, we were able to improve all of our systems and processes as part of our Wonder Women Eastern Indonesia program, and make sure that even more life changing technologies get to where they are needed most.
|
|
||||||
h3 - Ewa Wojkowska with Kopernik
|
|
||||||
.col-xs-12.col-sm-12.col-md-4
|
|
||||||
img.img-responsive.testimonial-image.img-center(src="https://i.imgur.com/KHF8O2i.jpg", alt="Jennifer's testimonial image")
|
|
||||||
p.nonprofit-testimonial-copy We have been blown away by the professional quality of the work that has been produced by the campers working on our projects. freeCodeCamp has been an invaluable partner and we are grateful for their support.
|
|
||||||
h3 - Jennifer McDowell with Child First Authority
|
|
||||||
.col-xs-12.col-sm-12.col-md-4
|
|
||||||
img.img-responsive.testimonial-image.img-center(src="https://i.imgur.com/9VknVe3.jpg", alt="Stephanie's testimonial image")
|
|
||||||
p.nonprofit-testimonial-copy We had the pleasure to work with two very talented campers who went above and beyond to create a web-based app for us. I would highly recommend that nonprofits apply to freeCodeCamp with their custom solution needs!
|
|
||||||
h3 - Stephanie McAllister with Timeraiser
|
|
||||||
.spacer
|
|
||||||
hr
|
|
||||||
.spacer
|
|
||||||
h1 Solutions we can help you build:
|
|
||||||
.spacer
|
|
||||||
.row.text-center
|
|
||||||
.col-xs-12.col-sm-12.col-md-4
|
|
||||||
.landing-skill-icon.fa.fa-tasks
|
|
||||||
h2.black-text Paperless Workflows
|
|
||||||
.col-xs-12.col-sm-12.col-md-4
|
|
||||||
.landing-skill-icon.fa.fa-child
|
|
||||||
h2.black-text Volunteer Management
|
|
||||||
.col-xs-12.col-sm-12.col-md-4
|
|
||||||
.landing-skill-icon.fa.fa-users
|
|
||||||
h2.black-text Community Management
|
|
||||||
.col-xs-12.col-sm-12.col-md-4
|
|
||||||
.landing-skill-icon.fa.fa-repeat
|
|
||||||
h2.black-text Inventory Systems
|
|
||||||
.col-xs-12.col-sm-12.col-md-4
|
|
||||||
.landing-skill-icon.fa.fa-truck
|
|
||||||
h2.black-text Logistics Tools
|
|
||||||
.col-xs-12.col-sm-12.col-md-4
|
|
||||||
.landing-skill-icon.fa.fa-wrench
|
|
||||||
h2.black-text ...and other tools
|
|
||||||
.spacer
|
|
||||||
hr
|
|
||||||
.spacer
|
|
||||||
h1 Some of the projects we've built for nonprofits:
|
|
||||||
.spacer
|
|
||||||
.row
|
|
||||||
.col-xs-12
|
|
||||||
h2 Options, Inc.
|
|
||||||
br
|
|
||||||
| Big Lake, Minnesota
|
|
||||||
.embed-responsive.embed-responsive-16by9
|
|
||||||
iframe.embed-responsive-item(src='//www.youtube.com/embed/V8B4orj0M7Y?rel=0&showinfo=0')
|
|
||||||
.spacer
|
|
||||||
.row
|
|
||||||
.col-xs-12
|
|
||||||
h2 Child First Authority
|
|
||||||
br
|
|
||||||
| Baltimore, Maryland
|
|
||||||
.embed-responsive.embed-responsive-16by9
|
|
||||||
iframe.embed-responsive-item(src='//www.youtube.com/embed/O993J5KCR_w?rel=0&showinfo=0')
|
|
||||||
.spacer
|
|
||||||
.row
|
|
||||||
.col-xs-12
|
|
||||||
h2 Chasdei Kaduri Food Bank
|
|
||||||
br
|
|
||||||
| Toronto, Canada
|
|
||||||
.embed-responsive.embed-responsive-16by9
|
|
||||||
iframe.embed-responsive-item(src='//www.youtube.com/embed/XUR8E9fy0mE?rel=0&showinfo=0')
|
|
||||||
.spacer
|
|
||||||
hr
|
|
||||||
.spacer
|
|
||||||
h2 As grantmakers of pro bono code, we approve applications for nonprofits who:
|
|
||||||
.col-xs-12.col-sm-8.col-sm-offset-2.text-left.large-p
|
|
||||||
ul.large-li
|
|
||||||
li
|
|
||||||
span.fa.fa-code
|
|
||||||
|   have 501(c)(3) status or foreign equivalent.
|
|
||||||
li
|
|
||||||
span.fa.fa-code
|
|
||||||
|   have a demonstrated need for custom code.
|
|
||||||
li
|
|
||||||
span.fa.fa-code
|
|
||||||
|   have explored existing software solutions.
|
|
||||||
li
|
|
||||||
span.fa.fa-code
|
|
||||||
|   already have people who benefit from their services.
|
|
||||||
li
|
|
||||||
span.fa.fa-code
|
|
||||||
|   can budget $20 to $30 per month for hosting.
|
|
||||||
li
|
|
||||||
span.fa.fa-code
|
|
||||||
|   will commit to using what our developers build.
|
|
||||||
|
|
||||||
.row
|
|
||||||
.col-xs-12.col-sm-8.col-sm-offset-2
|
|
||||||
.spacer
|
|
||||||
a.btn.btn-cta.signup-btn.btn-block(href="/nonprofits-form") Apply
|
|
@ -1,3 +0,0 @@
|
|||||||
extends ../layout
|
|
||||||
block content
|
|
||||||
iframe(src="https://docs.google.com/forms/d/1Y9wvQAx5s_puGcC-NRZpKLMgT0iZwajGMbkKlh-piGg/viewform?embedded=true", frameborder="0", marginheight="0", marginwidth="0", width='102%', height=2000, scrolling="no") Loading...
|
|
@ -1,55 +0,0 @@
|
|||||||
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='//player.vimeo.com/video/126228100')
|
|
||||||
.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
|
|
||||||
i.landing-skill-icon.fas.fa-globe.font-awesome-padding
|
|
||||||
h2.black-text Websites
|
|
||||||
.col-xs-12.col-sm-12.col-md-3
|
|
||||||
i.landing-skill-icon.fas.fa-credit-card.font-awesome-padding
|
|
||||||
h2.black-text Donation Systems
|
|
||||||
.col-xs-12.col-sm-12.col-md-3
|
|
||||||
i.landing-skill-icon.fas.fa-calendar.font-awesome-padding
|
|
||||||
h2.black-text Volunteer Systems
|
|
||||||
.col-xs-12.col-sm-12.col-md-3
|
|
||||||
i.landing-skill-icon.fas.fa-archive.font-awesome-padding
|
|
||||||
h2.black-text Inventory Systems
|
|
||||||
.col-xs-12.col-sm-12.col-md-3
|
|
||||||
i.landing-skill-icon.fas.fa-graduation-cap.font-awesome-padding
|
|
||||||
h2.black-text E-learning Platforms
|
|
||||||
.col-xs-12.col-sm-12.col-md-3
|
|
||||||
i.landing-skill-icon.fas.fa-list-alt.font-awesome-padding
|
|
||||||
h2.black-text Paperless Workflows
|
|
||||||
.col-xs-12.col-sm-12.col-md-3
|
|
||||||
i.landing-skill-icon.fas.fa-users.font-awesome-padding
|
|
||||||
h2.black-text Community Tools
|
|
||||||
.col-xs-12.col-sm-12.col-md-3
|
|
||||||
i.landing-skill-icon.fas.fa-wrench.font-awesome-padding
|
|
||||||
h2.black-text ...and other tools
|
|
||||||
.big-break
|
|
||||||
a.btn.btn-cta.signup-btn.btn-block(href="/pmi-acp-agile-project-managers-form") I want to lead agile projects for nonprofits
|
|
@ -1,93 +0,0 @@
|
|||||||
doctype xml
|
|
||||||
urlset(xmlns="http://www.sitemaps.org/schemas/sitemap/0.9")
|
|
||||||
|
|
||||||
url
|
|
||||||
loc http://www.freecodecamp.org/
|
|
||||||
changefreq weekly
|
|
||||||
lastmod= now
|
|
||||||
priority= 0.9
|
|
||||||
|
|
||||||
url
|
|
||||||
loc http://www.freecodecamp.org/nonprofits
|
|
||||||
changefreq weekly
|
|
||||||
lastmod= now
|
|
||||||
priority= 0.9
|
|
||||||
|
|
||||||
url
|
|
||||||
loc http://www.freecodecamp.org/pmi-acp-agile-project-managers
|
|
||||||
changefreq weekly
|
|
||||||
lastmod= now
|
|
||||||
priority= 0.9
|
|
||||||
|
|
||||||
url
|
|
||||||
loc http://www.freecodecamp.org/map
|
|
||||||
changefreq weekly
|
|
||||||
lastmod= now
|
|
||||||
priority= 0.9
|
|
||||||
|
|
||||||
url
|
|
||||||
loc http://www.freecodecamp.org/about
|
|
||||||
changefreq weekly
|
|
||||||
lastmod= now
|
|
||||||
priority= 0.9
|
|
||||||
|
|
||||||
url
|
|
||||||
loc http://www.freecodecamp.org/donate
|
|
||||||
changefreq weekly
|
|
||||||
lastmod= now
|
|
||||||
priority= 0.9
|
|
||||||
|
|
||||||
url
|
|
||||||
loc http://www.freecodecamp.org/stories
|
|
||||||
changefreq weekly
|
|
||||||
lastmod= now
|
|
||||||
priority= 0.9
|
|
||||||
|
|
||||||
url
|
|
||||||
loc http://www.freecodecamp.org/coding-bootcamp-cost-calculator
|
|
||||||
changefreq monthly
|
|
||||||
lastmod= now
|
|
||||||
priority= 0.9
|
|
||||||
|
|
||||||
url
|
|
||||||
loc http://www.freecodecamp.org/privacy
|
|
||||||
changefreq weekly
|
|
||||||
lastmod= now
|
|
||||||
priority= 0.9
|
|
||||||
|
|
||||||
url
|
|
||||||
loc http://www.freecodecamp.org/software-resources-for-nonprofits
|
|
||||||
changefreq weekly
|
|
||||||
lastmod= now
|
|
||||||
priority= 0.9
|
|
||||||
|
|
||||||
url
|
|
||||||
loc http://www.freecodecamp.org/the-fastest-web-page-on-the-internet
|
|
||||||
changefreq weekly
|
|
||||||
lastmod= now
|
|
||||||
priority= 0.9
|
|
||||||
|
|
||||||
url
|
|
||||||
loc http://www.freecodecamp.org/academic-honesty
|
|
||||||
changefreq weekly
|
|
||||||
lastmod= now
|
|
||||||
priority= 0.9
|
|
||||||
|
|
||||||
url
|
|
||||||
loc http://www.freecodecamp.org/code-of-conduct
|
|
||||||
changefreq weekly
|
|
||||||
lastmod= now
|
|
||||||
priority= 0.9
|
|
||||||
|
|
||||||
url
|
|
||||||
loc http://www.freecodecamp.org/how-nonprofit-projects-work
|
|
||||||
changefreq weekly
|
|
||||||
lastmod= now
|
|
||||||
priority= 0.9
|
|
||||||
|
|
||||||
each challenge in challenges
|
|
||||||
url
|
|
||||||
loc #{appUrl}/challenges/#{challenge.block}/#{challenge.dashedName}
|
|
||||||
lastmod= now
|
|
||||||
changefreq weekly
|
|
||||||
priority= 0.9
|
|
@ -1,78 +0,0 @@
|
|||||||
extends ../layout
|
|
||||||
block content
|
|
||||||
.col-xs-12.col-sm-8.col-sm-offset-2.col-md-6.col-md-offset-3
|
|
||||||
h2.text-center Software Resources for Nonprofits
|
|
||||||
hr
|
|
||||||
p Please note that freeCodeCamp is not partnered with, nor do we receive a referral fee from, any of the following providers. We simply want to help guide you toward a solution for your organization.
|
|
||||||
h3 Skills-based Volunteer Organizations:
|
|
||||||
ul
|
|
||||||
li
|
|
||||||
a(href='http://givecamp.org/' target='_blank') Give Camp
|
|
||||||
li
|
|
||||||
a(href='http://www.volunteermatch.com' target='_blank') Volunteer Match.com
|
|
||||||
li
|
|
||||||
a(href='http://www.catchafire.org' target='_blank') Catchafire
|
|
||||||
li
|
|
||||||
a(href='http://anyonecanhaveawebsite.com' target='_blank') Anyone Can Have A Website
|
|
||||||
h3 Building a website:
|
|
||||||
ul
|
|
||||||
li
|
|
||||||
a(href='https://www.youtube.com/watch?v=4AXDKWuY9QM' target='_blank') How to build and deploy a website without writing any code for free
|
|
||||||
li
|
|
||||||
a(href='http://www.wix.com/' target='_blank') Wix
|
|
||||||
li
|
|
||||||
a(href='https://www.squarespace.com/' target='_blank') Square Space
|
|
||||||
li
|
|
||||||
a(href='https://wordpress.com/' target='_blank') WordPress
|
|
||||||
li
|
|
||||||
a(href='https://xprs.imcreator.com' target='_blank') Imcreator.com
|
|
||||||
h3 Donor and Volunteer Management Systems:
|
|
||||||
ul
|
|
||||||
li
|
|
||||||
a(href='http://causesignal.com' target='_blank') Cause Signal
|
|
||||||
li
|
|
||||||
a(href='https://www.thedatabank.com/' target='_blank') The Data Bank
|
|
||||||
li
|
|
||||||
a(href='http://www.donorsnap.com/' target='_blank') Donor Snap
|
|
||||||
li
|
|
||||||
a(href='http://www.donorperfect.com/' target='_blank') Donor Perfect
|
|
||||||
li
|
|
||||||
a(href='https://www.blackbaud.com/fundraising-crm/etapestry-donor-management' target='_blank') E Tapestry
|
|
||||||
li
|
|
||||||
a(href='http://www.z2systems.com' target='_blank') Z2 Systems
|
|
||||||
li
|
|
||||||
a(href='http://www.regpacks.com/volunteer-management' target='_blank') Reg Packs
|
|
||||||
li
|
|
||||||
a(href='http://sumac.com' target='_blank') Sumac
|
|
||||||
li
|
|
||||||
a(href='http://www.volgistics.com' target='_blank') Volgistics
|
|
||||||
h3 Inventory Management Systems:
|
|
||||||
ul
|
|
||||||
li
|
|
||||||
a(href='https://www.ordoro.com' target='_blank') Ordoro
|
|
||||||
li
|
|
||||||
a(href='http://www.unleashedsoftware.com' target='_blank') Unleashed Software
|
|
||||||
li
|
|
||||||
a(href='https://www.ezofficeinventory.com/industries/non-profits' target='_blank') EZ Office Inventory
|
|
||||||
h3 E-Learning platforms:
|
|
||||||
ul
|
|
||||||
li
|
|
||||||
a(href='http://www.dokeos.com' target='_blank') Dokeos
|
|
||||||
li
|
|
||||||
a(href='http://www.efrontlearning.net/' target='_blank') E Front Learning
|
|
||||||
li
|
|
||||||
a(href='https://moodle.org/' target='_blank') Moodle
|
|
||||||
li
|
|
||||||
a(href='https://sakaiproject.org/' target='_blank') Sakai Project
|
|
||||||
h3 Community Management:
|
|
||||||
ul
|
|
||||||
li
|
|
||||||
a(href='https://civicrm.org/' target='_blank') CiviCRM
|
|
||||||
li
|
|
||||||
a(href='http://tcmgr.com/' target='_blank') Total Community Manager
|
|
||||||
h3 Electronic Forms:
|
|
||||||
ul
|
|
||||||
li
|
|
||||||
a(href='http://www.google.com/forms' target='_blank') Google Forms
|
|
||||||
li
|
|
||||||
a(href='http://www.typeform.com' target='_blank') Typeform
|
|
@ -1,25 +0,0 @@
|
|||||||
extends ../layout
|
|
||||||
block content
|
|
||||||
h1.text-center Stories from happy campers
|
|
||||||
hr
|
|
||||||
.row
|
|
||||||
.col-xs-12.col-sm-10.col-sm-offset-1
|
|
||||||
.row
|
|
||||||
for story in stories
|
|
||||||
.col-xs-12.col-sm-6.col-md-4
|
|
||||||
.height-500
|
|
||||||
a(href=story.linkedin target='_blank')
|
|
||||||
img.testimonial-image.img-responsive.img-center(src=story.image)
|
|
||||||
h3.text-center= story.camper
|
|
||||||
|
|
|
||||||
a.fa.fa-linkedin-square.text-primary(alt="#{story.camper}'s LinkedIn Profile", href=story.linkedin, target='_blank')
|
|
||||||
p.small-p.text-justify= story.quote
|
|
||||||
.col-xs-12.col-sm-10.col-sm-offset-1
|
|
||||||
if moreStories
|
|
||||||
.text-center
|
|
||||||
a.btn.btn-lg.btn-primary.btn-primary-ghost.btn-block(href="/all-stories") Show more stories
|
|
||||||
.spacer
|
|
||||||
|
|
||||||
if !user
|
|
||||||
.text-center
|
|
||||||
a.btn.btn-cta.signup-btn.btn-block(href="/signin") Start learning to code (it's free)
|
|
@ -1,9 +0,0 @@
|
|||||||
extends ../layout
|
|
||||||
block content
|
|
||||||
.panel.panel-info
|
|
||||||
.panel-body.text-center
|
|
||||||
h1 You have successfully been unsubscribed.
|
|
||||||
h2 Whatever you do, keep coding! :)
|
|
||||||
if unsubscribeId
|
|
||||||
.col-xs-12.col-md-8.col-md-offset-2
|
|
||||||
a.btn.btn-primary.btn-lg.btn-block(href='/resubscribe/#{unsubscribeId}') You can click here to resubscribe
|
|
@ -1,75 +0,0 @@
|
|||||||
extends ../layout
|
|
||||||
block content
|
|
||||||
script.
|
|
||||||
.panel.panel-info
|
|
||||||
.panel-heading.text-center
|
|
||||||
h1 These Sponsors make freeCodeCamp possible
|
|
||||||
.panel-body
|
|
||||||
img.img-responsive.img-center.border-radius-5(src='https://s3.amazonaws.com/freecodecamp/wide-social-banner.png')
|
|
||||||
.spacer
|
|
||||||
.row
|
|
||||||
.col-xs-12.col-md-10.col-md-offset-1
|
|
||||||
h1 Interested in becoming a sponsor? Call us any time at +1 888-888-8888
|
|
||||||
.spacer
|
|
||||||
h1.text-center Platinum Sponsors
|
|
||||||
.row
|
|
||||||
.col-xs-6
|
|
||||||
img.img-responsive.img-center(src='http://placekitten.com/200/300')
|
|
||||||
.col-xs-12.col-sm-10.col-md-8.col-sm-offset-1.col-md-offset-2.negative-35
|
|
||||||
h3
|
|
||||||
a(href='#' target='_blank') Name of Company
|
|
||||||
p.large-p Sagittis 9 lives climb the curtains lady tincidunt sleep on your face odd consequat lobortis erat eu? Malesuada eros, ac facilisis waffles reddit cute id together lacinia lived faucibus! Sed, sleeping watched diam cat ut mercedes litora? Meet cute aptent lacinia, eu likes quam neighbors tincidunt scelerisque quis loves she.
|
|
||||||
.col-xs-6
|
|
||||||
img.img-responsive.img-center(src='http://placekitten.com/200/300')
|
|
||||||
.col-xs-12.col-sm-10.col-md-8.col-sm-offset-1.col-md-offset-2.negative-35
|
|
||||||
h3
|
|
||||||
a(href='#' target='_blank') Name of Company
|
|
||||||
p.large-p Sagittis 9 lives climb the curtains lady tincidunt sleep on your face odd consequat lobortis erat eu? Malesuada eros, ac facilisis waffles reddit cute id together lacinia lived faucibus! Sed, sleeping watched diam cat ut mercedes litora? Meet cute aptent lacinia, eu likes quam neighbors tincidunt scelerisque quis loves she.
|
|
||||||
|
|
||||||
h1.text-center Gold Sponsors
|
|
||||||
.row
|
|
||||||
.col-xs-4
|
|
||||||
img.img-responsive.img-center(src='http://placekitten.com/200/300')
|
|
||||||
.col-xs-12.col-sm-10.col-sm-offset-1.negative-35
|
|
||||||
h3
|
|
||||||
a(href='#' target='_blank') Name of Company
|
|
||||||
p.large-p Sagittis 9 lives climb the curtains lady tincidunt sleep on your face odd consequat lobortis erat eu? Malesuada eros, ac facilisis waffles reddit cute id together lacinia lived faucibus! Sed, sleeping watched diam cat ut mercedes litora? Meet cute aptent lacinia, eu likes quam neighbors tincidunt scelerisque quis loves she.
|
|
||||||
.col-xs-4
|
|
||||||
img.img-responsive.img-center(src='http://placekitten.com/200/300')
|
|
||||||
.col-xs-12.col-sm-10.col-sm-offset-1.negative-35
|
|
||||||
h3
|
|
||||||
a(href='#' target='_blank') Name of Company
|
|
||||||
p.large-p Sagittis 9 lives climb the curtains lady tincidunt sleep on your face odd consequat lobortis erat eu? Malesuada eros, ac facilisis waffles reddit cute id together lacinia lived faucibus! Sed, sleeping watched diam cat ut mercedes litora? Meet cute aptent lacinia, eu likes quam neighbors tincidunt scelerisque quis loves she.
|
|
||||||
.col-xs-4
|
|
||||||
img.img-responsive.img-center(src='http://placekitten.com/200/300')
|
|
||||||
.col-xs-12.col-sm-10.col-sm-offset-1.negative-35
|
|
||||||
h3
|
|
||||||
a(href='#' target='_blank') Name of Company
|
|
||||||
p.large-p Sagittis 9 lives climb the curtains lady tincidunt sleep on your face odd consequat lobortis erat eu? Malesuada eros, ac facilisis waffles reddit cute id together lacinia lived faucibus! Sed, sleeping watched diam cat ut mercedes litora? Meet cute aptent lacinia, eu likes quam neighbors tincidunt scelerisque quis loves she.
|
|
||||||
|
|
||||||
h1.text-center Silver Sponsors
|
|
||||||
.row
|
|
||||||
.col-xs-2
|
|
||||||
img.img-responsive.img-center(src='http://placekitten.com/200/300')
|
|
||||||
.col-xs-2
|
|
||||||
img.img-responsive.img-center(src='http://placekitten.com/200/300')
|
|
||||||
.col-xs-2
|
|
||||||
img.img-responsive.img-center(src='http://placekitten.com/200/300')
|
|
||||||
.col-xs-2
|
|
||||||
img.img-responsive.img-center(src='http://placekitten.com/200/300')
|
|
||||||
.col-xs-2
|
|
||||||
img.img-responsive.img-center(src='http://placekitten.com/200/300')
|
|
||||||
.col-xs-2
|
|
||||||
img.img-responsive.img-center(src='http://placekitten.com/200/300')
|
|
||||||
.col-xs-2
|
|
||||||
img.img-responsive.img-center(src='http://placekitten.com/200/300')
|
|
||||||
.col-xs-2
|
|
||||||
img.img-responsive.img-center(src='http://placekitten.com/200/300')
|
|
||||||
.col-xs-2
|
|
||||||
img.img-responsive.img-center(src='http://placekitten.com/200/300')
|
|
||||||
.col-xs-2
|
|
||||||
img.img-responsive.img-center(src='http://placekitten.com/200/300')
|
|
||||||
.col-xs-2
|
|
||||||
img.img-responsive.img-center(src='http://placekitten.com/200/300')
|
|
||||||
.col-xs-2
|
|
||||||
img.img-responsive.img-center(src='http://placekitten.com/200/300')
|
|
@ -1,26 +0,0 @@
|
|||||||
extends layout
|
|
||||||
block content
|
|
||||||
.text-center
|
|
||||||
.row
|
|
||||||
h1.landing-heading=title
|
|
||||||
.big-break
|
|
||||||
include homePartials/activeUsersView
|
|
||||||
.big-break
|
|
||||||
.row
|
|
||||||
.col-xs-12.col-sm-8.col-sm-offset-2
|
|
||||||
a(href="/n/7gR5pBM-K?refsource=userhome" target="_blank" class="update-link")
|
|
||||||
| We're building a massive open dataset about new coders. Take the 2018 New Coder Survey. It only takes 5 minutes.
|
|
||||||
.big-break
|
|
||||||
include homePartials/quote
|
|
||||||
.big-break
|
|
||||||
.big-break
|
|
||||||
include homePartials/stats
|
|
||||||
.big-break
|
|
||||||
.big-break
|
|
||||||
.row
|
|
||||||
.col-xs-12.col-sm-8.col-sm-offset-2
|
|
||||||
a.btn.btn-cta.btn-block.btn-lg.btn-primary(href="/challenges/current-challenge")
|
|
||||||
| Go to the coding curriculum
|
|
||||||
.big-break
|
|
||||||
.big-break
|
|
||||||
include homePartials/scripts
|
|
@ -1,11 +1,13 @@
|
|||||||
import React from 'react'
|
import React from 'react'
|
||||||
import { Grid, Panel, Button } from '@freecodecamp/react-bootstrap'
|
import { Grid, Panel, Button } from '@freecodecamp/react-bootstrap'
|
||||||
|
|
||||||
import { apiLocation } from '../../config/env.json'
|
import env from '../../config/env.json'
|
||||||
import Layout from '../components/Layout'
|
import Layout from '../components/Layout'
|
||||||
import FullWidthRow from '../components/helpers/FullWidthRow'
|
import FullWidthRow from '../components/helpers/FullWidthRow'
|
||||||
import { Spacer } from '../components/helpers'
|
import { Spacer } from '../components/helpers'
|
||||||
|
|
||||||
|
const { apiLocation } = env;
|
||||||
|
|
||||||
function ShowUnsubscribed({ unsubscribeId }) {
|
function ShowUnsubscribed({ unsubscribeId }) {
|
||||||
return (
|
return (
|
||||||
<Layout>
|
<Layout>
|
||||||
|
314
client/src/pages/software-resources-for-nonprofits.js
Normal file
314
client/src/pages/software-resources-for-nonprofits.js
Normal file
@ -0,0 +1,314 @@
|
|||||||
|
import React from 'react'
|
||||||
|
import { Grid } from '@freecodecamp/react-bootstrap'
|
||||||
|
|
||||||
|
import Layout from '../components/Layout'
|
||||||
|
import FullWidthRow from '../components/helpers/FullWidthRow'
|
||||||
|
import { Spacer } from '../components/helpers';
|
||||||
|
|
||||||
|
function SoftwareResourcesForNonProfits() {
|
||||||
|
return (
|
||||||
|
<Layout>
|
||||||
|
<Spacer />
|
||||||
|
<Spacer />
|
||||||
|
<Grid>
|
||||||
|
<FullWidthRow>
|
||||||
|
<h2 className="text-center">Software Resources for Nonprofits</h2>
|
||||||
|
<hr />
|
||||||
|
<p>
|
||||||
|
Please note that freeCodeCamp is not partnered with, nor do we
|
||||||
|
receive a referral fee from, any of the following providers. We
|
||||||
|
simply want to help guide you toward a solution for your
|
||||||
|
organization.
|
||||||
|
</p>
|
||||||
|
<h3>Skills-based Volunteer Organizations:</h3>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<a
|
||||||
|
href="http://givecamp.org/"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
>
|
||||||
|
Give Camp
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a
|
||||||
|
href="http://www.volunteermatch.com"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
>
|
||||||
|
Volunteer Match.com
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a
|
||||||
|
href="http://www.catchafire.org"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
>
|
||||||
|
Catchafire
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a
|
||||||
|
href="http://anyonecanhaveawebsite.com"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
>
|
||||||
|
Anyone Can Have A Website
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<h3>Building a website:</h3>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<a
|
||||||
|
href="https://www.youtube.com/watch?v=4AXDKWuY9QM"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
>
|
||||||
|
How to build and deploy a website without writing any code for
|
||||||
|
free
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a
|
||||||
|
href="http://www.wix.com/"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
>
|
||||||
|
Wix
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a
|
||||||
|
href="https://www.squarespace.com/"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
>
|
||||||
|
Square Space
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a
|
||||||
|
href="https://wordpress.com/"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
>
|
||||||
|
WordPress
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a
|
||||||
|
href="https://xprs.imcreator.com"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
>
|
||||||
|
Imcreator.com
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<h3>Donor and Volunteer Management Systems:</h3>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<a
|
||||||
|
href="http://causesignal.com"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
>
|
||||||
|
Cause Signal
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a
|
||||||
|
href="https://www.thedatabank.com/"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
>
|
||||||
|
The Data Bank
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a
|
||||||
|
href="http://www.donorsnap.com/"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
>
|
||||||
|
Donor Snap
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a
|
||||||
|
href="http://www.donorperfect.com/"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
>
|
||||||
|
Donor Perfect
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a
|
||||||
|
href="https://www.blackbaud.com/fundraising-crm/etapestry-donor-management"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
>
|
||||||
|
E Tapestry
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a
|
||||||
|
href="http://www.z2systems.com"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
>
|
||||||
|
Z2 Systems
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a
|
||||||
|
href="http://www.regpacks.com/volunteer-management"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
>
|
||||||
|
Reg Packs
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a
|
||||||
|
href="http://sumac.com"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
>
|
||||||
|
Sumac
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a
|
||||||
|
href="http://www.volgistics.com"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
>
|
||||||
|
Volgistics
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<h3>Inventory Management Systems:</h3>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<a
|
||||||
|
href="https://www.ordoro.com"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
>
|
||||||
|
Ordoro
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a
|
||||||
|
href="http://www.unleashedsoftware.com"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
>
|
||||||
|
Unleashed Software
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a
|
||||||
|
href="https://www.ezofficeinventory.com/industries/non-profits"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
>
|
||||||
|
EZ Office Inventory
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<h3>E-Learning platforms:</h3>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<a
|
||||||
|
href="http://www.dokeos.com"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
>
|
||||||
|
Dokeos
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a
|
||||||
|
href="http://www.efrontlearning.net/"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
>
|
||||||
|
E Front Learning
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a
|
||||||
|
href="https://moodle.org/"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
>
|
||||||
|
Moodle
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a
|
||||||
|
href="https://sakaiproject.org/"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
>
|
||||||
|
Sakai Project
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<h3>Community Management:</h3>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<a
|
||||||
|
href="https://civicrm.org/"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
>
|
||||||
|
CiviCRM
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a
|
||||||
|
href="http://tcmgr.com/"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
>
|
||||||
|
Total Community Manager
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<h3>Electronic Forms:</h3>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<a
|
||||||
|
href="http://www.google.com/forms"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
>
|
||||||
|
Google Forms
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a
|
||||||
|
href="http://www.typeform.com"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
>
|
||||||
|
Typeform
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</FullWidthRow>
|
||||||
|
</Grid>
|
||||||
|
</Layout>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
SoftwareResourcesForNonProfits.displayName = 'SoftwareResourcesForNonProfits'
|
||||||
|
|
||||||
|
export default SoftwareResourcesForNonProfits
|
@ -1,3 +1,7 @@
|
|||||||
|
#api redirect
|
||||||
|
|
||||||
|
/internal/* https://api.freecodecamp.org/internal/:splat
|
||||||
|
|
||||||
# auth redirects
|
# auth redirects
|
||||||
/signup /signin 301
|
/signup /signin 301
|
||||||
/email-signin /signin 301
|
/email-signin /signin 301
|
||||||
@ -16,3 +20,19 @@
|
|||||||
/u/* https://api.freecodecamp.org/u/:splat
|
/u/* https://api.freecodecamp.org/u/:splat
|
||||||
/unsunscribe/* https://api.freecodecamp.org/unsunscribe/:splat
|
/unsunscribe/* https://api.freecodecamp.org/unsunscribe/:splat
|
||||||
/ue/* https://api.freecodecamp.org/ue/:splat
|
/ue/* https://api.freecodecamp.org/ue/:splat
|
||||||
|
|
||||||
|
# misc redirects
|
||||||
|
/agile / 200
|
||||||
|
/chat https://gitter.im/FreeCodeCamp/FreeCodeCamp 301
|
||||||
|
/twitch https://twitch.tv/freecodecamp 301
|
||||||
|
/nonprofits-form / 200
|
||||||
|
/pmi-acp-agile-project-managers / 200
|
||||||
|
/pmi-acp-agile-project-managers-form / 200
|
||||||
|
/stories / 200
|
||||||
|
/all-stories / 200
|
||||||
|
/field-guide/* https://forum.freecodecamp.org 301
|
||||||
|
/learn-to-code /learn 200
|
||||||
|
/map /learn 200
|
||||||
|
/privacy https://forum.freecodecamp.org/t/free-code-camp-privacy-policy/19545 301
|
||||||
|
/nonprofit-project-instructions http://forum.freecodecamp.org/t/how-free-code-camps-nonprofits-projects-work/19547 301
|
||||||
|
/how-nonprofit-projects-work https://medium.freecodecamp.org/open-source-for-good-1a0ea9f32d5a 301
|
Reference in New Issue
Block a user