I've been consistently working on the site since my last post, though none of the changes have gone live yet and probably wont for a week or so.
I started with the best of intentions. Add caching to the site using Windows Azure Appfabric Caching. As I started to gut the pages to add in caching, I lamented that I didn't spend much of the initial flurry of activity on writing unit tests, which would have made me feel more comfortable about the changes I was making.
So I spent a few days writing unit tests and refactoring my controllers to be more testable, removing dependencies on the http context and refactoring for a bit more structured and elegant code.
Once that was in place I implemented the caching, which was pretty straightforward except for one thing. Since the configuration section used was a collection of datacacheclients, I thought it would be neat to get windows server appfabric caching and swap between them depending on whether I was doing a dev build or a release build. The cache client had the same name and were in an assembly of the same name, so I thought it would be straight forward. But it turns out the Azure assembly is version 126.96.36.199 and the Windows server is version 188.8.131.52 and are completely incompatible.
When I gave up, I had to deal a slew of errors, because apparently azure only likes it if you name your datacacheclient "default".
Anyway, once I got the configuration squared away, implementing caching was pretty straightforward.
At the same time, I starting looking for help with the design of the site. I pursued a couple of leads, but couldn't find anyone I was comfortable with, so I decided to try to do it myself. (famous last words...)
So I think I have a nicer layout, which I plan on rolling out, but as I thought about usability and my original vision of "once found" as a research tool, I started working on major changes to the site.
First decision I made was for no more polls. I'm ripping them out. Most topics they didn't make sense, and the few people I got to try the site were entering answers that should have been comments. Comments will be prominent, with links in the sidebar.
I want to turn this into a research tool. When this is ready, I'll launch OnceFound, which will allow for research any topic, with each question site a more specific version of the site. With this in mind, here is how I picture people using it.
- For each topic, users will be able to drag and drop the links and comments in any order they please. The relative rankings each users give will calculate a "score" which could then be used to guess where links appear in the shared rankings. As new links are ranked, they could appear where we think a user would rank that link if they vote like other users. They can also remove a link or comment from their personal view and switch to the shared view.
- For each topic, users can maintain a personal log that is not shared with other users.
- Pages will show usernames of other users "researching" the topic ordered by their activity level on the topic. Will implement a user messaging feature.
Basically I see each topic page as a research hub, which I want to enable multiple people to combine resources.
Here's a very preliminary screenshot to give you an idea of the basic future layout (content areas are not styled yet).
This will be a lot of work and not all of that may make it into the first iteration. Will provide updates as more work gets done.