How to link resources

One of the more interesting parts I’ve talked about (in my seminar) is the concept of linked resources. The idea is that nothing on a project is in isolation. This will show how various elements are linked, so if you’ve viewing a list of tasks, you can see what users, milestones, tickets, files and time entries are in some way linked to that task list.

The problem is that this can be a lot of additional information, and how to best present this to the user. If it was just displayed on the page, it would add a lot of clutter, but we still want it easily accessible from the same page, instead of moving it off to a seperate page.

The following screenshot shows how I intend to show this information. The icons highlighted on the right show the various items which can be linked to, including tasks, tickets, milestones, times, files and users (in that order). These icons will only appear on pages where it’s possible to link an item to something, so on pages such as the dashboard, which can’t be linked, the icons won’t appear.


Clicking any of the icons will bring up a tooltip which will have the relevant items in it. This is shown in the following screen (the layout of the contents is subject to change). Clicking on one of the entries will take you to that items page.

This only solves the problem of how to display this information, the next problem is how to add it. This happens in 2 ways:

  1. Items are automatically linked – Examples of automatic linkings are when you create a task on a ticket, that list will be linked. When you assign a task to a user, that user is linked to the ticket etc
  2. The user manually adds links – This can further be broken down into 2 parts
    • Linking to already existing items
    • Creating new items and linking them on the fly

      Links 1

The following 3 screenshots show linking an existing item will look (using files in this case). When you click the icon to

get a tooltip, you will see what is in link 1. In this case it shows an icon for the file type, the name, which is a link, it’s filesize and the date it was uploaded. Other items will have differant data shown. At the bottom, there are 2 links, for now I’m only interested. Creating a new item will either be a link to the normal create form which will create the link afterwards, or display a minimal version of the form in the tooltip.

To link an existing item (file in this case) we click the link “Link an existing file” which will display the search form as shown in screenshot link 2.

Link 2

As you type the name of the file, it will use AJAX to populate a list of all files which match that string . You then check the boxes you want to link and submit.

As you type, the results look like in screenshot link 3. Both the top and bottom lists need to be inside a div with a max height (forcing scroll bars in this case) to prevent the height of the div being greater then the page.

Link 3

Reviewing significant project changes before demo

My demo is in 2 weeks time, so now is a good time to do a review of how the scope of my project has changed.  As mentioned in the previous 2 restructuring parts of the project, I’ve dropped some features which has allowed me to focus more on the interesting parts.

Some of the new things I’ve been working on include:

  • Email data into the system
  • An API
  • Natural language parsing for adding tasks
  • Keyboard shortcuts

Now is also a good time to review how I stuck to my original timeline. I’ve never been a big fan of gantt charts (which is why they’re not one of the features of my project). I did however make an effort to stick to the one I came up with in the first week. Instead of using it to mark strict deadlines, I used it to keep an idea of where I should be in relation to everything else. Here is a summary of how it went:

  • I didn’t spend 3 weeks researching database systems as expected. Although I did spend a few days researching nested sets within SQL (and opted to use MPTT) I opted to use MyISAM as I didn’t real feel the benefits of InnoDB outweighed the cost in tersm of runtime.
  • I did spend about 2 weeks on the database schema as it was originally very complex. It was later mostly scrapped in favour of a much simpler, more streamlined schema based on the ever changing requirements. Had I realised earlier I should descope, I could have saved some time here
  • I spent a little more than 2 weeks on the UI and application flow. Although I got the basic site structure up very quickly, I spent much longer thinking about optimal flows
  • Project management – I didn’t spend as long as predicted on the project management part of the project. I spent about 2 weeks getting it to allow nested and linked projects, which was later all rewritten in favour of a much simpler approach… keeping projects in isolation and using tickets to separate parts of projects.
  • Task management was implemented along wide with the time tracking part as they were very similar and had dependencies between them. This means I spent a less time than expected across the 2 parts as they were combined
  • Milestones where also simplified so the time spent was also reduced as result
  • The messaging system was also dropped completely – it had only been started at the point of my restructuring
  • Tickets took roughly as long as expected
  • The scope of files changed to include some new features but the time spent on it stayed the same
  • The public beta (alpha) launched on time

One thing I found to be a repeating trend was that I overestimated the time things would take, which is a good thing, as I didn’t allow any time for the more interesting features

Road map

This isn’t a traditional road map as such, it’s more a list of what needs to be done for the alpha. The list will be broken down into sections but the items won’t be in any particular order of important or implementation, but if you think something on this list (or even not on this list) needs to be done asap then let me know in the comments

Posted in Alpha. No Comments »

Changelog & progress

This post will contain all the changes, events and bug fixes made to the application once it has entered the alpha stage.

  • 10-03-2010 – Fixed a bug which was reporting the wrong usage of file quota
  • 07-03-2010 – Initial implementation of linked resources. Currently only suppots outward links for tasks and auto generated links – More info coming soon
  • 06-03-2010 – Bulk upload of files, ow when you upload a zip file, it will extract the contents and add them each indiviually (currently only support zipz with all files in the top level)
  • 05-03-2010 – Fixed the security bug which prevented a user from accessing their own lists, tikets and files if they where created poutside the scope of a project
  • 05-03-2010 – You can now compare versions of files (uses PHPsPEAR package Text_Diff
  • 04-03-2010 – It now sends out email reminders for milestones 24 and 48 hours before the milestones (assuming you wanted to be notified)
  • 03-03-2010 – Made some security enhancements
  • 03-03-2010 – Fully functional filter and export for times. Currently only exports the rows in their raw form to CSV
  • 02-03-2010 – Fixed a bug when downloading all files – Should now work without any problems
  • 02-03-2010 – Changed the way images are handled in the files section. It now generated thumbails and previews at the correct size and caches them instead of scaling the image in the HTML. Should lead to faster page loads
  • 02-03-2010 – Added the ability to add comments to files. You may need to clear your cache or do a forceful refresh to get the latest JS file
  • 01-03-2010 – The alpha was launched and 50 users signed up in the first couple of hours
Posted in Alpha. 1 Comment »

Any other thoughts

This is the place for any feedback you may have which doesn’t fall in any of the other categories

Posted in Alpha. No Comments »

User interface

The user interface is still very much evolving but I would love some feedback on what you think so far

Posted in Alpha. No Comments »

Help

This is another currently non existant section, but I need to know what sort of things you’re getting stuck on most

Posted in Alpha. No Comments »

Settings

This section is to find out what level of control you would want within the settings section, which is currently non existant

Posted in Alpha. No Comments »

Users

This post is for feedback on th e user management part of the application

Posted in Alpha. No Comments »

Files

This post is for feedback of the file sharing part of the application

Posted in Alpha. No Comments »