If you're a regular reader of this blog, you may have noticed the electronics posts lately. With my friend Fabien, we've been building a little handheld console from readily available parts. It's also programmable in C#, using a library that we built. It's great fun really. Our plan is to build a kit and a book out of it, to help people learn the basics of digital electronics and C# programming.
We've built a site for the project over a few nights last week, using Orchard and hosting on Azure. I thought I'd throw in a little return on experience and talk about the modules we used.
The site can be found here: http://www.pix6t4.com
The first thing I did to build the site was to build the theme. I started from the built in Theme Machine, and just added the markup and styles for the header. I then changed the fonts from the stylesheet and layout files, added a few custom styles such as the atomic bullet lists or the round corner menus, some transparency for the body and that was pretty much it. The Theme Machine is extremely flexible and let me get exactly what I wanted without changing much markup at all. Most of the changes are CSS.
I then packaged and deployed my Azure image onto our Azure instance. We are using multi-tenancy in order to host multiple small sites on a single Azure instance, so I just created a new tenant for our new domain name. After the second or so it took me, I was able to go through setup for the tenant, and pointed the site to the same SQL Azure connection string I'm using for the main tenant, but using a difference table prefix.
Here are the modules we're currently using (I installed those on my dev machine and added them to the Azure solution so that they get uploaded with the image, as you can't install modules directly on Azure):
- Google Analytics: very simple to use, just register the new site on Analytics and copy the provided script into the module's admin page. You are done, Google starts accumulating stats on your site from this moment.
- Content Types: as you add modules to your Orchard site, you will often want to extend existing types with new parts. You need the content types feature for that.
- Import Export: the Azure story for backups is, well, lacking at this point in time. We'll use export to work around this and download the contents of the site on a regular basis. It's not the same as proper automated backups but it's way better than nothing.
- Vandelay Industries: well, I built this one. I has several useful features, such as favicon settings, Feedburner, tag clouds, etc.
- YouTube Field: We added a Youtube field to the page content type, to make it super-easy to add video to our pages. I had to make a couple of modifications to the module (nice that all modules come with source code): I overrode the template so that it uses the iframe YouTube markup rather than object and embed. As a side note, the default markup has a Lady Gaga video hard-coded into the archaic <object> tag. Nobody noticed I suppose because no recent browser uses that nowadays. I also modified the driver so that it only returns a shape if a video has been configured and null otherwise. I will contribute back those changes of course.
- Contact Form: works as advertised. You can create a contact form page, and every time someone fills the form, we'll get an e-mail notification. The module also has a report page where you can see all the contact requests. I did have to fix a bug in the driver to prevent double entries in the database. I will also contribute that change back.
And well, that is it really. It's a simple site, and it was a simple job to set it up, as it should be. :)