Sunday, 26 April 2009

Product Code

The code in the project has some sections which i have made for a specific process on this project. All the code has been written by me but there are some sections which i am happy with, These are the drawing of the nodes, correcting there position and the drawing a line from center to each node.

The drawing node section is split into three parts, identifying the main node, displaying all the nodes and making shore they are not touching.

This bit of code identifies the main file by looping through them all until it finds one which has the property main set to true withing its class

The bit of code that moves the files to the circle line is done with a function within the class which identify whether the node is above the middle or not and then to the left or right. it then calculates what the difference between up/down and left/right to decide what percent it should move the file and at what angle to ensure it keeps on the same line.

The final bit of code moves the node away from another node untill it is at a set distance, it does it in a similar way to the code above but only moves out if it is less than the distance, this means that if a file is larger in size the distance could be set greater than if it is a small file.

Product

During the production process due to the problems i have had with the production process and the capability's of processing to deal with what i wanted it too. So i have decided to produce two separate files one which is a running system and with development would allow me to add the additional features that i would like in the future. As the system itself is very limited i have also created a presentation to show what the system would do if it was completed.
The system i have created only represents the system in a simple format letting a user see the files that are linked to the file they are currently viewing. The system has some sections of code which are created so that in the future additional information could be easily added onto it.
This has been done by each file being represented by a class which means that information like name and location could be easily stored within the program. This list also has an array that has the ID of the files that are linked into the file.
As the system was largely limited by the graphical nature of the idea i have been forced to limit its functionality. The diagram bellow shows the system, at the moment the system can handle a large amount of files and wherever you put them on the page they relocate to the line shown in the diagram below, it also has been created so that two files can now be covered by one and other.

Wednesday, 22 April 2009

Processing problem

During the development process i have come up with one major problem because of the graphical nature of the program and the high refresh rate the system uses up a high amount of CPU this has resulted in me having to limit the size of the program to keep it being able to run.

Thursday, 2 April 2009

Production Timescale

Stage one prototype should be completed by 10th April, testing will be carried out over the weekend then any modifications can be made by the 14th April.
Stage two prototype should be completed by the 20th April allowing for a week of testing and adjustments where required.

The XML will be developed along the process, and integrated after the 20th during the testing period on a separate copy of the software. Developing it during the process will allow it to have full functionality and ensure that important information is not missed off the files. I am going to use a seperate file for intergaration of the XML so that any alterations do not effect the testing process

Final product should be completed by 25th with just final testing before delivery on the 27th.

Planed Production

For my product as i have a limited time i am planing to implement it in three steps. I am also going to limit the system to using 2D and try to get the functionality there.

Data Display
The first step of the project is going to be to get the data to display this is going to be achieved by using a bit of software called processing. Using information stored in a list it will dynamical move round loading the new section. I am at first going to try and represent a simple file system using this system, but only use a pre-loaded setup that will be installed into the program. This will allow me to optimise the system without having to worry about any additional functions.
The information that i am going to use in the system is going to be:
  • File ID
  • File Name
  • File Root
  • File Type
  • Linked File Names

Update Information

The second step of the implementation process will be to allow the user to update there information. This will allow them to add a new file and then add/remove connections between files. At this point this will only be reflected while the program is kept open but it opens the possibility for the development in the latter stages.

XML Data
The final section of the implementation of the system is going to be to move the information out of the coding and into a XML file so that it can easily be updated. This will be loaded at the start when the system loads and updated anytime the user makes changes, so if they exit it and come back there changes will still exist.

Conclusion
At this point in the development process i will decide what is the best step to do next, this will be according to whether i have time to fully implement new functionality to the system. I will also at all stages of this development process get the system tested so that i can ensure that the system is easy to use and fit for purpose.

Interface Desighn

My plan is to create a system which will represent the users files in a 3D space, to get the most out of this system i am going to make the interface as large as possible. In my mock up i have designed it to be 1024x768.
I am also going to take some of the design ideas form the visual thesaurus this includes the info pain on the right hand side, this will allow me a really good space to for the functions of adding new files, creating links and removing links. There is also going to be a space at the bottom where the information about the file the user has selected as there main file.
The 3D object within the sphears will have relivant images for each of the file types like the system has at the moment, it will also show there file name which will be expaned when the user hovers over it.

Desighn:

Research Results

My testing has proven my original idea about how different people would use a filing system. I tested 30 people who fell into one of three main logical locations, Year 8, Year 9 or progression, some others picked different folders but these where a lot lower than the amount that picked one of these three.
The weighting of these where:
  • 21 - progresion
  • 13 - year 8
  • 9 - year 9
  • 7 - other