- Resharper 7
- Asp.Net Mvc 4
- Castle Windsor IoC
- Nunit with Specflow and Coypu
The reason I am coding this from scratch is because from my brief investigation into the free / opensource e-coms world nothing ticked my boxes in terms of quality, simplicity or design. Having thought about some alternatives I came across google checkout which allows me to create a site with a catalog and they take care of the shopping basket and checkout process. Leaving me to worry about the site design and admin.
I'm no designer so I've farmed that out to a friend of a friend and it will be integrated later down the line. First I'm going to focus on features. In true agile / bdd style :)
This is a side project for a friend and I've spent all the money on the design so I am going to be getting the initial phase of work out in short sharp and neat sprints (train journey length sprints!). Which leads me to the first set of admin stories (I'm going to create the backend first) for sprint #1:
- Manage categories
- Manage products
Expanding Feature #1 'Managing Categories': (As an admin user) I would like to be able to add / remove / edit category names. I think the ability to enable and disable categories would be good. I also think that a product should be able to belong to more than one category so they act more like tags - predefined tags I guess. Categories are only there as meta - if there are no tags, users can still find products by standard search (which will come later), categories provide a nice visual means of sorting and filtering products. Categories also offer a means to provide faceted information where users can see how many products are in each category. So with that we have our first SpecFlow file:
In the next blog post I'll start adding the Coypu / SpecFlow step definitions which will drive the development of this site from the UI down. I'll show the use of emergent design to lead the development in an agile, lean and focused way. I'll also begin thinking about which database we'll be using and the thoughts / reasoning behind the choices and the eventual decision.