diff --git a/common/app/routes/challenges/components/map/Coding-Prep.jsx b/common/app/routes/challenges/components/map/Coding-Prep.jsx deleted file mode 100644 index ce06f7e69b..0000000000 --- a/common/app/routes/challenges/components/map/Coding-Prep.jsx +++ /dev/null @@ -1,68 +0,0 @@ -import React, { PropTypes } from 'react'; -import PureComponent from 'react-pure-render/component'; -import dedent from 'dedent'; -import SuperBlock from './Super-Block.jsx'; - -const lockMessage = dedent` - To qualify for these nonprofit projects, - you must first earn all three foundational certifications: - Front End, Data Visualization, and Back End -`.replace(/[\n]/g, ' '); - -const codingPrep = [{ - title: 'Coding Interview Training', - time: '70 Hours', - challenges: [ - { - title: 'Soft Skill Training', - isLocked: true - }, - { - title: 'Critical Thinking Training', - isLocked: true - }, - { - title: 'Whiteboard Coding Training', - isLocked: true - } - ] -}, { - title: 'Mock Interviews', - time: '10 Hours', - challenges: [ - { - title: 'Mock Interview #1', - isLocked: true - }, - { - title: 'Mock Interview #2', - isLocked: true - }, - { - title: 'Mock Interview #3', - isLocked: true - } - ] -}]; -const title = 'Coding Interview Prep'; -const dashedName = 'coding-prep'; -export default class CodingPrep extends PureComponent { - static displayName = 'CodingPrep;' - static propTypes = { - mapUi: PropTypes.object, - toggleThisPanel: PropTypes.func - }; - render() { - const { mapUi, toggleThisPanel } = this.props; - return ( - - ); - } -} diff --git a/common/app/routes/challenges/components/map/Full-Stack.jsx b/common/app/routes/challenges/components/map/Full-Stack.jsx deleted file mode 100644 index f880b7de23..0000000000 --- a/common/app/routes/challenges/components/map/Full-Stack.jsx +++ /dev/null @@ -1,69 +0,0 @@ -import React, { PropTypes } from 'react'; -import PureComponent from 'react-pure-render/component'; -import dedent from 'dedent'; -import SuperBlock from './Super-Block.jsx'; - -const lockMessage = dedent` - To qualify for these nonprofit projects, - you must first earn all three foundational certifications: - Front End, Data Visualization, and Back End -`.replace(/[\n]/g, ' '); - -const nonprofitProjects = { - title: 'Nonprofit Projects', - time: '800 Hours', - challenges: [ - { - title: 'Greenfield Nonprofit Project #1', - dashedName: 'greenfield-1', - isLocked: true, - isRequired: true - }, - { - title: 'Greenfield Nonprofit Project #2', - dashedName: 'greenfield-2', - isLocked: true, - isRequired: true - }, - { - title: 'Legacy Code Nonprofit Project #1', - dashedName: 'legacy-1', - isLocked: true, - isRequired: true - }, - { - title: 'Legacy Code Nonprofit Project #2', - dashedName: 'legacy-2', - isLocked: true, - isRequired: true - }, - { - title: 'Claim your Full Stack Development Certification', - dashedName: 'claim-full-stack', - isLocked: true - } - ] -}; - -const title = 'Full Stack Development Certification'; -const dashedName = 'full-stack'; -export default class FullStack extends PureComponent { - static displayName = 'FullStack'; - static propTypes = { - mapUi: PropTypes.object, - toggleThisPanel: PropTypes.func - }; - render() { - const { mapUi, toggleThisPanel } = this.props; - return ( - - ); - } -} diff --git a/seed/challenges/05-full-stack-development-certification/nonprofit-projects.json b/seed/challenges/05-full-stack-development-certification/nonprofit-projects.json new file mode 100644 index 0000000000..cada08daad --- /dev/null +++ b/seed/challenges/05-full-stack-development-certification/nonprofit-projects.json @@ -0,0 +1,28 @@ +{ + "name": "Nonprofit Projects", + "order": 22, + "time": "800 Hours", + "isLocked": true, + "message": "To qualify for these nonprofit projects, you must first earn all three foundational certifications: Front End, Data Visualization, and Back End", + "challenges": [ + { + "title": "Greenfield Nonprofit Project #1", + "isRequired": true + }, + { + "title": "Greenfield Nonprofit Project #2", + "isRequired": true + }, + { + "title": "Legacy Code Nonprofit Project #1", + "isRequired": true + }, + { + "title": "Legacy Code Nonprofit Project #2", + "isRequired": true + }, + { + "title": "Claim your Full Stack Development Certification" + } + ] +} diff --git a/seed/challenges/06-coding-interview-preperation/coding-interview-training.json b/seed/challenges/06-coding-interview-preperation/coding-interview-training.json new file mode 100644 index 0000000000..c38eb790e2 --- /dev/null +++ b/seed/challenges/06-coding-interview-preperation/coding-interview-training.json @@ -0,0 +1,18 @@ +{ + "name": "Coding Interview Training", + "order": 23, + "time": "70 Hours", + "isLocked": true, + "message": "To qualify for these nonprofit projects, you must first earn all three foundational certifications: Front End, Data Visualization, and Back End", + "challenges": [ + { + "title": "Soft Skill Training" + }, + { + "title": "Critical Thinking Training" + }, + { + "title": "Whiteboard Coding Training" + } + ] +} diff --git a/seed/challenges/06-coding-interview-preperation/mock-interview-training.json b/seed/challenges/06-coding-interview-preperation/mock-interview-training.json new file mode 100644 index 0000000000..4e9d94d969 --- /dev/null +++ b/seed/challenges/06-coding-interview-preperation/mock-interview-training.json @@ -0,0 +1,18 @@ +{ + "name": "Mock Interviews", + "order": 24, + "time": "10 Hours", + "isLocked": true, + "message": "To qualify for these nonprofit projects, you must first earn all three foundational certifications: Front End, Data Visualization, and Back End", + "challenges": [ + { + "title": "Mock Interview #1" + }, + { + "title": "Mock Interview #2" + }, + { + "title": "Mock Interview #3" + } + ] +} diff --git a/seed/index.js b/seed/index.js index bb141de18b..4f91843e89 100644 --- a/seed/index.js +++ b/seed/index.js @@ -40,6 +40,8 @@ Observable.combineLatest( var fileName = challengeSpec.fileName; var helpRoom = challengeSpec.helpRoom || 'Help'; var time = challengeSpec.time || 'N/A'; + var isLocked = !!challengeSpec.isLocked; + var message = challengeSpec.message; console.log('parsed %s successfully', blockName); @@ -54,8 +56,10 @@ Observable.combineLatest( dashedName: dasherize(blockName), superOrder: superOrder, superBlock: superBlock, + superBlockMessage: message, order: order, - time: time + time: time, + isLocked: isLocked }; return createBlocks(block) @@ -85,6 +89,7 @@ Observable.combineLatest( challenge.blockId = block.id; challenge.isBeta = challenge.isBeta || isBeta; challenge.isComingSoon = challenge.isComingSoon || isComingSoon; + challenge.isLocked = challenge.isLocked || isLocked; challenge.time = challengeSpec.time; challenge.superOrder = superOrder; challenge.superBlock = superBlock