One of our sections wants to put together a 'database' of good practice (it's based on teaching and learning case studies across a variety of themes). Well, the project (by virtue of the fact that I'm currently seconded to our web team) landed on my desk yesterday and my immediate response was "SharePoint!" Well, ok, that wasn't my *immediate* response, but I aim to keep this 'blog vaguely polite so perhaps I'd better pretend that this was how things happened...
Anyway, the section in question want some interesting features such as:
- Standard field-based method for storing each example of good practice categorised by:
- Academic department
- 'Interest' key words
- 'Amazon' style star rating for each example, including a free-text comments box (accessible to registered users only)
- Rankings system whereby, when a user visits the site they see a variety of relevant suggestions of good practice examples based on things like:
- 'Top 10' ranking by theme/sub-theme
- Departmental/area of study
- Recently added
- Overall 'top 10' ranking
- Full search capabilities taking into account the various categorisation options as well as just being able to use keywords. Should also be able to search by author (contact) and so forth. This will leverage the standard MOSS search facility (in all its power) tailored to the specific requirements of this project. So, a custom search scope restricted to the good practice site (possibly tied down further in some cases) such that people can burrow their way through the data in any way they choose
The comments and ratings suggestion reminded me of the blog-post to blog-comment relationship, but with a rating slapped on for good measure, so I'll be using that approach to cover that functionality. It's pretty straight forward really. For the page where a particular item is viewed you just add in a web part for the 'ratings and comments' list that is filtered on item ID. You also need to place a form on the page to allow users to leave rankings and comments, again, this can be a data form where the ID property of the 'reviewed' example is set to the current example's ID. A quick look at the blog site setup is quite instructive here, the main page I'll want to 'copy' will be Post.aspx, which shows the post, any associated comments and a new comments form. These equate easily to the good practice example and details, reviews/ratings already left and a form to leave a new review/rating.
Adding new examples of good practice will be done via a fairly standard NewItem.aspx form with drop-downs powered by lookup lists for the department, theme and sub-theme information, a person field for the contact associated with the example and so on. I think it will probably be the case that anyone with logged-in access (it may well allow anonymous access further down the line) should be able to submit a new example of good practice, but an approval work flow will then be triggered so that it doesn't become cluttered with badly worded examples. Though, I guess, the principle should be allow everyone (logged in) to submit what they like and the ratings/review system should take care of the quality control, otherwise, if all that is submitted is polished and completed examples, why is the review and ratings system in place?
Basically this will all require 4 lists:
- Good practice examples
- Ratings and reviews
- Themes & Sub-themes
Presentation to the nation
So I've covered getting the data (in terms of both the good practice examples and ratings/reviews of those examples) into the various lists. This shouldn't require much custom development at all, and what it does need won't require Visual Studio, just SPD and a couple of custom ListItemView and ListItemForm web parts. Next I need to make sure that when someone comes to the good practice site that they can not only do a basic or advanced search, or filter down results based on the basics such as department or theme, but also that they are given options that relate directly to who they are, where they are situated within the university and what they're academic interests are.
To begin with I'm going to keep things relatively simple, I'll do some web parts that lookup the user's department in their user profile and cross match that with examples in the main list. I'll also use usage stats to filter a list based on popularity of example , construed in this context as number of visits (not 100% sure on the easiest way to achieve this at the moment, I suspect it may need some custom web part development, which again may knock it back to vNext) and it will also be easy to produce a list of those added in the last 10 days, or, more likely the last 10 added to the site as they're unlikely to change that regularly. Another easy one will be to show 'highest rated'
I think the presentation of the information is the key really. The interactive rating/review elements are nice but in practice aren't that novel, but being able to go to the site and choose immediately, from a variety of different relevance-based criteria, will make it something that people are likely to re-visit and contribute to themselves.
My first steps will be to get the new item and 'post.aspx' equivalent pages up and running. More here when I do.