-
Notifications
You must be signed in to change notification settings - Fork 140
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Create project wizard #2004
Comments
Short answer: Yes, @maxceem. It would be kind of flat list now but it is not exactly a flat list. TL;DR Till date we are using the notion of project category and sub types (essentially products) and are keeping there mapping in src/config/projectWizard/index.js. However, as you said, we are thinking to move that config to database so that in future we can allow dynamic addition of new products without requiring the application to be deployed. And we are introducing the notion of project templates instead of category (we can still have categories for the projects though) which specifies all products that are needed to achieve the requirements of that type of project e.g. now a website template would contain multiple products like wireframes,visual_design_prod and website_development. So, the first screen in create project wizard would be the list of the project templates and then we would assume the products required for that project template and automatically add them in the project. So, now second screen would not ask the sub types and instead would directly take user to the creation form which would just host project's scope (which is again some refactoring we are doing to separate out the common questions of a project from specific product related questions) questions.
Now to achieve all this until those endpoints are ready, we planning to change the way we are storing the mapping of project category to subtypes. Now the new src/config/projectWizard/index.js would like this: [{
id: 1,
name: 'website',
key: 'website',
category: 'website/dev',
phases: [
{
duration: 10,
products: [
{
id: 22,
productKey: 'wireframes',
},
{
id: 21,
productKey: 'visual_design_prod'
},
{
id: 23,
productKey: 'website_development'
}
]
}
]
},
{
id: 2,
name: 'Chatbot',
key: 'chatbot',
category: 'chatbot',
phases: [
{
duration: 10,
products: [
{
id: 22,
productKey: 'wireframes',
},
{
id: 21,
productKey: 'visual_design_prod'
},
{
id: 23,
productKey: 'generic_chatbot'
}
]
}
]
},
{
id: 3,
name: 'Watson Chatbot',
key: 'watson_chatbot',
category: 'chatbot',
scope: 'watson_chatbot',
phases: [
{
duration: 10,
products: [
{
id: 22,
productKey: 'wireframes',
},
{
id: 21,
productKey: 'visual_design_prod'
},
{
id: 23,
productKey: 'watson_chatbot'
}
]
}
]
}] Although, I think we don't need backward compatibility for this file because it is only required by project creation wizard which is going to replaced and would affect only new projects, we might need to create a new file instead of updating existing for backward compatibility. @maxceem it would be great if you can create redux actions/reducers for retrieving these project and product templates in a way which allows us to just replace the file reading logic with HTTP call to those new endpoints in actions. |
@maxceem hope you got your answer. @vikasrohit thanks for summing it all here nicely for everyone's clarity and agree with redux action/reducers flow, have conveyed the same to maxceem with tasks specs only and he has started working that way. |
Thanks, @vikasrohit for a very detailed answer. Yes, that's exactly what we came to with @RishiRajSahu. Question about estimationFew projects have time estimation during creation: How should it be handled now?
|
@maxceem your understanding is correct. product_templates should contain the price per product and we can aggregate all product's estimates to show total estimate here. |
@vikasrohit thanks. How will it be stored in |
Each question, which affects the price estimate of a product, in the product_template.template field, contains the for wireframes {value: '10', title: 'screens', icon: NumberText, iconOptions: { number: '10' }, desc: '7-10 days', quoteUp: 0, minTimeUp : 0, maxTimeUp: 0},
{value: '15', title: 'screens', icon: NumberText, iconOptions: { number: '15' }, desc: '10-12 days', quoteUp: 2000, minTimeUp: 3, maxTimeUp: 2} So, we have to aggregate(we are doing this in src/config/projectWizard/index.js#getProductEstimate) those questions' price for each product and then aggregate all product's prices to come up with project's estimate. |
@vikasrohit thanks, that's clear! |
@maxceem yes your are correct, it maps to the |
|
@maxceem I guess the feature got lost(we removed the 'change project type' button intentionally though ) during many code iterations. It is not a frequent use case and we can safely skip this for now, if handling it is tricky again. If it is kind of minor bug, we can handle it in current scope, otherwise, we can create new issue to tackle it further. On a different note, I was discussing with Rishi, and we found that we might need to support product selection screen in create project wizard. This would be needed for a |
|
Awesome. Thanks @maxceem |
Anything else we need to do here @RishiRajSahu |
Its done. closing. |
Currently, during the creation of the project some projects have subtypes to choose:
If we select QA we will have to choose subtype:
In the new approach we will get the list of project types from DB. As I understand we will only have a flat list of projects without subtypes.
For now we have 23 subtypes should they all be displayed in one flat list?
cc @RishiRajSahu
The text was updated successfully, but these errors were encountered: