Using Umbraco CMS as an application framework

I'm embarking on my first Umbraco CMS backed website/webapp project. Basically a learning project.
April 21 2011
cms    umbraco

Some background information:

Before I get into the technical stuff, first some background about what I’m trying to accomplish and why.  I participate in an online Formula 1 fantasy competition held on Codemaster’s recent F1 2010.  Around our online competition, about to start it’s third season, we’ve built a small fantasy F1 world complete with News and Interviews of drivers and statistics etc, much as you would expect when visiting a real F1 site such as www.formula1.com.

The existing website is laboriously but loving maintained by one of the competitors, using raw HTML and served from a machine inside his home network.  He spends many hours each week entering and calculating the statistics from each race, and more entering the fictional site content.  I wanted to reduce the time he has to spent on tasks that can be automated, and also convert a web forms F1 statics website I had written back in the mid 2000’s in ASP.NET 2.0 to ASP.NET MVC 3.0 as a learning exercise and add CMS backed content.  Originally I wanted to run my own F1 site and present some quirky F1 statistics, but after having some trouble sourcing enough F1 information (the old source I used in the mid 2000’s had disappeared a few years ago)  I thought using our competition as the basis for the stats would kill two birds with one stone.

Wait a second, if you’re still paying attention you noticed I said I wanted to do the site in ASP.NET MVC 3.0, so why is this an Umbraco CMS post series?  Well, I wrote up much of the “back end” for the statistics engine in a week or so, knocking out the domain model , NHibernate repositories etc, but was really struggling with a design I was happy with.  To help on the design front I thought I’d turn to Umbraco as a prototyping tool, to help get a UI going.  I knocked up a rough site template over one weekend and started adding features from there, then thought “Why not do the entire site in Umbraco, as a learning experience”.

I’m relatively new to developing CMS’s having only ever done 1 completely from the ground up, and that was as Lead Developer/Project Manager, using Kentico, so I didn’t get my hands dirty as much as I like.  I’ve been playing lightly with Umbraco off and on for nearly 12 months, primarly to build this blog site and also because my company were going to use it for the project I just completed in Kentico, but I’ve never developed a “proper” site in Umbraco yet.

Here’s a  link to the old site, so you can see where the starting point is and what I’m trying to replicate. All copyright belongs to Lambo.

 

What is this Umbraco site going to DO?

I’m building a site that will allow the competition administrator to manage the follow:

  • Building an F1 Season by constructing a calendar of Races at Circuits on particular dates.
  • Signing Drivers to Teams to compete in the F1 season
  • Recording the results of qualifying and race sessions for each Race/Event.
  • Publishing Fantasy news articles, interviews and other pieces of interest.

 

The site visitor will be able to view:

  • current driver and team championships
  • Results of previous race
  • Next scheduled race
  • Circuit statistics
  • Driver statistics
  • Team statistics
  • F1 News
  • Driver Interviews
  • And More… (as I think it up)

 

How will I do it?

Keep in mind this is a learning exercise for me so don’t be surprised if this differs from implementation.  My plan is to build a few new sections in Umbraco and build custom trees in those sections, where I source the data from custom data tables.  The data tables will be using the schema I’d already mapped out when I’d done up the “back end” for my ASP.NET MVC 3.0 version.  I used migrator.net to maintain that.

This is the first in a series of more than one blog post (I’m not sure how many until I finish) describing the interesting bits of this project as it progresses.

Post a comment

comments powered by Disqus