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

Interface

For my interface i would like to create a 3D environment where the users files are represented in a space and they can easily move through it.

The concept is to do something lthe system Orbital from flash village but allow the user to explore the space. This will be done becouse when they click on a orbiting globe it will then become the point of focus and they will be shown the files relating to that one. Similar to the system used on the visual thesaurus.

Orbital

The system orbital is a flash navigation from flash village it works by having lots of orbiting objects around the outside of one main object that are all clickable, in there system it takes you to a page of the site but in mine it will bring the one you click into the main file.



Visual Thesaurus

The visual thesaurus is a visula representation of a thesaurus where the user searches for a word which is then displayed with any other words that have similar meanings to it, the user can then click on these links to move the word into the place of the current word and then they are represented with all words related to that one. This is a very similar system to my proposed file system but using words instead of files.

http://www.visualthesaurus.com/

User research

To find out how the human mind works i have created a sample test to prove that different people think of where a file should be kept. I created a test folder that has a series of folders in and asked the a group of people to put a file in an appropriate place. I have called the file Year 7,8 progression test, and given the group the following folders to choice from.


With the information provided i am expecting that the group puts the file in one of the files highlighted below. these inculde Exam's, Scores, Tests, or a year specific location.


User Requirments

Requirements
As my system is being designed primarily for the home user i have highlighted some of the main requirements that these users will have:
  • Find files fast
  • Create custom links between files
  • Add new files
  • See a large scope of files at once

Reasoning for Requirements

My system will need to let users find files faster than the current system without requiring them to go back and forth to find files. They must also be allowed to add there own setup to the system so it is not set to what is pre-programed into the system. The user must also be able to see all the files related at once as this could be a large amount, so the system can be designed for a larger screen size to fit the most on without compressing it into a small space.

Additional Benefit

One of the main additional benefits is that in order to have a file exist in two separate locations you don't have to duplicate it you can just reference it in two places. This can be done in the current system using shortcuts but this has the main problem that if you remove the file the shortcut still exists in the system, coursing annoyance if a new variation on a file is created with a different name as the shortcut ceases to exist

Idea Justification

Non-Office Based Design

The reason for choosing the non-office based idea is that over the past 5 years the number of pc's owned by home users has increased. With the number of PC's expected to pass one billion with 50% of western Europe homes having at least one PC in 2007 and increased from less than 20% in the 80's.

Most of the operating system and interface design was originally designed for the office use as when they where created in the 60's when it was believed that only company's, governments and the very wealthy would own pc's. This meant that the design was created to replicate an office environment. This is very obvious with the original operating systems link windows 3.0:


In recent years this has been changed to reflect the new influx of home users, this has lead to more graphics and smother designed. Link in the the new windows 7:



Even with this shift towards the new home user designs and functions there are still many parts of the system which are very similar to the old office based design. These include the Main Screen being called the desktop (based on the fact you keep the items you most use on your desk for quick access) and the filing system (based on the idea you keep all your files kept organised and kept together)

My System

my system will be designed to work best for the new home user where they don't want to keep all there files stored in a fixed structure like you do in an office but more want to be able to keep stuff how they want and have it easy to locate files all at the same time. so if they have two files they use together a lot then they don't need to keep them in separate places even if that works best in there filing system. so that files can exist in two places at the same time.

System Details

Requirements

The system must allow the user to add there own setup to the system, so that each users system will become individual but have the best setup for them, but it must also have a level of structure that will allow any user to use it.
This means that it will allow the user who set it up to access there files a lot faster and more efficiently than if they where using a traditional system, also they will be able to customise it for there desired purpose.
Athough a system such as this would require constant maintinace from the user to ensure that all the files are in the correct place it would be required that the system adds new files and updates existing ones when the user makes changes. This could then be updated by the user to keep files in the correct position.

Additions
The system could be developed to have a much more graphical interface as this would suet the home user better than the traditional office like system.
There also needs to be a method to represent different link integrate so that even if a file is linked to another that is not displayed unless required.