- User authentication;
- Password Encryption;
- How to use drag and drop (so that you don't have to go through the pain I did!).
Nick Pugh
Wednesday, 11 May 2011
Final Year Project - Completed
Tuesday, 14 December 2010
Research into technologies that could be used
It was necessary to decide on: a server-side language; a client side scripting language; a version of HTML to conform to; a version of CSS to use.
Server-side language:
ASP .NET
Client-side language:
Javascript
HTML:
HTML4: Finalised standard and supported by all browsers.
HTML5: The HTML5 standard at present is not finalised (due to be finalised in 2020) and is still undergoing updates and not all browsers support all features. The latest versions of all major browsers support the majority of features outlined in the draft specification of HTML5. New features of HTML5 include the support of localstorage, drag and drop among a few.
CSS:
CSS2:
Most features supported by all browsers. However some browsers behave differently with certain properties.
CSS3:
Research into exsisting systems
I began by considering products that I was already familiar with. Such products included:
- Google Wave
- Google Docs
- TreePad
- Microsoft OneNote
I then began to search the internet for products that performed the same/similar functions that I was not aware of. This searching revealed a couple of products that companies had produced.
After using some of these products to get a better understanding of the way they performed certain actions that I believed may be useful in the development of my app. I began to draft an outline of the requirements I would want my app to meet. This was divided into, functional and non-functional requirements.
- Save edits to a note in real-time
- Display edits to a note in real-time when being viewed
- Display the data a tree structure with a node at the end of a branch storing the data
- Store the following properties for each note: title; creator; contributors; date created; date last modified
- Store the users log-in details
- Keep a user logged in until log out selected
- Provide a method for a user to view all of their note’s
- Allow for notes to be sorted by a property of the users choice
- Allow for the user to choose to open notes in a new window/tab or the same window
- Prompt the user to enter the notes properties when creating a new document
- Allow for the owner to view or edit the properties of a note from the main window
- Allow for notes to be viewed by selected other users
- Allow for notes to be edited by selected other users
- Handle multiple users attempting to edit a note simultaneously
- Allow for images etc. to be uploaded as part of a node to a note
- Allow for a list of links to be saved as part of a node
- Allow for links to be made between two nodes in addition to those between the node and its predecessor
- Allow for a node and its successors to be moved to another node
- Not store the users password in clear text
- Not allow unauthorised access to a document
- Be accessible from the web
- Be independent from: Device; Browser; Platform
Final Year Project
A program (combined editor and viewer) for taking and organizing notes.
When I'm collecting and classifiying information, in preparation for writing (say) some course notes, I need to collate all sort of scraps, and organize them. Usually, I want to organize them as a tree, with each node of the tree being a list of items, each item being either text or a sub-node. I often need to move information (= a subtree) easily from one node to another. Sometimes I need cross-links that go beyond the tree structure. The sort of dynamic navigation found in MS-Windows "favourites", or Netscape/Mozilla's booklists would be one possible organization, though adding to the organization would need to be much easier than those examples.
No doubt many of you have had the same need when preparing essay-type courseworks.
Just such a program, on it's own, would be a limited project topic, lacking the scope for a high grade: the degree-worthiness would come from extras. A very obvious "extra" these days would be making the resulting notes file available on the web: with the file in html or xml, browsable (read-only) and directly editable on the web. That last issue would imply "protection" issues, to ensure that two clients do not get into a mess by trying to edit the same part of the same notes at the same time. Other degree-hard "extras" could be imagined.
All that to be done with a nice windows interface. Ideally, platform independant."
http://userweb.port.ac.uk/~lesterk/projects/index.html
I chose this idea as it would allow for the creation of a web app with possibilities only limited by the time I have allocated, and the limitations of the languages I planned to use.
The next stage for the project was to research into existing products that performed a similar task