My Google Summer of Code project is to write a highly specialized WordPress theme package that would create a more effective means for enabling an “ideas forum” or an “ideas site.”
The specialized theme package could potentially be used to power the WordPress Ideas forum once the Summer of Code completes. However, as indicated, the main scope of this project is to release an open source “idea forum” theme with significant enhancements in functionality over what is currently available for WordPress users. The specialized theme package will include a feature set similar to those of Ubuntu’s Brainstorm (http://brainstorm.ubuntu.com/), SlinkSet (http://slinkset.com/), UserVoice (http://uservoice.com/) and Dell’s IdeaStorm (http://www.ideastorm.com/).
The main rationale for delivering this project as a WordPress theme package is that it could serve as a means to quickly acquire, test, and refine an enhanced feature set that could eventually be integrated with a new official WordPress Idea Forum. Some of the useful features that could be included in the Idea Forum by using WordPress as a base are the ability to assign multiple categories to an idea, threaded comments, the use of post status indicators to visually separate closed and open ideas, and so on.
While a number of new features can be supported by using a WordPress base, the following new features would be specifically included as part of the theme:
The theme would implement a promote/demote system for voting on ideas on the front-end. Users would click a “thumbs up” icon to show their support for a specific idea thread or a “thumbs down” icon if they disapprove or disagree with a thread. This would be a +1, -1 system.
Visual Posting Editor + Attachments
Improved Comments System (with Solutions System)
A new comments system will be included in the theme that would allow for two types of comments:
- A normal comment giving general feedback on the idea or proposing additional ideas. This would be plain text with perhaps some minimal formatting or links.
- A specific solution to an idea, which would be displayed above the normal comments. See Ubuntu BrainStorm for an example.
- A solution comment would allow attachments and would have the capacity to be voted up or down just like the main idea.
- An example use: A user suggests better export/import functionality with a couple of feature ideas. A second user votes the idea up and has a specific solution in mind. Together they mock up a screen and post it as a solution for the idea. Other users can join in and vote this solution up and down, or post their own solutions.
Integration with Other Systems
Once an idea reaches a certain threshold (e.g., amount of feedback, number of solutions proposed, volume of comments, etc.) there should be a way to automatically generate some form of action, such as a Trac ticket. My proposal is to create a hook or filter and allow users to hook into their own action/ticket systems. These actions should only be available to certain users, e.g., moderators.
I will create an example plugin to accompany the theme that makes use of a filter to link with Trac installs. The plugin would allow a moderator to easily create a Trac ticket with a link back to the idea that instigated it. The Trac plugin would also allow the selection of one of the proposed solutions. The proposed solution would become the first comment on the generated Trac ticket.
Improved Reporting Features
Instead of replying (and bumping a topic) and applying the tag “modlook,” users will be able to report a topic and moderators will be able to see it in a new report center.
The report system will allow moderators to see why a specific idea needs to be monitored or acted upon (spam, lots of fighting, etc.) and quickly take action on the idea. Craigslist-type reporting features are one example of a potential implementation.
The theme would take into account the number of up votes, comments, solutions and views for generating a consolidated popularity score. Also, if an idea is linked to in a blog (track-back) then its popularity will increase. The ideas with the highest popularity score would be submitted to be shown in a “popular” section and on the home page of the ideas section.
A hook will be available to add new features to the popularity metric. An example plugin using retweets as a popularity measurement will be included as part of the project.
Official Summary of Resolution
The implementation of a custom field or post type would provide a feature that would allow an official summary of the resolution of an idea thread to be posted. For example, a moderator of WordPress.org would be able to use such a feature to generate a generic “this feature is better left to plugins” message and then plug in the applicable links and post the message as an official verdict.
Improved Search for Ideas
The default WordPress search can be messy for a popular idea site with a lot of idea listings. A special bundled version of my Search API plugin (http://wordpress.org/extend/plugins/search/) would be integrated with the theme to enable better filtering and display of results.
New Ideas Homepage
The theme would create a new, fresh home page for displaying ideas. The page would boast a cleaner and fuller presentation of ideas, including descriptions instead of just titles. Both new ideas and popular ideas would be shown. Alternative ways of browsing ideas would be included, such as tag clouds. Work would be integrated with the WordPress UI team to ensure a logical layout.
A feature would be added to limit the number of open ideas that a user could have. The limit could be changed by the administrator in the WordPress back-end or disabled altogether. The reason for including this setting is to constrain over-posters and encourage them to think about the feedback they are submitting. Once one of their open ideas is closed, over limit users would be allowed to post another idea. This feature could also potentially cut down on spam issues.
Companion Plugin: Dashboard Widget
Since the final goal for the summer is to create a customizable, specialized theme, there will be a lot of UI work available. Below are the main sections that I would like the most help with. As the project progresses, there may be some additional areas that come up or that will need review.
Redesigned Homepage for Ideas
The theme would create a new, fresh home page for displaying ideas. The page would boast a cleaner and fuller presentation of ideas, including descriptions instead of just titles. Both new ideas and popular ideas would be shown. Alternative ways of browsing ideas would be included, such as tag clouds. Work would be integrated with the WordPress UI team to ensure a logical layout. – Proposal
I would like the theme to include a clean and logically laid out homepage so that users can easily identify things such as popular ideas, new ideas, tags, and how to take actions such as searching and posting new ideas but the chosen/final elements for this is open to the wire frames.
Potential sources of inspiration include:
Individual Idea Display
Each idea will have its own individual page with permalink. This page will display the full text of the idea and various other data such as vote count, who up-voted, who down-voted, comments, solutions (see Ubuntu Brainstorm for an example), the official result of the idea (if any) and other metadata.
My need for this section is a wireframe/comp/mockup of what the individual idea pages should look like.
Search & Search Results
Both http://dev.serenelabs.com/ideapress/?advancedsearch=1 and http://dev.serenelabs.com/ideapress/?s=test may need cleaned up.