This is too old to be good reference material, and should probably be deleted.


One of the local employers sometimes hires people, and asks for the following demo code. This is quite useful to me, as it provides a demo for my web application skills (rather than knowledge on languages). I am sole developer on this project without many libraries imported. When I am normally doing work, I use lots of libraries to make it cost less.

The task is to implement an incident management tool. On the basis the requirements doc is generic and not for any corporate IP, I provide access [[site_siitelink]/asset/just-develop-it.doc here]. Due to the problem domain, this code is not publicly open-source. You may have a copy, if you need it please mail me. I haven't worked out the best way to present this. If you are a potential employer, you may wish to read it as source, but there seems little point in publishing to the community a batch of code which can't really be reused, and has no user-base.

I write about management in technology much better than I did in 2000.
The tool is available on this site, but please see the notes at the end of this document. Please note, to match the PSD/requirements, this only works on 1280 and up. This wasn't intended for low specification devices. Until I complete the MSIE CSS3 alternatives, it looks better on standards compliant devices as well.

Discussion on Technology

This tool is pure OO code written in PHP5.1, which is what was standard when I wrote it. It provides a good example of Exceptions and interfaces the dB via PDO. I like PDO, it is a language standard version of something I wrote several years ago, but PDO is publicly available.
I am under the impression, that as a review of technical skills, applying abit of CSS to a framework output was a poor response. You can't see what I can do, just that I have pulled up a cheat sheet for the framework. As I am a fairly experienced in writing OO code, frameworks save time, and encourage consistent quality. They don't enable me to do anything more than I could do without them. As a second point, demos must run without a large amount of setup be the recipient (dependant libraries); although dependency management is considerably less time expensive than it was.
Due to the aim of being a demo, I haven't used much standard environment for HTML generation code. I imported a small library I had written earlier for generating HTML documents. The development has been quite slow due to this process.
I enjoy the opportunity to make something with 2011 CSS, which was the last batch of rework. The newer CSS is a much better environment than earlier versions. Getting everything to work in MSIE will prove a pain, but having a stable tool first has been done.

The majority of my time budget was on surface CSS and JS.

I have intentionally left all the surface details to last. If this was an operational tool, for someone’s business process; having the ability to log and manage incidents is much more important than tonal blends in the navbar.

Update, 2013

I needed some code to have a demo MongoDB integration. This tool now has MongoDB support. The code has been refactored to support either DB, but this is the maximum practical complexity for this structure without using real namespaces, or a structure like PEAR.
As this is a throw-away piece of code, I have not updated it to current standards ~ PHP 5.4.

Spec Omissions

The following are things that I would ask the client (and have mailed the employer about).

  1. There is no menu space for “list all”, I added another item to the menu. I could rename the “home/recent” function to “all” if you would like? That option has low value - given there is a home link in the top of the page.
  2. There is no user identity - in my experience users will need this for teamwork. I have created a People MySQL table. At the moment everything is created as the same user.
  3. Would you like a login button?
  4. Would you like a fault status (useful for sorting results)?
  5. I think a manually set fault title is a better way for users to see data, otherwise to list faults, the user needs to read the ENTIRE fault. May I add one?
  6. What is that font? On my system, it is rendered as “sans serif” in both the PNG and the PSD (that is both editions look the same), but “sans serif” doesn't look right in the webrowser. I have done a quick hack with the font weight, so the difference is less dramatic.


At the point of me writing this page (20/04/2012), the project needs the following changing:

  1. Improve context in the UI;
  2. spelcheck [sic] again;
  3. Rebuild the shadowing with five settings not four;
  4. Add shadowing that will work for MSIE;
  5. hover event the buttons. This isn't in the PSD file but will improve users context;
  6. Check the fonts;
  7. Fix the smaller details of screen element placement;
  8. Test on small screen sizes;
  9. Improve presentation on the data tables (sizing, data chunking);
  10. HTML table sorting options (needs a table widget);
  11. Think about a better time entry widget;


  1. I wrote some JS in this by hand intentionally, to demo that I could;
  2. There was an issue with the dates going wonky was induced during conversation to integral form, it assumed leading 0 numbers where in Octal, to “08” converts to 10;
  3. Secondly I made the clock section use 12hour time to be more end user friendly. From a computational perspective, this is a poor choice, and increases that section of code by 40%;
  4. According to font name, these are the same fonts, but they look different (see above). The font could be bound into the PSD file, but binding “sans serif” would be very pedantic;
  5. The screen item placement is mostly correct; Contri to previous statements, as of NOW, the white-space margins are dynamic;
  6. For long term use, I ought to move all the text resources into a separate class. I would use this for the SQL as well;
  7. If you read the source, I added a “render” flag which one may use to disable sections of the code. This is currently a partial implementation, but allows “binary search failure analysis” with much greater speed;
  8. The base class for HTML generation was recycled code, derived and expanded from a very simple set of output macros. I am tidying up the code into a single consistent writing style and API;
  9. Whilst this may be poor UI; to match the template file, this layout only works on 1280x1024 and up;
  10. In terms of comparison to commercial development, I am severally hampered by a lack of testing environment for MS products. I am running code in a net-café, but lack any development tools. I would never use this process in a commercial environment, it is too slow.

Styling features

I will reformat this as a table when I have a mo. The code has been developed to multiple different targets for all of the CSS3. I stabilised the platform and did complete feature test with CSS1 (mostly, abit of CSS2) to ensure usability was top priority.

Things likely to go wrong in the CSS

  • Layout of chunks reflows into a poor readable cluster;
  • Corners not being rounded;
  • Shadow not present or on wrong areas;
  • Shadow not match corners;
  • Shadow incorrectly stacking with other page elements;
  • Shadow does look like a shadow, not a block;
  • Blends are applied to the correct areas;

Mini-site tested on the following for CSS glitches

  • Firefox 11.0 - Linux;
  • older Firefox - TODO
  • Opera 11.60 - Linux;
  • older Opera - TODO
  • Chrome 18.0.1025.162 - Linux;
  • Safari - Linux - TODO this/wine crashed my Xwindows;
  • MSIE 7 - windows TODO
  • MSIE 8 - windows TODO
  • MSIE 9 - windows TODO