Find Jobs
Hire Freelancers

AJAX Decision Tree Navigation Prototype

$100-250 USD

Completed
Posted over 15 years ago

$100-250 USD

Paid on delivery
An lightweight AJAX/Python for navigating decision trees (possibly with circular references) in a web browser. The server will read in a text file containing an array of nodes. Each node has an index , an image reference, a caption, and a list of caption/index pairs for links to more nodes. A node is displayed in the browser and if the user clicks one of the links another node is retrieved and displayed. The prototype doesn't need to be pretty or handle every possible exception, but neither should it be hard-wired. It should be sufficient to form the core of a more fully featured application. ## Deliverables Prototype framework for navigating complex decision trees in a web browser. Technologies: Javascript/AJAX with Python back end. Web server will be [login to view URL] and Javascript will utilize JQuery. File system database. Description: The framework will display a single node at a time from a heterarchical tree in a web browser. Each node consists of: 1. An image 2. A caption 3. 1 or more links, each of which navigates to another node in the tree, possibly including previous nodes (i.e. a node may navigate both to ancestors and to descendents). Screen elements are simply displayed in a centered vertical column, with the image at the top, the caption underneath it, and all links sequentially beneath that. An arbitrary number of links must be supported, although for practical purposes the number will probably not exceed 10. Node content will be updated through AJAX (i.e. without refreshing the page.) Information for the heterarchy will be contained in a text file describing the nodes in JSON format. Each node will be defined by the following information: 1. A unique numerical index 2. A string pathname to an associated, non-unique image 3. A string for the text caption 4. An array of text/integer pairs defining the links. The name is the text that will appear in the web browser for that link, and the integer is the index of the destination node. The server will consist of a python application that reads this text file and caches an array (or hash) of data structures representing the nodes. This application then accepts requests from a Javascript page. The requests include two integer parameters; one for the index of the requesting node and one for the index of the requested node. The node with that index is then retrieved from the array of nodes and returned. The server will not re-read the data file unless explicitly instructed to. Exception handling: * If the parameter is absent or malformed, the node with index of 0 will be returned. * If there is no node with index of 0, the first node is returned * If there is no node of the indicated index, an "error node" is created and returned that displays the indexes of both the requesting and requested nodex. * Missing or undefined images should not prevent the rest of the node from displaying * In the event of a caption exception, the node should display "Missing Caption: Node #" with the index of the node. * If no links are defined, the node should display the text "END" in the location where the first link would normally appear. Browser support: the application should support the two most recent major versions of Firefox, Safari, and Internet Explorer. Testing: The system should be able to load a text file with the following contents and successfully navigate through all nodes (i.e. 0 leads to 1 or 2; 1 leads to 3 or 4; 2 leads only to 1; 3 leads to 0, 1, or 2; 4 is a dead-end): [ { "index" : 0, "image" : "[login to view URL]", "caption" : "Node 0" , "links" : [ { "Node 1" : 1 }, { "Node 2" : 2 } ] } , { "index" : 1, "image" : "[login to view URL]" , "links" : [ { "Node 1" : 3 }, { "Node 2" : 4 } ] } , { "index" : 2, "image" : "", "caption" : "Node 2" , "links" : [ { "Node 1" : 1 } ] } , { "index" : 3, "caption" : "Node 0" , "links" : [ { "Node 0" : 0 }, { "Node 1" : 1 }, { "Node 2" : 2 } ] } , { "index" : 4, "image" : "[login to view URL]", "caption" : "Node 0" } ] Deliverables: 1. A single python file that defines a simple web server as described above. 2. A single javascript page that performs the behavior described above using AJAX.
Project ID: 3358196

About the project

5 proposals
Remote project
Active 15 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
See private message.
$102 USD in 14 days
5.0 (13 reviews)
3.6
3.6
5 freelancers are bidding on average $160 USD for this job
User Avatar
See private message.
$186.15 USD in 14 days
4.9 (32 reviews)
5.4
5.4
User Avatar
See private message.
$212.50 USD in 14 days
0.0 (0 reviews)
0.0
0.0
User Avatar
See private message.
$170 USD in 14 days
0.0 (0 reviews)
0.0
0.0
User Avatar
See private message.
$127.50 USD in 14 days
0.0 (0 reviews)
0.0
0.0

About the client

Flag of UNITED STATES
Andover, United States
5.0
1
Payment method verified
Member since Nov 2, 2008

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.