Sometimes a pretty picture is all the excuse you need to start coding

Tags: ddd, postcards, announcements

golden-leaves-mountain-breezeI’m pleased to announce the release yesterday of my latest project – Postcardsfromskyrim.net! This website is a project that I gave myself to both to sharpen my skills through practice, learn new techniques and technologies, and to serve as a guide to some new and exciting technologies and the possibilities they open up. I plan on doing in-depth dives on the various aspects of the application in subsequent posts, so stay tuned.

Saying hello in a timeless, yet fresh fashion

The basic concept for postcardsfromskyrim is intentionally simple. It’s a whimsical take on the classic vacation postcard stands found in tourist shops around the world. Users can go to the site to view, create, and send virtual postcards featuring some of the beautiful vistas contained in the antecedent’s video game world. After selecting an image, users can customize the placement, color, size, etc. of a salutation to go on the front of the card as well as write a message to the recipient on the back. Currently, functionality enabling users to send the postcards hasn’t been completed, but I’ll update this post when that is online (sometime today, I expect).

The site makes use of the new ASP.NET Web API via the MVC 4 beta to create a single-page web application that looks and works great no matter what kind of device is accessing it. It is also going to form the basis for a number of different design demonstrations, from building cloud-based applications in Azure to creating a responsive, rich UI using the Knockout.js MVVM library.

Here’s the bullet-point breakdown:

  • A primary objective of the project is to build the application as LEAN as possible while still providing atomic features to users. As a consequence, there’s still a whole raft of features that are pending implementation. My goal is to add at least one feature every day or so until the initial backlog has been iterated over.
  • This is a journey that I’d love to take with the community, but I’m still trying to determine the best way to do that. Currently, my code repos is hosted in my Azure hosted TFS preview instance, which I would like to maintain in order to provide working demonstrations on things like CI, automated deployments, and possibly even Continuous Deployment
  • I’m not a graphic designer, but I did the best I could to get a clean layout. If there are folks reading this with mad CSS skillz that want to help clean up and fix some of the styling issues I’ve been having, I sure won’t object!
  • In order to Keep Things Simple, I have avoided tackling some features initially that have the potential to Make Things Complicated. Admin console, user management and creation, and allowing writes to the data model through the site have the potential to introduce security issues, so have been allocated a lower priority. I’m hoping to have a simple OAuth or OpenID scheme in place in the near future so that I can feel more confident that I won’t be unleashing spam armies upon anyone.
  • In keeping with the vast wealth of knowledge I’m gaining from being a part of the PnP CQRS Advisory Board (holy crap! My name is listed on the same page as People Who Actually Know Things!), I’ll be attempting to apply DDD principles along with CQRS to this project where it makes sense. The drawback to this is that with such a simple application domain, it could overcomplicate some areas, but I think that demonstrating and adapting the principles is worth the added knowledge burden.