Key Information

Register
Submit
The challenge is finished.

Challenge Overview

1.0 Overview

This assembly will be creating the solution to build the structure of the PxQuote SharePoint application. The structure needed to be setup will involve creating customized SharePoint lists, and programmatically populating these lists based off of an Excel file. The solution to adhere to all Praxair standards as stated in this specification. All development will be conducted on a provisioned VM from TopCoder.

* Note: When doing research on SharePoint functions and properties be sure to select SharePoint 2010 - NOT SharePoint 2013.

2.0 Challenge

2.1 Solution Setup

The first part of the challenge will be creating a new SharePoint Visual Studio 2012 solution. The solution should follow these details:
- Be a blank SharePoint project solution
- The solution should be named Praxair.SharePoint.Application.PxQuote
- Have a Web level feature receiver that is named Praxair.SharePoint.Application.PxQuoteSetup
- The feature should be marked as hidden

2.2 List Creation

Once the feature is created, then the following lists need to be created:

List Name: PxQuote Survey
List Type: GenericList
Fields:
- QuoteID, Text, Required
- Status, Choice {Draft, Submitted, Approved}, Required, Default: Draft;  
- Company, Text, Required
- Street Address, Text, Required
- City, Text, Required
- State, Choice of US states{Alaska, Alabama, …}, Required
- PostalCode, Text, Required;  
- Phone, Text, Required
- RepresentativeEmail, User, Required 
- CustomerFirstName, Text, Required
- CustomerLastName, Text, Required
- CustomerTitle, Text, Required
- CustomerBudget, Currency
- BudgetApproval, Choice {Approved, Budgetary }
- CustomerTimeframe, Choice { 1st Quarter, 2nd Quarter, 3rd Quarter, 4th Quarter, Budgetary }
- CuttingMachineInstalledBy, Choice { Praxair, Sector }
- CustomerType, Choice { Current Customer, Competitive Account }
- AccountNumber, Text
- CuttingMachineOEM, Text
- DistributorName, Text
- PraxairSellGas, Boolean
- PraxairSellHardGoods, Boolean
- CustomerMarket, Choice { Shipyard, Bridge building, Steel service center, HVAC, Heavy equipment mfg, General fabricator,  Wind tower, Mining, Pressure vessel, Transportation, Other  }
- CustomerMarketOther, Text
- CustomerExistingCuttingMachine, Boolean
- ExistingMachineSize, Text
- ExistingMachineModel, Text
- ExistingMachineType, Text
- ExistingMachinePurpose, Choice { No answer, Looking to replace, Looking to add }
- SinglePlateWidth, Integer
- SinglePlateLength, Integer
- PlateSideBySide, Integer
- PlateEndToEnd, Integer
- RailStyle, Choice { Floor Mount, Elevated/Pedestal Mount, Unitized Frame }
- EndTruckOption, Choice { Standard End Truck, Tucked End Truck - one side, Dropped End Truck - one side }
- OxyCarbonPercentage, Integer
- OxyCarbonMinThick, Choice { 16 ga,18 ga,1/32",1/16",1/8",3/16",1/4",3/8",1/2",5/8",7/8",1",1 1/4",1 1/2",1 3/4",2",2 1/4",2 1/2",2 3/4",3",3 1/4",3 1/2",4",5",6",7",8",9",10",11",12",13",14",15",16" }
- OxyCarbonMaxThick, Choice { 16 ga,18 ga,1/32",1/16",1/8",3/16",1/4",3/8",1/2",5/8",7/8",1",1 1/4",1 1/2",1 3/4",2",2 1/4",2 1/2",2 3/4",3",3 1/4",3 1/2",4",5",6",7",8",9",10",11",12",13",14",15",16" }
- OxyCarbonMainThick, Choice { 16 ga,18 ga,1/32",1/16",1/8",3/16",1/4",3/8",1/2",5/8",7/8",1",1 1/4",1 1/2",1 3/4",2",2 1/4",2 1/2",2 3/4",3",3 1/4",3 1/2",4",5",6",7",8",9",10",11",12",13",14",15",16" }
- PlasmaCarbonPercentage, Integer
- PlasmaCarbonMinThick, Choice { 16 ga,18 ga,1/32",1/16",1/8",3/16",1/4",3/8",1/2",5/8",7/8",1",1 1/4",1 1/2",1 3/4",2",2 1/4",2 1/2",2 3/4",3",3 1/4",3 1/2",4",5",6",7",8",9",10",11",12",13",14",15",16" }
- PlasmaCarbonMaxThick, Choice { 16 ga,18 ga,1/32",1/16",1/8",3/16",1/4",3/8",1/2",5/8",7/8",1",1 1/4",1 1/2",1 3/4",2",2 1/4",2 1/2",2 3/4",3",3 1/4",3 1/2",4",5",6",7",8",9",10",11",12",13",14",15",16" }
- PlasmaCarbonMainThick, Choice { 16 ga,18 ga,1/32",1/16",1/8",3/16",1/4",3/8",1/2",5/8",7/8",1",1 1/4",1 1/2",1 3/4",2",2 1/4",2 1/2",2 3/4",3",3 1/4",3 1/2",4",5",6",7",8",9",10",11",12",13",14",15",16" }
- PlasmaSteelPercentage, Integer
- PlasmaSteelMinThick, Choice { 16 ga,18 ga,1/32",1/16",1/8",3/16",1/4",3/8",1/2",5/8",7/8",1",1 1/4",1 1/2",1 3/4",2",2 1/4",2 1/2",2 3/4",3",3 1/4",3 1/2",4",5",6",7",8",9",10",11",12",13",14",15",16" }
- PlasmaSteelMaxThick, Choice { 16 ga,18 ga,1/32",1/16",1/8",3/16",1/4",3/8",1/2",5/8",7/8",1",1 1/4",1 1/2",1 3/4",2",2 1/4",2 1/2",2 3/4",3",3 1/4",3 1/2",4",5",6",7",8",9",10",11",12",13",14",15",16" }
- PlasmaSteelMainThick, Choice { 16 ga,18 ga,1/32",1/16",1/8",3/16",1/4",3/8",1/2",5/8",7/8",1",1 1/4",1 1/2",1 3/4",2",2 1/4",2 1/2",2 3/4",3",3 1/4",3 1/2",4",5",6",7",8",9",10",11",12",13",14",15",16" }
- PlasmaAlumPercentage, Integer
- PlasmaAlumMinThick, Choice { 16 ga,18 ga,1/32",1/16",1/8",3/16",1/4",3/8",1/2",5/8",7/8",1",1 1/4",1 1/2",1 3/4",2",2 1/4",2 1/2",2 3/4",3",3 1/4",3 1/2",4",5",6",7",8",9",10",11",12",13",14",15",16" }
- PlasmaAlumMaxThick, Choice { 16 ga,18 ga,1/32",1/16",1/8",3/16",1/4",3/8",1/2",5/8",7/8",1",1 1/4",1 1/2",1 3/4",2",2 1/4",2 1/2",2 3/4",3",3 1/4",3 1/2",4",5",6",7",8",9",10",11",12",13",14",15",16" }
- PlasmaAlumMainThick, Choice { 16 ga,18 ga,1/32",1/16",1/8",3/16",1/4",3/8",1/2",5/8",7/8",1",1 1/4",1 1/2",1 3/4",2",2 1/4",2 1/2",2 3/4",3",3 1/4",3 1/2",4",5",6",7",8",9",10",11",12",13",14",15",16" }
- PlasmaOtherPercentage, Integer
- PlasmaOtherMaxThick, Choices { 16 ga,18 ga, 1/32",1/16",1/8",3/16",1/4",3/8",1/2",5/8",7/8",1",1 1/4",1 1/2",1 3/4",2",2 1/4",2 1/2",2 3/4",3",3 1/4",3 1/2",4",5",6",7",8",9",10",11",12",13",14",15",16" }
- PlasmaOtherMaterials, Text
- PlasmaTorchStyleStandard, Integer
- PlasmaTorchStyleStraightBevel, Integer
- PlasmaTorchStyleContourBevel, Integer
- OxyTorchStyleStandard, Integer
- OxyTorchStyleStraightBevel, Integer
- OxyTorchStyleContourBevel, Integer
- DrillStation, Boolean
- DrillStationNumber, Choice {0,1,2}
- DrillMinHole, Choice { 1/4",3/8",1/2",5/8",7/8",1",1 1/4",1 1/2",1 3/4",2",2 1/4",2 1/2",2 3/4",3",3 1/4",3 1/2",3 3/4",4",5",6" }
- DrillMaxHole, Choice { 1/4",3/8",1/2",5/8",7/8",1",1 1/4",1 1/2",1 3/4",2",2 1/4",2 1/2",2 3/4",3",3 1/4",3 1/2",3 3/4",4",5",6" }
- DrillMaxThick, Choice { 1/4",3/8",1/2",5/8",7/8",1",1 1/4",1 1/2",1 3/4",2",2 1/4",2 1/2",2 3/4",3",3 1/4",3 1/2",3 3/4",4",5",6" }
- DrillAlloyType, Choice {Carbon Steel, T1 or QT Plate, Stainless Steel, Aluminium}
- DrillHoleAccuracy, Choice { +/- .020", +/- .030", +/- .040" }
- PlasmaType, Choice { High-definition Plasma, Conventional Oxygen Plasma, Conventional Air Plasma }
- CNCSelection, Choice { Bosch, Burny 10 LCD, Burny Phantom ST, Hyperthem Edge Pro, Burny XL }
- PlasmaHeight, Choice { Burny Inova, Hyperthem Sensor THC Lifter, Arc Glide Control, Bosch }
- PlasmaEquipPowerModel, Text
- PlasmaEquipMaxProModel, Text
- PlasmaEquipHPRModel, Text
- PlasmaEquipOtherModel, Text
- PlateMarkingType, Choice { None, Plasma, Arc Writer, Scribe, Punch, Paint }
- OxyFuelApparatus, Choice { None, Harris (preferred vendor), Other }
- OxyFuelApparatusOther, Text
- OxyFuelSplitter, Boolean
- OxyFuelQty, Integer
- FuelGas, Choice { None, Propylene, Propane, Natural Gas, Starflame C (Chemtane), Other }
- FuelGasOther, Text
- TableRequirement, Choice { Water table (Static), Water table (Adjustable), Downdraft Table, Existing, None }
- TableRequirementExistingType, Text
- TableRequirementExistingSize, Text
- CustomerCAD, Boolean
- CustomerNestingSoftware, Choice { No, Fastcam, Lantek, MTC, Sigma Nest, Other }
- CustomerNestingSoftwareOther, Text
- NestingSoftware, Choice { None required, Basic nesting software, Advanced nesting software }
- AdditionalComments, Multi-line


List Name: PxQuote Build Sheet
List Type: GenericList
Fields:
- QuoteID, Lookup: PxQuote Survey List
- Machine, Choice { PRS100, PRS150 HD, PRS175 HD, 200, 400 HD, 500 HD, 800 HD }, Required
- Picture, URL
- Document, URL
- RequiredItems, Integer
- OptionalItems, Integer
- UOM, Text
- Component, Text
- STIList, Currency
- ExtListPrice, Currency
- Discount, Integer, Format: Percent
- InstallType, Multi-Choice, Choices { Praxair Install, Sector Install }
- PraxairDistNet, Currency
- PraxairExtNetPrice, Currency
- SectorDistNet, Currency
- SectorExtNetPrice, Currency
- QuoteDocument, Lookup, PxQuote Documents
- Attachments, (Default Field)

List Name: PxQuote Documents
List Type: DocumentLibrary
- Revision, Text
- Status, Choice { Pending, Approved }
- PraxairRepresentativeEmail, User

2.3 List Population

Most of the lists will be populated through a custom control created in another assembly contest. However, one list needs to be populated as part of the setup Assembly which is the PxQuote Build Sheet. Your task is to create a console application (or windows form) that will take in the attached Microsoft Excel file and populate the PxQuote Build Sheet list with the values (leaving the QuoteID as NULL). Note that the items with a NULL QuoteID should be cleared if the console application is run again, and each sheet should append to the list with a different Machine Type (corresponding to the sheet name) with the QuoteID as NULL.

This will provide the system with seed data to use for the custom control. Note that the Excel file currently has links to the Picture and Description document. These links should be transferred to the URL fields: Picture and Document. All other fields should map easily to the columns in the Excel file. The Excel file has a tab for each Machine type, and that will need to be handled by the console application. 

There are many free .NET plugins out there available to read Excel files. Note that having Microsoft Excel installed on the server to read the files is not acceptable. The console application should be able to read the files without the full version of Microsoft Excel being installed.

3.0 Guidelines

Note that all development must adhere to Praxair's SharePoint development guidelines. Judges will be grading based off of the attached guidelines for code quality and standard. Please review the attached document and ask any questions in the forum.

4.0 Virtual Machine

A virtual machine will be issued for each competitor that is larger than the default virtual machines. These large virtual machines cost significantly more, so each competitor will be required to post a status update daily on their progress. Even if zero progress has been made, an update must be published in order to keep an active participant count.



Final Submission Guidelines

Please review the attached Praxair SharePoint Development Standards

REVIEW STYLE:

Final Review:

Community Review Board

Approval:

User Sign-Off

SHARE:

ID: 30042841