Skip to content

Commit 921f048

Browse files
committed
fixed flows for 3 new flows enterprise mobile, caas, topgear
1 parent 1fbd8d9 commit 921f048

File tree

5 files changed

+1348
-2
lines changed

5 files changed

+1348
-2
lines changed
Lines changed: 289 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,289 @@
1+
// import NumberText from '../../components/NumberText/NumberText'
2+
import { isFileRequired, findTitle, findFilesSectionTitle } from '../projectWizard'
3+
4+
const sections = [
5+
{
6+
id: 'appDefinition',
7+
title: findTitle,
8+
required: true,
9+
description: 'Welcome to your own private Gig Crowd',
10+
subSections: [
11+
{
12+
id: 'projectName',
13+
required: true,
14+
validationError: 'Please provide a name to your project',
15+
fieldName: 'name',
16+
description: '',
17+
title: 'Project Name',
18+
type: 'project-name'
19+
},
20+
{
21+
id: 'questions',
22+
required: true,
23+
hideTitle: true,
24+
title: 'Questions',
25+
description: 'Topcoder will scan your application using our properiatary formula\
26+
for security standards. To rate your application we combine state of the art \
27+
static code analysis, security scanning, export code review and other techniques \
28+
to produce a Security Health Check scorecard.',
29+
type: 'questions',
30+
questions: [
31+
{
32+
id: 'projectInfo',
33+
fieldName: 'description',
34+
// required is not needed if we specifiy validations
35+
// required: true,
36+
validations: 'isRequired,minLength:160',
37+
validationErrors: {
38+
isRequired: 'Please describe your application.',
39+
minLength: 'Please enter at least 160 characters'
40+
},
41+
description: 'Please describe your application.',
42+
title: 'Description',
43+
type: 'textbox'
44+
},
45+
{
46+
icon: 'question',
47+
title: 'What is the maximum level of acceptable risk for this application?',
48+
description: 'Based on the features and data, how secure do you feel this application should be?',
49+
fieldName: 'details.security.howSecure',
50+
type: 'slide-radiogroup',
51+
options: [
52+
{ value: 'low-risk', title: 'Low Risk'},
53+
{ value: 'medium-risk', title: 'Medium Risk' },
54+
{ value: 'high-risk', title: 'High Risk' },
55+
{ value: 'custom', title: 'Custom' }
56+
],
57+
required: true,
58+
validationError: 'Please select security rating'
59+
},
60+
{
61+
icon: 'question',
62+
title: 'Do you require additional documentation for workers?',
63+
description: '',
64+
fieldName: 'details.caas.docs',
65+
type: 'radio-group',
66+
options: [
67+
{value: 'topcoder', label: 'Topcoder NDA'},
68+
{value: 'custom', label: 'Custom NDA'},
69+
{value: 'custom', label: 'Background Check'},
70+
{value: 'custom', label: 'Other'}
71+
]
72+
},
73+
{
74+
icon: 'question',
75+
title: 'If you chose other, please detail your baseline testing standard',
76+
description: '(if applicable)',
77+
type: 'textbox',
78+
fieldName: 'details.security.baselineOther',
79+
required: false
80+
}
81+
82+
]
83+
},
84+
{
85+
id: 'notes',
86+
fieldName: 'details.appDefinition.notes',
87+
title: 'Additional Notes',
88+
description: 'Please detail any other additional information. After \
89+
completing this form, you\'ll be able to add additional information about \
90+
your code base',
91+
type: 'notes'
92+
}
93+
94+
95+
]
96+
},
97+
{
98+
id: 'optionals',
99+
required: false,
100+
title: 'Code base',
101+
description: 'Please provide us access to your codebase below or contact \
102+
Topcoder through your dashboard.',
103+
subSections: [
104+
{
105+
id: 'additional',
106+
required: false,
107+
title: 'Codebase questions',
108+
description: '',
109+
type: 'questions',
110+
questions: [
111+
{
112+
icon: 'question',
113+
fieldName: 'details.security.codeURL',
114+
description: '(if you prefer you can also upload your code below)',
115+
title: 'Please provide a URL to your code base repository',
116+
type: 'textbox'
117+
118+
},
119+
{
120+
icon: 'question',
121+
title: 'Please provide Topcoder with any additional information about \
122+
accessing your code base',
123+
description: '',
124+
fieldName: 'details.security.additionalInfo',
125+
type: 'textbox'
126+
}
127+
]
128+
},
129+
{
130+
id: 'files',
131+
required: isFileRequired,
132+
title: findFilesSectionTitle,
133+
description: '',
134+
type: 'files',
135+
fieldName: 'attachments'
136+
}
137+
138+
]
139+
}
140+
141+
142+
]
143+
144+
export default sections
145+
146+
export const basicSections = [
147+
{
148+
id: 'appDefinition',
149+
title: '',
150+
required: true,
151+
description: 'Create your own private Gig Workforce with Topcoder by answering \
152+
a few simple questions',
153+
subSections: [
154+
{
155+
id: 'projectName',
156+
required: true,
157+
validationError: 'Please provide a name to your project',
158+
fieldName: 'name',
159+
title: 'Project Name',
160+
description: '',
161+
type: 'project-name'
162+
},
163+
{
164+
id: 'questions',
165+
required: true,
166+
hideTitle: true,
167+
title: 'Questions',
168+
description: '',
169+
type: 'questions',
170+
questions: [
171+
{
172+
id: 'projectInfo',
173+
fieldName: 'description',
174+
// required is not needed if we specifiy validations
175+
// required: true,
176+
validations: 'isRequired,minLength:160',
177+
validationErrors: {
178+
isRequired: 'Please describe your application.',
179+
minLength: 'Please enter at least 160 characters'
180+
},
181+
description: 'Brief describe your application',
182+
title: 'Description',
183+
type: 'textbox'
184+
},
185+
{
186+
icon: 'question',
187+
title: 'How many full time resources do you need?',
188+
description: '',
189+
fieldName: 'details.resources.total',
190+
type: 'textbox',
191+
required: true,
192+
validationError: 'Please enter number of resources'
193+
},
194+
{
195+
icon: 'question',
196+
title: 'How many months do you need the resource for',
197+
description: '',
198+
fieldName: 'details.resources.months',
199+
type: 'slide-radiogroup',
200+
options: [
201+
{value: '1', title: '1'},
202+
{value: '2', title: '2'},
203+
{value: '3', title: '3'},
204+
{value: '4', title: '4'},
205+
{value: '5', title: '5'},
206+
{value: '6', title: '6'},
207+
{value: '7', title: '7'},
208+
{value: '8', title: '8'},
209+
{value: '9', title: '9'},
210+
{value: '10', title: '10'},
211+
{value: '11', title: '11'},
212+
{value: '12', title: '12'}
213+
],
214+
required: true,
215+
validationError: 'Please select one'
216+
},
217+
{
218+
icon: 'question',
219+
title: 'What skills do you need?',
220+
description: '',
221+
fieldName: 'details.resources.skills',
222+
type: 'checkbox-group',
223+
options: [
224+
{ value: 'ios', label:'iOS' },
225+
{ value: 'data-sci', label:'Data Science' },
226+
{ value: 'android', label:'Android' },
227+
{ value: 'java', label:'java' },
228+
{ value: 'dotnet', label:'.NET' },
229+
{ value: 'node', label:'NodeJS' },
230+
{ value: 'javascript', label:'Javascript' },
231+
{ value: 'react', label:'ReactJS' },
232+
{ value: 'angular', label:'AngularJS' }
233+
]
234+
},
235+
{
236+
icon: 'question',
237+
title: 'What is the typical hourly rate you are paying?',
238+
description: '',
239+
fieldName: 'details.resources.hourlyrate',
240+
type: 'slide-radiogroup',
241+
options: [
242+
{ value: 'under30', title:'Under $30' },
243+
{ value: 'under60', title:'Under $60' },
244+
{ value: 'under80', title:'Under $80' },
245+
{ value: 'under100', title:'Under $100' },
246+
{ value: 'under125', title:'Under $125' },
247+
{ value: 'under150', title:'Under $150' },
248+
{ value: 'over150', title:'Over $150' },
249+
]
250+
},
251+
{
252+
icon: 'question',
253+
title: 'What language would you like to interact with the team?',
254+
description: '',
255+
fieldName: 'details.resources.hourlyrate',
256+
type: 'slide-radiogroup',
257+
options: [
258+
{ value: 'english', title:'English' },
259+
{ value: 'spanish', title:'Spanish' },
260+
{ value: 'german', title:'German' },
261+
{ value: 'japanese', title:'Japanese' },
262+
{ value: 'other', title:'Other' }
263+
]
264+
},
265+
{
266+
fieldName: 'details.resources.tooling',
267+
// required is not needed if we specifiy validations
268+
// required: true,
269+
description: 'Please List all project tools you normally interact with',
270+
title: 'Project Tools you utilize for interacting with developers',
271+
type: 'textbox'
272+
},
273+
]
274+
},
275+
{
276+
id: 'notes',
277+
fieldName: 'details.appDefinition.notes',
278+
title: 'Additional Notes',
279+
description: 'Please detail any other additional information. After \
280+
completing this form, you\'ll be able to add additional information about \
281+
your code base',
282+
type: 'notes'
283+
}
284+
285+
]
286+
}
287+
288+
289+
]

0 commit comments

Comments
 (0)