It's been a while: Sometime last August the SharePoint hosting contract for the .NET User Group Leipzig ran out and since then we basically didn't have an online presence. Our .NET Summercamp 2007 conference and a couple of smaller User Group events took away their share of spare time so I didn't find time to create our new home page. Over the last couple of months I evaluated several Content Management Systems for our to-be-developed homepage and what can I say, I was a bit disappointed. One CMS to remain unnamed showed very buggy behavior when setting up basic navigation elements and DotNetNuke had some scary CSS to override for custom layouts and uses tables all over the place.
Two months ago I came across telligent's Graffiti CMS. Delightful! They really appear to be driven by their "Content Made Simple" concept. Not only do they have a nice Ajax-y administration UI, Graffiti also provides an extremely simple and efficient extensibility model. The NVelocity template engine is also very easy to grasp. (NVelocity is part of my beloved Castle project.)
I started implementing some macros for the User Group events, and soon it became clear that this might be something other User Groups might want to use as well. Thus, the open-source Graffiti-UserGroups project was born.
Basically we wanted to provide a list of recent and archived events with custom metadata and enable attendee registration. Speaking of metadata, this includes:
This enables some neat use cases:
All functionality can be implemented using Graffiti's extensibility points, a plug-in in this case. A plug-in can subscribe to certain events in the application, jump in and modify data (see default values above). Another extensibility point which is heavily used in Graffiti-UserGroups is the notion of custom "Chalk" macros compiled into .NET assemblies. For example, there's a set of macros to display and format event data without the need to write complex "standard" Chalk statements.
An extra bonus for the Graffiti-UserGroups newbie is the Demo Site Setup Wizard which configures your Graffiti site, including sample posts and a registration page. (Also see the video below where I demo the initial setup which is finished in minutes.)
To make a long story short(er) I've recorded a screencast that shows you how to set up the demo site quickly on your local machine.
Don't forget to take a look at the new .NET User Group Leipzig homepage to see the macros in action. Also check out the source code on Google Code!