We’re hiring a developer to create only the beginning of an application. If this milestone is completed well, there will be more work immediately. The requirements are as follows:
Create a program where objects can be dragged onto a canvas, connected by arrows to indicate relationships, and edited from a bound property editing panel. Saving/opening projects will also be required for this first milestone.
It is a requirement that the application is written in C# (4.0) and WPF.
It is a requirement to know and use LINQ, and the MVVM design pattern.
It is preferred to use Visual Studio 2010.
The program should have error handlers throughout, but atleast one main one for the application in the event of a large failure.
Once you have completed this, I ask that you provide a compiled .exe to view, and the project files (to open in Visual Studio 2010), inside a zipped file.
The following list shows the value and assessment criteria that will be used for the project to determine whether you will be selected to develop this application on a long term basis:
• 45% Code quality
o 10% code efficiency
o 5% useful variable names
o 5% use of LINQ
o 5% folder/namespace structure
o 5% use of MVVM
o 10% commenting
o 5% error handling
• 25% Application Features
o 5% Appearance
o 10% Drag and drop creating of objects (units) and relationships (arrows)
o 5% Selected item properties binding (editing through properties panel)
o 5% Open/save project
• 30% Other
o 10% communication (English, updates, demonstrations, etc)
o 10% cost (I will pay for quality, but cost is still important)
o 10% time taken compared to promised/estimated (I wait for quality, but accuracy on time estimations is important)
IMPORTANT: Read through this ENTIRE POST before replying to ensure you know what I want, and that you can do this. Corresponding mockups are attached for each step.
1. Once the program is opened, you will see a menu at the top of the main window with 4 buttons: New, Open, Save and Close. Only “New” and “Open” will be available as there is no project open.
2. When you click “New” a blank project will open showing you the second figure. A left panel shows units available (one), a right panel shows selected unit properties (unavailable as no unit selected), and a centre panel where objects can be placed.
3. Dragging a unit from the left panel to the centre panel, leaves the unit there and now displays the properties of that unit in the right panel.
4. Properties of the selected unit (Name and Size) can be edited directly by simply changing the values in the right panel (with values saved by changing focus from the textbox).
5. A second and third unit are added now.
6. Hovering over the first unit left border, a link/node is shown indicating a path can be made from here.
7. By clicking the node and dragging to another object, another node of the second object is visible which allows the connection to be made.
8. Releasing the mouse button leaves no nodes visible but a connection between the two is now obvious.
9. Another connection can be made from the second to the third object in a similar fashion.
10. Moving the units (for example Unit1) should still show the connection (regardless of position).
The project can be saved to a file, recording units, connections, and relative positions in the canvas.
When the close button is clicked, the project returns to the first screen, closing/destroying the open project.
If a project is already open when another is opened, the first will be closed/destroyed (only one project open at a time).
Please ask if you require any clarification on any step so that you do not look like you ignored the instructions.
VERY IMPORTANT: To separate you from the spammers, please write: “I AM REAL” as the first line of your bid. We will delete bids that do not start with this phrase. Thank you for being one who does.