Find Jobs
Hire Freelancers

GUI Graph Editor With XML Input/Output

$30-250 USD

Completed
Posted about 10 years ago

$30-250 USD

Paid on delivery
Description: The goal is to build a linux GUI-based “graph editing” tool that allows for the graphical representation of custom software configuration files. The software that must be built must function like Microsoft’s GraphEdit for multimedia codecs : [login to view URL] The graphs shown in the GUI will be generated from XML configuration files using boost property trees that will be provided to the program. These XML files are loaded into the current software’s executable framework as configuration files and contains node and connectivity data. The current structure of the XML files consists of 3 sections : <resources> - this is where libraries which contain desired nodes are loaded <nodes> - a section where each node is called and any parameters related to it are set. In the GUI, each node is represented by a rectangular box. <nets> - this contains the “pin connections” from one node to the next. (the URL above shows a screenshot with an example of input/output pins) In short, this graphical program will convert information from a provided xml configuration file’s boost property tree to an editable visual graph and allow the user to add/delete nodes and add/delete connections from nodes. Then after editing the graph convert the data back to the configuration file format. While in the editor each node will be selectable and clickable and have a function (a callback) that is triggered when a node is being clicked and another function (callback) that is triggered when a node is being selected. GUI Software Project Deliverables : The deliverables of this project will consist in : • A GUI based on Qt, WxWidgets or a similar GUI toolkit that we must approve of. The Tcl/Tk toolkit is not allowed. It must have contain a toolbar with buttons and a menu that performs the following functions necessary: 1. Reads the tree(structure) of a provided XML configuration file 2. Converts the XML input into a graph and allow saving the modified graph back to an XML with an identical format as the input XML. 3. Automatically draws the detected nodes,pins,and their interconnections (from the opened XML config file). 4. Generate a clickable box for each node, a clickable pin wherever pins are present, and the appropriate number of pins per node (specified from the opened XML file), as well as arrows going from pin to pin as described in the XML file. (Just like Microsoft’s GraphEdit) The user MUST be able to add or delete nodes, add or delete connections, and save the result. 5. Contain a function,attached to a clickable button that can write out the resulting configuration XML file. • The XML file parser must run on Ubuntu Linux v. 13.10. It must be written in either C++ (GCC compliant) and be based on the attached C++ parser code. • The program must NOT crash, instead it must be able to load and show the data that it does find, and give an error for whatever it is unable to process or find. • A stand-alone executable must be delivered that has the ability to write out the graph file. IMPORTANT POINTS: -The program might benefit from using the Networkx graph library. -The program can use QT/WxWidgets/PyQt/PyWxWidgets or something comparable. It absolutely cannot use Tcl/Tk. -The program must have a menu and icon toolbar with the following functions attached to buttons and menu items: 1) to load a chosen config XML file 2) to save the file after modification in the config XML format 3)Node options: to duplicate an node , delete node, adjust pins and add connection(between selected nodes) and delete connection(between selected nodes), and a configuration dialog for the node. The program must not crash but display an error message upon failure. The code should be reasonably documented. ****The GUI must be completed by Thursday, March 27 2014 at 8 p.m. Eastern US time.**** ***You will be provided with Sample XML files Once the Project is Awarded to You***
Project ID: 5719859

About the project

3 proposals
Remote project
Active 10 yrs ago

Looking to make some money?

Benefits of bidding on Freelancer

Set your budget and timeframe
Get paid for your work
Outline your proposal
It's free to sign up and bid on jobs
Awarded to:
User Avatar
Good morning ! I would love to develop in Qt the editor you're requiring. I have extensive experience on such projects, for instance I developed a Qt based rendering for .dot files - Graphviz - with interactive features. Best regards ing. Carlo Capelli
$244 USD in 1 day
5.0 (11 reviews)
5.2
5.2
3 freelancers are bidding on average $665 USD for this job
User Avatar
Ready, sir! Ready, sir! Ready, sir! Ready, sir! Ready, sir! Ready, sir! Ready, sir! Ready, sir! Ready, sir! Ready, sir! Ready, sir! Ready, sir! Ready, sir! Ready, sir! Ready, sir! Ready, sir! Ready, sir! Ready, sir! Ready, sir!
$250 USD in 3 days
4.9 (69 reviews)
6.7
6.7
User Avatar
Can help... I am an Expert... Lets Start! Please start a Discussion with me and we can get started from there... Please check the past projects I have handled and check my reviews for what employers have to say about my work... Can start right now...
$1,500 USD in 21 days
5.0 (9 reviews)
5.3
5.3

About the client

Flag of UNITED STATES
Winter Park, United States
4.9
4
Payment method verified
Member since Mar 25, 2014

Client Verification

Thanks! We’ve emailed you a link to claim your free credit.
Something went wrong while sending your email. Please try again.
Registered Users Total Jobs Posted
Freelancer ® is a registered Trademark of Freelancer Technology Pty Limited (ACN 142 189 759)
Copyright © 2024 Freelancer Technology Pty Limited (ACN 142 189 759)
Loading preview
Permission granted for Geolocation.
Your login session has expired and you have been logged out. Please log in again.