+
+ )
+}
+
+CoderBot.propTypes = {
+ code: PropTypes.number.isRequired
+}
+CoderBot.defaultProps = {
+ code: 500
+}
+export default CoderBot
diff --git a/src/components/PageError/PageError.scss b/src/components/CoderBot/CoderBot.scss
similarity index 100%
rename from src/components/PageError/PageError.scss
rename to src/components/CoderBot/CoderBot.scss
diff --git a/src/components/Home/Home.jsx b/src/components/Home/Home.jsx
index ab70ea723..096b8882d 100644
--- a/src/components/Home/Home.jsx
+++ b/src/components/Home/Home.jsx
@@ -1,9 +1,9 @@
import React from 'react'
import { connect } from 'react-redux'
-import { withRouter } from 'react-router'
+import { withRouter, Link } from 'react-router'
import './Home.scss'
import homeImgSrc from '../../assets/images/hero-tc-landing.png'
-import { DOMAIN, ACCOUNTS_APP_REGISTER_URL } from '../../config/constants'
+import { DOMAIN } from '../../config/constants'
class Home extends React.Component {
constructor(props) {
@@ -18,8 +18,7 @@ class Home extends React.Component {
}
render() {
- const registerUrl = ACCOUNTS_APP_REGISTER_URL
- const learnMoreUrl = 'https://www.' + DOMAIN +'/what-can-you-do/'
+ const learnMoreUrl = 'https://www.' + DOMAIN +'/about-topcoder/connect/'
return (
@@ -27,12 +26,12 @@ class Home extends React.Component {
-
Welcome to Topcoder Connect
+
Topcoder Connect: the easiest way to go from idea to app
Companies and agencies, from the world’s largest to the Valley’s newest, use crowdsourcing to deliver high-quality assets, faster.
-
Join Connect today to see what we can do for your next project through the power of crowdsourcing, delivered by Topcoder.
+
Connect guides you through the entire crowdsourcing process, from entering requirements to receiving final deliverables, and it facilitates collaboration between your project team and Topcoder community members working on your project.
diff --git a/src/components/PageError/PageError.jsx b/src/components/PageError/PageError.jsx
deleted file mode 100644
index 2749f83a1..000000000
--- a/src/components/PageError/PageError.jsx
+++ /dev/null
@@ -1,34 +0,0 @@
-import React, {PropTypes} from 'react'
-import './PageError.scss'
-
-const getMessage = code => {
- switch(code) {
- case 404:
- return 'D’oh! We couldn’t find the page you were looking for.'
- case 500:
- default:
- return 'D’oh! Something went wrong'
- }
-}
-
-const PageError = ({code}) => {
- return (
-
-
-
-
{getMessage(code)}
-
Sorry about that, mate! Please try reloading the page again. If things don’t work or you’re sure it is Coder’s fault, send us a note at support@topcoder.com and we’ll fix it for you.
)
@@ -36,7 +43,9 @@ Wizard.proptTypes = {
children: PT.node.isRequired,
onCancel: PT.node.isRequired,
onStepChange: PT.func.isRequired,
- step: PT.number.isRequired
+ step: PT.number.isRequired,
+ showModal: PT.bool,
+ shouldRenderBackButton: PT.func
}
export default Wizard
diff --git a/src/components/Wizard/Wizard.scss b/src/components/Wizard/Wizard.scss
index 8e7674df4..5a0d963bb 100644
--- a/src/components/Wizard/Wizard.scss
+++ b/src/components/Wizard/Wizard.scss
@@ -9,8 +9,9 @@
margin: 24px auto;
min-width: 120px;
padding: 20px;
- position: relative;
+ /*position: relative;*/
text-align: left;
+ width: 100%;
}
.back-button {
position: absolute;
diff --git a/src/config/constants.js b/src/config/constants.js
index d2f2447e7..48213103e 100644
--- a/src/config/constants.js
+++ b/src/config/constants.js
@@ -250,4 +250,6 @@ export const AUTOCOMPLETE_TRIGGER_LENGTH = 3
// Toggle this flag to enable/disable maintenance mode
export const MAINTENANCE_MODE = false
+export const LS_INCOMPLETE_PROJECT = 'incompleteProject'
+
export const CONNECT_MESSAGE_API_URL = process.env.CONNECT_MESSAGE_API_URL || TC_API_URL
diff --git a/src/config/projectQuestions/app_dev.v1.0.js b/src/config/projectQuestions/app_dev.v1.0.js
index dc9ef25b0..3b73d7978 100644
--- a/src/config/projectQuestions/app_dev.v1.0.js
+++ b/src/config/projectQuestions/app_dev.v1.0.js
@@ -25,11 +25,12 @@ const sections = [
return 'Definition'
},
required: true,
- description: 'Answer just a few questions about your application. You can also provide the needed information in a supporting-document - upload it below or add a link in the notes section.',
+ description: 'Please answer a few basic questions about your project. You can also provide the needed information in a supporting document--add a link in the notes section or upload it below.',
subSections: [
{
id: 'projectName',
required: true,
+ validationError: 'Please provide a name to your project',
fieldName: 'name',
description: '',
title: 'Project Name',
@@ -228,3 +229,86 @@ const sections = [
]
export default sections
+
+export const basicSections = [
+ {
+ id: 'appDefinition',
+ title: '',
+ required: true,
+ description: 'Please answer a few basic questions about your project and, as an option, add links to supporting documents in the “Notes” section. If you have any files to upload, you’ll be able to do so later.',
+ subSections: [
+ {
+ id: 'projectName',
+ required: true,
+ validationError: 'Please provide a name to your project',
+ fieldName: 'name',
+ description: '',
+ title: 'Project Name',
+ type: 'project-name'
+ },
+ {
+ id: 'questions',
+ required: true,
+ hideTitle: true,
+ title: 'Questions',
+ description: '',
+ type: 'questions',
+ questions: [
+ {
+ icon: 'question',
+ required: true,
+ validationError: 'Please let us know the target device',
+ title: 'Which is your primary device target?',
+ description: 'Select only the device that you need to develop for. \
+ In most cases limiting the scope of your project would result \
+ in better final result. Topcoder recommends to always start \
+ with the mobile phone view and expand to other devices as your \
+ app matures.',
+ fieldName: 'details.appDefinition.primaryTarget',
+ type: 'tiled-radio-group',
+ options: [
+ {value: 'phone', title: 'Phone', icon: Icons.IconTechOutlineMobile, iconOptions: { fill: '#00000'}, desc: 'iOS, Android, Hybrid'},
+ {value: 'tablet', title: 'Tablet', icon: Icons.IconTechOutlineTablet, iconOptions: { fill: '#00000'}, desc: 'iOS, Android, Hybrid'},
+ {value: 'desktop', title: 'Desktop', icon: Icons.IconTechOutlineDesktop, iconOptions: { fill: '#00000'}, desc: 'all OS'},
+ {value: 'wearable', title: 'Wearable', icon: Icons.IconTechOutlineWatchApple, iconOptions: { fill: '#00000'}, desc: 'Watch OS, Android Wear'}
+ ]
+ },
+ {
+ id: 'projectInfo',
+ required: true,
+ validationError: 'Please provide description',
+ fieldName: 'description',
+ description: 'Brief Description',
+ title: 'Description',
+ type: 'textbox'
+ },
+ {
+ icon: 'question',
+ required: true,
+ validationError: 'Please let us know the goal of your application',
+ title: 'What is the goal of your application? How will people use it?',
+ description: 'Describe your objectives for creating this application',
+ type: 'textbox',
+ fieldName: 'details.appDefinition.goal.value'
+ },
+ {
+ icon: 'question',
+ required: true,
+ validationError: 'Please let us know users of your application',
+ title: 'Who are the users of your application? ',
+ description: 'Describe the roles and needs of your target users',
+ type: 'textbox',
+ fieldName: 'details.appDefinition.users.value'
+ }
+ ]
+ },
+ {
+ id: 'notes',
+ fieldName: 'details.appDefinition.notes',
+ title: 'Notes',
+ description: 'Add any other important information regarding your project (e.g., links to documents or existing applications, budget or timing constraints)',
+ type: 'notes'
+ }
+ ]
+ }
+]
\ No newline at end of file
diff --git a/src/config/projectQuestions/avd.v1.0.js b/src/config/projectQuestions/avd.v1.0.js
index f8b9a5847..7eae6bdb8 100644
--- a/src/config/projectQuestions/avd.v1.0.js
+++ b/src/config/projectQuestions/avd.v1.0.js
@@ -27,11 +27,12 @@ const sections = [
return 'Definition'
},
required: true,
- description: 'Answer just a few questions about your application. You can also provide the needed information in a supporting-document - upload it below or add a link in the notes section.',
+ description: 'Please answer a few basic questions about your project. You can also provide the needed information in a supporting document--add a link in the notes section or upload it below.',
subSections: [
{
id: 'projectName',
required: true,
+ validationError: 'Please provide a name to your project',
fieldName: 'name',
description: '',
title: 'Project Name',
@@ -227,3 +228,101 @@ const sections = [
]
export default sections
+
+export const basicSections = [
+ {
+ id: 'appDefinition',
+ title: '',
+ required: true,
+ description: 'Please answer a few basic questions about your project and, as an option, add links to supporting documents in the “Notes” section. If you have any files to upload, you’ll be able to do so later.',
+ subSections: [
+ {
+ id: 'projectName',
+ required: true,
+ validationError: 'Please provide a name to your project',
+ fieldName: 'name',
+ description: '',
+ title: 'Project Name',
+ type: 'project-name'
+ },
+ {
+ id: 'questions',
+ required: true,
+ hideTitle: true,
+ title: 'Questions',
+ description: '',
+ type: 'questions',
+ questions: [
+ {
+ icon: 'question',
+ required: true,
+ validationError: 'Please let us know the number of screens required',
+ title: 'How many screens do you need designed?',
+ description: 'This is the most popular project size that can get a medium-sized app designed in a breeze',
+ fieldName: 'details.appDefinition.numberScreens',
+ type: 'tiled-radio-group',
+ options: [
+ {value: '1-3', title: 'screens', icon: NumberText, iconOptions: { number: '1-3' }, desc: '5-7 days', price: 5000},
+ {value: '4-8', title: 'screens', icon: NumberText, iconOptions: { number: '4-8' }, desc: '7-10 days', price: 7000},
+ {value: '9-15', title: 'screens', icon: NumberText, iconOptions: { number: '9-15' }, desc: '8-10 days', price: 8500}
+ ]
+ },
+ {
+ icon: 'question',
+ required: true,
+ validationError: 'Please let us know the target device',
+ title: 'Which is your primary device target?',
+ description: 'Select only the device that you need to develop for. \
+ In most cases limiting the scope of your project would result \
+ in better final result. Topcoder recommends to always start \
+ with the mobile phone view and expand to other devices as your \
+ app matures.',
+ fieldName: 'details.appDefinition.primaryTarget',
+ type: 'tiled-radio-group',
+ options: [
+ {value: 'Phone', title: 'Phone', icon: Icons.IconTechOutlineMobile, iconOptions: { fill: '#00000'}, desc: 'iOS, Android, Hybrid'},
+ {value: 'Tablet', title: 'Tablet', icon: Icons.IconTechOutlineTablet, iconOptions: { fill: '#00000'}, desc: 'iOS, Android, Hybrid'},
+ {value: 'Desktop', title: 'Desktop', icon: Icons.IconTechOutlineDesktop, iconOptions: { fill: '#00000'}, desc: 'all OS'},
+ {value: 'Wearable', title: 'Wearable', icon: Icons.IconTechOutlineWatchApple, iconOptions: { fill: '#00000'}, desc: 'Watch OS, Android Wear'}
+ ]
+ },
+ {
+ icon: 'question',
+ required: true,
+ validationError: 'Please provide description',
+ id: 'projectInfo',
+ fieldName: 'description',
+ description: 'Brief Description',
+ title: 'Description',
+ type: 'textbox'
+ },
+ {
+ icon: 'question',
+ required: true,
+ validationError: 'Please let us know the goal of your application',
+ title: 'What is the goal of your application? How will people use it?',
+ description: 'Describe your objectives for creating this application',
+ type: 'textbox',
+ fieldName: 'details.appDefinition.goal.value'
+ },
+ {
+ icon: 'question',
+ required: true,
+ validationError: 'Please let us know users of your application',
+ title: 'Who are the users of your application? ',
+ description: 'Describe the roles and needs of your target users',
+ type: 'textbox',
+ fieldName: 'details.appDefinition.users.value'
+ }
+ ]
+ },
+ {
+ id: 'notes',
+ fieldName: 'details.appDefinition.notes',
+ title: 'Notes',
+ description: 'Add any other important information regarding your project (e.g., links to documents or existing applications, budget or timing constraints)',
+ type: 'notes'
+ }
+ ]
+ }
+]
\ No newline at end of file
diff --git a/src/config/projectQuestions/topcoder.v1.js b/src/config/projectQuestions/topcoder.v1.js
index b4a5056f6..60f686bec 100644
--- a/src/config/projectQuestions/topcoder.v1.js
+++ b/src/config/projectQuestions/topcoder.v1.js
@@ -17,11 +17,12 @@ const sections = [
id: 'appDefinition',
title: 'App Definition',
required: true,
- description: 'Answer just a few questions about your application. You can also provide the needed information in a supporting-document - upload it below or add a link in the notes section.',
+ description: 'Please answer a few basic questions about your project. You can also provide the needed information in a supporting document--add a link in the notes section or upload it below.',
subSections: [
{
id: 'projectName',
required: true,
+ validationError: 'Please provide a name to your project',
fieldName: 'name',
description: '',
title: 'Project Name',
@@ -202,3 +203,68 @@ const sections = [
]
export default sections
+
+export const basicSections = [
+ {
+ id: 'appDefinition',
+ title: '',
+ required: true,
+ description: 'Please answer a few basic questions about your project and, as an option, add links to supporting documents in the “Notes” section. If you have any files to upload, you’ll be able to do so later.',
+ subSections: [
+ {
+ id: 'projectName',
+ required: true,
+ validationError: 'Please provide a name to your project',
+ fieldName: 'name',
+ description: '',
+ title: 'Project Name',
+ type: 'project-name'
+ },
+ {
+ id: 'questions',
+ required: true,
+ hideTitle: true,
+ title: 'Questions',
+ description: '',
+ type: 'questions',
+ questions: [
+ {
+ icon: 'question',
+ required: true,
+ validationError: 'Please provide description',
+ id: 'projectInfo',
+ fieldName: 'description',
+ description: 'Brief Description',
+ title: 'Description',
+ type: 'textbox'
+ },
+ {
+ icon: 'question',
+ required: true,
+ validationError: 'Please let us know the goal of your application',
+ title: 'What is the goal of your application? How will people use it?',
+ description: 'Describe your objectives for creating this application',
+ type: 'textbox',
+ fieldName: 'details.appDefinition.goal.value'
+ },
+ {
+ icon: 'question',
+ required: true,
+ validationError: 'Please let us know users of your application',
+ title: 'Who are the users of your application? ',
+ description: 'Describe the roles and needs of your target users',
+ type: 'textbox',
+ fieldName: 'details.appDefinition.users.value'
+ }
+ ]
+ },
+ {
+ id: 'notes',
+ fieldName: 'details.appDefinition.notes',
+ title: 'Notes',
+ description: 'Add any other important information regarding your project (e.g., links to documents or existing applications, budget or timing constraints)',
+ type: 'notes'
+ }
+ ]
+ }
+]
\ No newline at end of file
diff --git a/src/config/projectQuestions/visual_design.v1.0.js b/src/config/projectQuestions/visual_design.v1.0.js
index 55114c1bb..85a338288 100644
--- a/src/config/projectQuestions/visual_design.v1.0.js
+++ b/src/config/projectQuestions/visual_design.v1.0.js
@@ -28,11 +28,12 @@ const sections = [
},
required: true,
pricePerPage: 1000,
- description: 'Answer just a few questions about your application. You can also provide the needed information in a supporting-document - upload it below or add a link in the notes section.',
+ description: 'Please answer a few basic questions about your project. You can also provide the needed information in a supporting document--add a link in the notes section or upload it below.',
subSections: [
{
id: 'projectName',
required: true,
+ validationError: 'Please provide a name to your project',
fieldName: 'name',
description: '',
title: 'Project Name',
@@ -243,3 +244,95 @@ const sections = [
]
export default sections
+
+
+export const basicSections = [
+ {
+ id: 'appDefinition',
+ title: '',
+ required: true,
+ pricePerPage: 1000,
+ description: 'Please answer a few basic questions about your project and, as an option, add links to supporting documents in the “Notes” section. If you have any files to upload, you’ll be able to do so later.',
+ subSections: [
+ {
+ id: 'projectName',
+ required: true,
+ validationError: 'Please provide a name to your project',
+ fieldName: 'name',
+ description: '',
+ title: 'Project Name',
+ type: 'project-name'
+ },
+ {
+ id: 'questions',
+ required: true,
+ hideTitle: true,
+ title: 'Questions',
+ description: '',
+ type: 'questions',
+ questions: [
+ {
+ icon: 'question',
+ required: true,
+ validationError: 'Please let us know the number of screens required',
+ title: 'How many screens do you need designed?',
+ description: 'This is the most popular project size that can get a medium-sized app designed in a breeze',
+ fieldName: 'details.appDefinition.numberScreens',
+ type: 'tiled-radio-group',
+ options: [
+ {value: '1', title: 'screens', icon: NumberText, iconOptions: { number: '1' }, desc: '3-5 days'},
+ {value: '3', title: 'screens', icon: NumberText, iconOptions: { number: '3' }, desc: '5-10 days'},
+ {value: '5', title: 'screens', icon: NumberText, iconOptions: { number: '5' }, desc: '7-10 days'},
+ {value: '10', title: 'screens', icon: NumberText, iconOptions: { number: '10' }, desc: '10-14 days'}
+ ]
+ },
+ {
+ icon: 'question',
+ required: true,
+ validationError: 'Please let us know the target device',
+ title: 'Which is your primary device target?',
+ description: 'Select only the device that you need to develop for. \
+ In most cases limiting the scope of your project would result \
+ in better final result. Topcoder recommends to always start \
+ with the mobile phone view and expand to other devices as your \
+ app matures.',
+ fieldName: 'details.appDefinition.primaryTarget',
+ type: 'tiled-radio-group',
+ options: [
+ {value: 'Phone', title: 'Phone', icon: Icons.IconTechOutlineMobile, iconOptions: { fill: '#00000'}, desc: 'iOS, Android, Hybrid'},
+ {value: 'Tablet', title: 'Tablet', icon: Icons.IconTechOutlineTablet, iconOptions: { fill: '#00000'}, desc: 'iOS, Android, Hybrid'},
+ {value: 'Desktop', title: 'Desktop', icon: Icons.IconTechOutlineDesktop, iconOptions: { fill: '#00000'}, desc: 'all OS'},
+ {value: 'Wearable', title: 'Wearable', icon: Icons.IconTechOutlineWatchApple, iconOptions: { fill: '#00000'}, desc: 'Watch OS, Android Wear'}
+ ]
+ },
+ {
+ icon: 'question',
+ required: true,
+ validationError: 'Please provide description',
+ id: 'projectInfo',
+ fieldName: 'description',
+ description: 'Brief Description',
+ title: 'Description',
+ type: 'textbox'
+ },
+ {
+ icon: 'question',
+ required: true,
+ validationError: 'Please let us know users of your application',
+ title: 'Who are the users of your application? ',
+ description: 'Describe the roles and needs of your target users',
+ type: 'textbox',
+ fieldName: 'details.appDefinition.users.value'
+ }
+ ]
+ },
+ {
+ id: 'notes',
+ fieldName: 'details.appDefinition.notes',
+ title: 'Notes',
+ description: 'Add any other important information regarding your project (e.g., links to documents or existing applications, budget or timing constraints)',
+ type: 'notes'
+ }
+ ]
+ }
+]
diff --git a/src/config/projectQuestions/wireframes.v1.0.js b/src/config/projectQuestions/wireframes.v1.0.js
index fea0b531f..f8659ba36 100644
--- a/src/config/projectQuestions/wireframes.v1.0.js
+++ b/src/config/projectQuestions/wireframes.v1.0.js
@@ -28,11 +28,12 @@ const sections = [
},
productName: 'Wireframes',
required: true,
- description: 'Answer just a few questions about your application. You can also provide the needed information in a supporting-document - upload it below or add a link in the notes section.',
+ description: 'Please answer a few basic questions about your project. You can also provide the needed information in a supporting document--add a link in the notes section or upload it below.',
subSections: [
{
id: 'projectName',
required: true,
+ validationError: 'Please provide a name to your project',
fieldName: 'name',
description: '',
title: 'Project Name',
@@ -227,3 +228,101 @@ const sections = [
]
export default sections
+
+export const basicSections = [
+ {
+ id: 'appDefinition',
+ title: '',
+ productName: 'Wireframes',
+ required: true,
+ description: 'Please answer a few basic questions about your project and, as an option, add links to supporting documents in the “Notes” section. If you have any files to upload, you’ll be able to do so later.',
+ subSections: [
+ {
+ id: 'projectName',
+ required: true,
+ validationError: 'Please provide a name to your project',
+ fieldName: 'name',
+ description: '',
+ title: 'Project Name',
+ type: 'project-name'
+ },
+ {
+ id: 'questions',
+ required: true,
+ hideTitle: true,
+ title: 'Questions',
+ description: '',
+ type: 'questions',
+ questions: [
+ {
+ icon: 'question',
+ required: true,
+ validationError: 'Please let us know the number of screens required',
+ title: 'How many screens do you need designed?',
+ description: 'This is the most popular project size that can get a medium-sized app designed in a breeze',
+ fieldName: 'details.appDefinition.numberScreens',
+ type: 'tiled-radio-group',
+ options: [
+ {value: '10', title: 'screens', icon: NumberText, iconOptions: { number: '10' }, desc: '7-10 days', price: 5000},
+ {value: '15', title: 'screens', icon: NumberText, iconOptions: { number: '15' }, desc: '10-12 days', price: 7000}
+ ]
+ },
+ {
+ icon: 'question',
+ required: true,
+ validationError: 'Please let us know the target device',
+ title: 'Which is your primary device target?',
+ description: 'Select only the device that you need to develop for. \
+ In most cases limiting the scope of your project would result \
+ in better final result. Topcoder recommends to always start \
+ with the mobile phone view and expand to other devices as your \
+ app matures.',
+ fieldName: 'details.appDefinition.primaryTarget',
+ type: 'tiled-radio-group',
+ options: [
+ {value: 'Phone', title: 'Phone', icon: Icons.IconTechOutlineMobile, iconOptions: { fill: '#00000'}, desc: 'iOS, Android, Hybrid'},
+ {value: 'Tablet', title: 'Tablet', icon: Icons.IconTechOutlineTablet, iconOptions: { fill: '#00000'}, desc: 'iOS, Android, Hybrid'},
+ {value: 'Desktop', title: 'Desktop', icon: Icons.IconTechOutlineDesktop, iconOptions: { fill: '#00000'}, desc: 'all OS'},
+ {value: 'Wearable', title: 'Wearable', icon: Icons.IconTechOutlineWatchApple, iconOptions: { fill: '#00000'}, desc: 'Watch OS, Android Wear'}
+ ]
+ },
+ {
+ icon: 'question',
+ required: true,
+ validationError: 'Please provide description',
+ id: 'projectInfo',
+ fieldName: 'description',
+ description: 'Brief Description',
+ title: 'Description',
+ type: 'textbox'
+ },
+ {
+ icon: 'question',
+ required: true,
+ validationError: 'Please let us know the goal of your application',
+ title: 'What is the goal of your application? How will people use it?',
+ description: 'Describe your objectives for creating this application',
+ type: 'textbox',
+ fieldName: 'details.appDefinition.goal.value'
+ },
+ {
+ icon: 'question',
+ required: true,
+ validationError: 'Please let us know users of your application',
+ title: 'Who are the users of your application? ',
+ description: 'Describe the roles and needs of your target users',
+ type: 'textbox',
+ fieldName: 'details.appDefinition.users.value'
+ }
+ ]
+ },
+ {
+ id: 'notes',
+ fieldName: 'details.appDefinition.notes',
+ title: 'Notes',
+ description: 'Add any other important information regarding your project (e.g., links to documents or existing applications, budget or timing constraints)',
+ type: 'notes'
+ }
+ ]
+ }
+]
\ No newline at end of file
diff --git a/src/config/projectSpecification/typeToSpecification.json b/src/config/projectSpecification/typeToSpecification.json
index b98ef6c59..1269df54f 100644
--- a/src/config/projectSpecification/typeToSpecification.json
+++ b/src/config/projectSpecification/typeToSpecification.json
@@ -2,6 +2,7 @@
"wireframes": "wireframes.v1.0",
"visual_design_concepts": "avd.v1.0",
"visual_design_prod": "avd.v1.0",
+ "infographic": "avd.v1.0",
"generic_design": "topcoder.v1",
"visual_prototype": "app_dev.v1.0",
"website_development": "app_dev.v1.0",
diff --git a/src/config/projectWizard/index.js b/src/config/projectWizard/index.js
index d409cac14..8e1341b27 100644
--- a/src/config/projectWizard/index.js
+++ b/src/config/projectWizard/index.js
@@ -8,57 +8,65 @@ const products = {
Wireframes: {
brief: '10-15 screens',
details: 'Plan and explore the navigation and structure of your app',
- icon: 'project-wireframes',
+ icon: 'product-wireframes',
id: 'wireframes'
},
'App Visual Design - Concepts': {
brief: '1-15 screens',
details: 'Visualize and test your app requirements and ideas',
- icon: 'project-app-visual-design',
- id: 'visual_design_concepts'
+ icon: 'product-app-visual-design',
+ id: 'visual_design_concepts',
+ disabled: true
},
- 'App Visual Design - Production': {
+ 'Visual Design': {
brief: '1-15 screens',
details: 'Create development-ready designs',
- icon: 'project-app-visual-design',
+ icon: 'product-app-visual-design',
id: 'visual_design_prod'
},
+ Infographic: {
+ brief: 'Infographic',
+ details: 'Present your data in an easy-to-understand and interesting way',
+ icon: 'product-infographic',
+ id: 'infographic',
+ disabled: true
+ },
'Other Design': {
brief: 'other designs',
details: 'Get help with other types of design',
- icon: 'project-wireframes',
+ icon: 'product-other-design',
id: 'generic_design'
}
}
},
Development: {
- icon: 'product-code',
+ icon: 'product-software-development',
info: 'Front end prototypes, website and application development, services, and more',
question: 'What do you need to develop?',
id: 'app_dev',
subtypes: {
- Prototype: {
+ 'Front-end Prototype': {
brief: '3-20 screens',
- details: 'Translate designs to an HTML/CSS/JavaScript prototype',
- icon: 'project-prototype-demo',
+ details: 'Translate designs to a web (HTML/CSS/JavaScript) or mobile prototype',
+ icon: 'product-front-end-prototype',
id: 'visual_prototype'
},
- 'Website Development': {
+ Website: {
brief: 'Websites',
details: 'Build responsive or regular websites',
- icon: 'project-prototype-technical',
+ icon: 'product-website',
id: 'website_development'
},
- 'Application Development': {
+ App: {
brief: 'Apps',
details: 'Build apps for mobile, web, or wearables',
- icon: 'project-development-code',
+ icon: 'product-app',
id: 'application_development'
},
- 'Other Development': {
+ 'Software Development': {
brief: 'Tasks or adhoc',
details: 'Get help with any part of your development cycle',
- icon: 'project-development-ideation',
+ icon: 'product-software-development',
id: 'generic_dev'
}
}
@@ -82,3 +90,20 @@ export function findProduct(product) {
}
}
}
+
+export function findProductCategory(product) {
+ if (product === 'generic_dev') {
+ return 'Development'
+ }
+ if (product === 'generic_design') {
+ return 'Design'
+ }
+ for(const pType in products) {
+ for(const prd in products[pType].subtypes) {
+ const subType = products[pType].subtypes[prd]
+ if (subType.id === product && !subType.disabled) {
+ return pType
+ }
+ }
+ }
+}
diff --git a/src/projects/ProjectLayout.jsx b/src/projects/ProjectLayout.jsx
index 84999507d..9bef72401 100644
--- a/src/projects/ProjectLayout.jsx
+++ b/src/projects/ProjectLayout.jsx
@@ -8,15 +8,15 @@ class ProjectViewLayout extends Component {
}
render() {
- const {topbar, main} = this.props
+ const { main } = this.props
return (
+ {} }//dummy
+ resetFeatures={ () => {} }//dummy
+ // TODO we shoudl not update the props (section is coming from props)
+ // further, it is not used for this component as we are not rendering spec screen section here
+ validate={() => {}}//dummy
+ />
+