Voting System

My last project for Eric was building a system for him to run a weekly photo competition on Wetpixel.com. This turned out to be a bit larger project than we thought, but we also added a bit more to the system than we’d originally planned.

Using the admin interface, Eric and the other Wetpixel admins can create future competitions and they are automatically turned on and moved from the entry stage to the voting stage to the closed stage with winners being picked. Visitors get to upload their photos and enter information about them as competition entries. The photos are then resized to a few preset sizes while the original image is archived. Visitors can also add comments on the entries, etc. It even supports “ranked” competitions (pick your top 3 photos, in order) and “scored” competitions (rate each photo on a 1-10 scale). There is still a little to be done still on my end, but Eric says that it’s been working out well so far.

A couple weeks ago, I started thinking about trying to introduce a voting system for FeedLounge features. The idea was to reduce a little of the potential “vocal minority” effect that can sometimes occur in the forums, give the users a way to make their voices heard as a group, and not lose great feature requests just because they got pushed off the first page in the Feature Requests forum.

I thought about trying to showhorn in an existing mod for a voting system into the forums themselves, but none of the systems I found really supported the requirements I had in mind:

  1. Items can be added at any time.
  2. Users can change their votes at any time.
  3. Users can give weighted votes to more than one item in the list.
  4. Votes are shown publicly.
  5. Integrated with the forum login so that both FeedLounge users and potential users can participate.

I chatted Geof up on the topic since he’s got experience running a forum community, but he didn’t know of an ideal system either. It was about that time that I started considering re-purposing the Wetpixel photo competition code.

The system had intentionally been built in a somewhat generic way as Eric thought he might want to run other types of competitions on it in the future, so there wasn’t that much that had to change for me to use it to drive the feature voting for FeedLounge.

In the FeedLounge feature voting system, there is only one “competition”: FeedLounge features. Each feature is an entry, and I repurposed the comment system to allow us to attach forum threads to each feature for discussion. The only code I really had to write was voting results display. The list itself is quite different than the Wetpixel competition entry display and the Wetpixel competitions don’t allow voting and entries at the same time.

I’m pleased that the system is working well in both places, and that I was able to re-use it to create the FeedLounge feature voting system (instead of writing something custom).

If I hadn’t just told you they were using the same engine, would you have known? :)

This post is part of the project: FeedLounge. View the project timeline for more context on this post.