Start Of The Requirements

Okay, here goes. This is the start of the requirements that I have gathered/made up/learnt that the next version of AJAXTagger should achieve. I am finding it quite hard to get the requirements down, so I think the best thing to do is to break them down in functional areas. My application should really achieve all of these for it to be a success (in my terms anyway).

Features of the application

  1. The application must be able to tag journal entries easily.
  2. The application must be able to find related information about tags so that the user can decide if to use them or not.
  3. The application must be able to find related articles on the users site.
  4. The application must be able to find related blogs.
  5. The application must be able to find related websites.
  6. The application must be able to find related articles on any particular web site.
  7. The application must provide the user with searches related to the subject via a variety of search providers.
  8. The application must provide the user with all the search results (where possible) in one simple feed.
  9. The application must be able to find images related to an article for inclusion.
  10. The application must be able to extract items that could be used to help associate schemes.
  11. The application must be able to pull an article from either a site or a blogging system such as blogger.
  12. The application must be able to save an article to either a site or email system.
  13. The application must make a minimal number of round trips to the server.
  14. The system must be able to determine when a client can perform work that the server needs not.

UI

  1. The user must be aware of all the data that is entered on to the system
  2. The user must be required to do as little work as possible.
  3. The user must be able to see the results of editing straight away
  4. The user must be able to hide information that they do not require
  5. The UI must not interfere with the results the user requires
  6. The user must be able to see the results of their actions immediatly

Business Logic Client Side

  1. The application's logic must not cause the browser to be stalled.
  2. The application must be able to access data across domains if needed but be able to fall back to server side proxy scripts.
  3. The application must function in IE6 and IE7.
  4. The application must function in Firefox.
  5. All Business Logic must be performant in Firefox
  6. All Business Logic must be performant in IE6 and IE7
  7. The system must be created in such a way that new functionality can be added easily
  8. The system must be created in such a manner that adding new search engines and results sections is straight forward.
  9. The system must be created in such a way that it can be easily maintained
  10. The system must be able to handle errors
  11. The system must be able to handle broken communication
  12. The system must be able to manage chained events, one action causing another action causing another etc
  13. The system must be able to handle multiple data requests at any one time
  14. The system must be able to prioritze system events that require access to external data sources so that not too many requests happen at once

Business Logic Server Side

  1. Any logic that is done on the server should be as short as possible
  2. Any logic done on the server must be performed in as secure a manner as possible

Data Access

  1. Data should not need to be stored on the server
  2. Data may be stored in cookies so that the user doesn't have to enter
  3. Direct access to external data sources will be as short as possible
  4. Direct access to external data sources may be cached
  5. Direct access to external data sources will fail gracefully if errors occur

Known External Dependancies

  1. Amazon
  2. Yahoo
  3. MSN
  4. Google
  5. Ebay
  6. FindOry
  7. Flickr
  8. Alexa
  9. Wikipedia

Known Internal Dependencies

  1. No Root Access to server
  2. Bandwidth constraints
  3. HTML Interface
  4. JavaScript
  5. XmlHTTPrequest
  6. Internet Explorer 6 & 7
  7. Firefox

I lead the Chrome Developer Relations team at Google.

We want people to have the best experience possible on the web without having to install a native app or produce content in a walled garden.

Our team tries to make it easier for developers to build on the web by supporting every Chrome release, creating great content to support developers on web.dev, contributing to MDN, helping to improve browser compatibility, and some of the best developer tools like Lighthouse, Workbox, Squoosh to name just a few.

I love to learn about what you are building, and how I can help with Chrome or Web development in general, so if you want to chat with me directly, please feel free to book a consultation.

I'm trialing a newsletter, you can subscribe below (thank you!)