This is a sample ground-up solution to the developer exercise used for SilverStripe Australia. If you are a candidate, feel free to take this and use it as a basis of your own response - after all, it is an open source framework of sorts! Remember though, you are being evaluated on how well you demonstrate your understanding and capabilities, and any subsequent interview will take your response into account.
This is NOT meant to be an example of the best solution to the problem. It is a 3 hour solution that is just meant to give an outline of what we are looking for.
If you have stumbled across this, and are looking for a job, see the 'overview' file contained within and have a go, then send an email to firstname.lastname@example.org