What they want:
User has posted earlier - puts a dot/icon beside posts you've posted in before. This is kind of a nice feature. We can just enable it, though. No need to turn it on and off, or if we do, it doesn't need to be stored in the db so config is fine.
Quick jump - we want this all the time
Captcha for registration!
Rails Forum Feature Jam
Anything that is crossed out is a cool feature, anything that is not crossed out is a gotta have. Cool features, we can prioritize later in terms of which we’d want most. :) Included is the original rorBB feature list as well, assume that anything not crossed out is a gotta have. Basically, we’d like to make the transition as fluid as possible from punBB, so we’d like to have every feature from that forum package that we use.
The moderation stuff is super important to us, and those are some of the main things missing from the rails-based forum options available today.
Anything marked as red is complete.
Here’s What RAILSFORUM Wrote:
MODERATION
• Topic Level:
◦ move topics (with redirect)
◦ close/open topics (mods/admins can still reply),
◦ delete topics (physically remove and with restore option)
◦ rename topics
◦ stick topics
◦ edit history for topics (see who performed what edits and when)
• Post Level:
◦ edit posts (users their own, mods/admins any—silent edits for admins are nice)
◦ split posts
◦ merge posts (less important than the others)
• User Level:
◦ user notes (not necessary but nice)
◦ ban/unban users (by name (actually done via a flag on the record) and email address)
◦ ban/unban IP ranges
◦ capture user IP address
▪ IP history (any IP the user has posted from)
• Miscellaneous:
◦ Post reporting (user press report button, enter reason for report, report is sent to moderator area or via email to moderators)
◦ Able to censor words (for spammers, mostly)
Inline moderation: Post level edits can be done inline: each post has a check box viewable to moderators… mods check the posts that need moderation then choose the action from a drop down.
FORUM FUNCTION
• Quick Reply
• Quick Edit (vB 3.6-style?)- (bust post editing in some form is necessary)
• Quoting (i.e., via bbcode and also a “Reply with Quote” button)
• Better bbcode (i.e., allow attributes like [url=http://www.yahoo.com/]Yahoo[/url]) (calibre-bbcode gem?)
• Code highlighting (syntax gem?)
• Signatures
• Avatars (real, hosted—not gravatars, which are slow and tiny) (Though since we have them now, they’d be really nice)
• RSS feeds for new topics (per forum), new posts (per forum and per topic), and whole forum (posts and topics)
◦ Dashboard/control panel-based subscriptions—users can subscribe to threads, and threads with new posts are printed to a “subscriptions” area on the dashboard/cp
• Search (whole forum (kinda, needs tidying up), per forum, per user, (per post?))
• Userlist (sort by alpha, join date, posts)
• Private message system
• File attachements
• Expanded profile fields (DOB, location, website, etc.)
• User ranks (based on post count, customizable) (Though since we have them now, they’d be really nice)
• Support for graphical smilies (Though since we have them now, they’d be really nice)
• Visual representation of unread topics (including previously read topics with new replies)
◦ Show all new(/newly replied to) posts and mark all forums read links
• Ability to mark forums as active (shown/hidden) (mark[oz])
• Ability to mark forums as open (allows new posts) (mark[oz])
• Customise how many sub forums are shown on the index page (mark[oz])
FORUM CATEGORIZATION/NAVIGATION
• Categories (for forums)
• Tag system
◦ Users can tag topics (forum-wide del.icio.us?)
◦ Tags are gathered (tag cloud?) in their dashboard
◦ Tags are also gathered on a forum-wide tag page
• Ability to reorder forums
• Ability to rename forums (note: forums should have descriptions)
• Forums show numbers topics/replies (PunBB-style)
• Threads show number of replies/view (PunBB-style)
• Each thread has a URL (obviously), each post has its own URL too
• Last 24hrs. topic links: new, recently updated, unanswered (that one is all-time)
FORUM PERMISSIONS
• Limit forum access (control over who can post, reply, and view forums)
◦ Forum access is controlled on a user group basis and also on a forum basis
• Moderator levels (control which moderation tasks moderators have access to)
• User groups (used for moderation levels, and also forum access—user groups can be based on post count, length of membership, automatic (i.e., all new members are added), or custom (i.e., mods/admins must place users in groups manually)
• Forum function permissions
◦ Signatures (control over number of lines/characters, what bbcode is allowed (i.e., to disallow image code)) (Though it would be VERY nice to forbit IMG tags in sigs somehow—image sigatures really make a forum hard to read)
◦ Avatars (size, dimensions, filetype) (Only necessary if we have avatars!)
• Control over which forums count toward viewable user postcount (this can be helpful)
And of course: A PunBB converter
Here’s What RORBB Had Already:
Core Features
• Database Agnostic
• Categories for Forums
• Forums and Sub Forums
• Topics
◦ Editable Title
• Messages
◦ Message Quoting
◦ Textile/Markdown Support (would rather have bbcode, to be honest! Textile, because of _ = italic, really screws up code samples when people neglect to use code tags, as they do often)
◦ Message Preview (before posting)
◦ Editable
• Full-text searching
• Users
◦ Role based Security
◦ Profiles
▪ Avatars (See above)
▪ Other Info (location, website, IM handles)
• Member List
◦ Profile pages
• Ajax (Bells and whistles—unimportant for now, but certainly nice)
◦ Unobtrusive
◦ Fully Degradable
Cool Features (IF NOT CROSSED OUT, ASSUME IT SHOULD BE CONSIDERED CORE)
• Integrated installer (Not necessary for first, Rails Forum release)
• Topics
◦ Track Posts, Views and Last Post
◦ Taggable Topics
◦ Read/Unread Status (for each user)
◦ Quick View First Unread Post
• Messages
◦ DHTML Textile Tool (you mean wysiwyg editor? nice, but not necessary)
◦ Smilies (See above)
◦ IP Tracking
◦ Report Abuse
◦ Quick Post
◦ Message rating
◦ Code syntax highlighting
• View Modes
◦ Normal
◦ Compressed (don’t care about this for a first release)
• Easy and advanced search options – Regular Expressions?
• Users
◦ Online/Offline Status (This one would be VERY nice, however)
◦ Profiles
▪ Signatures
▪ Privacy Settings for Personal Info (easier to just allow them not to enter certain stuff)
◦ Karma/ Reputation
◦ Buddy list
◦ Ability to chose forum theme/layout
• Private Messaging
• Member List
◦ Search
◦ Topic subscriptions
• RSS Feeds
• Web Service API
Database Schema
Current
• forums
◦ name
◦ description
◦ position
• topics
◦ forum_id
◦ name
• posts
◦ topic_id
◦ user_id
◦ content
◦ created_at
◦ updated_at
• users
◦ name
◦ password_hash
◦ password_salt
◦ created_at
◦ updated_at
Possible Additions
• forums
◦ parent_id
• topics
◦ sticky (boolean)
◦ view_count
• posts
◦ ip
• users
◦ role_id
◦ last_login_at
◦ ip
• roles
◦ name
Whatever general permissions go here
• permissions
◦ role_id
◦ forum_id
◦ can_view
◦ can_read
◦ can_post
◦ can_edit
◦ can_delete
◦ can_sticky
Other forum access permissions go here
Feature Listing
I took the liberty in splitting the list into two sections. The idea being that if the feature should be integrated into the system from the start, then it is a Core Feature. If it is fairly straight-forward to add on later, then it is a Cool Feature. Please move things around as you see fit. If you think this is a bad idea, you can revert it back to one list – I’m okay with that. —Ryan
Core Features
• Database Agnostic
• Categories for Forums
• Forums and Sub-Forums
• Topics
◦ Editable Title
• Messages
◦ Message Quoting
◦ Textile/Markdown Support
◦ Message Preview (before posting)
◦ Editable
• Full-text searching
• Users
◦ Role based Security
◦ Profiles
▪ Avatars
▪ Other Info (location, website, IM handles)
• Member List
◦ Profile pages
• Ajax
◦ Unobtrusive
◦ Fully Degradable
Cool Features
• Integrated installer
• Topics
◦ Track Posts, Views and Last Post
◦ Taggable Topics
◦ Read/Unread Status (for each user)
◦ Quick View First Unread Post
• Messages
◦ DHTML Textile Tool
◦ Smilies
◦ IP Tracking
◦ Report Abuse
◦ Quick Post
◦ Message rating
◦ Code syntax highlighting
• View Modes
◦ Normal
◦ Compressed
• Easy and advanced search options – Regular Expressions?
• Users
◦ Online/Offline Status
◦ Profiles
▪ Signatures
▪ Privacy Settings for Personal Info
◦ Karma/ Reputation
◦ Buddy list
◦ Ability to chose forum theme/layout
• Private Messaging
• Member List
◦ Search
◦ Topic subscriptions
• RSS Feeds
• Web Service API
Innovative Ideas
Here is a list of innovative ideas which may revolutionize online forums. Can you think of something that another forum doesn’t have (or very few forums have) that seems useful? Write it down here. Some of these items may already be mentioned on the Feature List, but here you can describe them in more detail. Writing it down here does not mean we will implement it. Just try to fill this list with ideas no matter how crazy they seem.
Quick View
While you are in the topic list, click on a “quick view” button on a topic to see the first post in that topic which you haven’t read. This post will appear instantly under the topic – right in the topic list. You can then click Read More to read the rest of the unread posts if there are any.
Quick Search
Most forum searches require you to do an advanced search to find anything. Instead, there should be an AJAXified quick search which allows you to type in a couple words and a list of topics will instantly appear below.
Flag Topic
Are you especially interested in a topic? Quickly flag a topic and it will be placed in highest priority. When starting or replying to a topic, it is automatically flagged for you. It can notify you somehow when posts are made to that topic (how it notifies you can be a preference).
Ignore Topic
When you are browsing the list of topics and you see one that you know you are not interested in, just hit the ignore button and the topic will instantly disappear. The only time you will see it again is if you choose to look at your ignored topics.
Topic Priorities
Each topic could have a priority for a given user. This priority is calculated based on the user’s previous actions to determine if the topic may be of interest to the user. The user can sort topics by priority.
Auto Pre-Post Search
We a user is creating a new topic, and after they enter the title, an ajax request would be sent to search for topics with similar titles. The results would appear in a side bar on the right.
Split Topic
When creating a new message, the user will have the option of creating a new topic. This would be for situations when a topic makes the user think of something that really warrants a new topic. There could be some sort of link from the orginal topic say, “topic split here”.
In Reply To
In order to keep track of multiple conversations in one topic, a message could be marked as “In Reply To” another specific messages. Icons could be used to represent this visually. I’d like to study this more, because it might actually make things more complicated and confusing.
RSS for Everything
Every changing list could have an associated RSS feed. That way you can subscribe to anything: search results, user’s posts, replies to your flagged topics, etc.
Smart Language Selection for Syntax Highlighting
Each forum could have a default language for the syntax highlighting. This way the Ruby forum would default to Ruby, the JavaScript forum could default to Javascript, the Database forum default to SQL, etc. It would also be nice to add some auto-detecting of what language it is written in, so HTML with eruby in the Ruby forum would have correct highlighting, that sort of thing.