Update 1/2012: this page has been de-linked from the main Teahouse page for now. We're rethinking our technical requirements right now in light of new information and project deadlines and resources, so many of these ideas are no longer relevant. This page will be updated once we have nailed down a fresh set of requirements for the Teahouse pilot project. Jtmorgan 00:33, 1 January 2012 (UTC)
Teahouse will integrate several software components that are not currently implemented in the English Wikipedia, such as LiquidThreads and some form of group instant messaging tool. The project may also adapt existing ENWP tools and bots for new uses. This page is a work-in-progress outline of the general requirements for how these tools should be implemented and configured to meet the needs of new users and to realistically meet project needs with existing resources.
Overall, we will prefer in-house software over external software, because we believe that this will simplify integration, implementation, configuration and support. Such tools may include official MediaWiki Features and Extensions (such as LiquidThreads, WikiLove and the Article Feedback tool), as well as custom bots, filters and reports (such as HotArticleBot).
However, if the necessary tools or expertise are not available within Wikimedia or Wikipedia, we may look elsewhere to meet the project's needs. In such cases, our strong preference is to use open-source software products or services with active development communities to facilitate integration and ongoing support while we build the requisite expertise to support and further develop these tools ourselves.
We also strongly prefer to implement stable, extensible and permanent solutions. However, due to the relatively short development timeline for the initial test deployment, we may implement some solutions on a temporary basis in order to meet project deadlines and goals. Temporary solutions will serve to demonstrate proof of concept and guide design of permanent solutions.
Threaded Discussion Board
The first page of the Teahouse will feature a fully-featured, WYSIWYG threaded discussion board. We see LiquidThreads as our best option here, so the requirements below are tuned to the existing functionality of LiquidThreads. This discussion board has the following requirements.
Basic Requirements (currently supported by LiquidThreads)
- user can post a comment without directly editing the wiki page
- user can start a thread without directly editing a wiki page
- threads can be automatically sorted so that recent content (such as the newest thread, or the most recently active thread) is listed first
- user can view a hyperlinked index of current threads above the threads themselves, so that they may browse active discussion topics without excessive scrolling
- user can view metadata about current threads, such as who posted to the thread last, how many replies, and date/time of most recent reply
- hosts can easily archive inactive or resolved threads, in order to minimize the amount of content that is presented to the user and to keep the list from growing unwieldy
- discussion can be paginated, so that only a specified number of threads are visible on the first page, in order to minimize the amount of content that is presented to the user and to keep the list from growing unwieldy
Basic Requirements (may or may not be supported by LiquidThreads):
- discussion board can be implemented on part of a wikipage, while leaving room for at least two other pieces of content on the page: a sidebar (for an activity monitor) and a header for static content (such as a "welcome" message) and top-level Teahouse navigation.
- discussion board can be integrated with Wikipedia notification system, so that new users receive a notification via user talk page, email, etc. when another user comments after them on a post, or comments on a thread they started.
- discussion board can be integrated with an inline activity monitor (for instance, in the sidebar), so that popular or highly active threads can be highlighted, similar to Hot Articles widget.
Technology options. Regarding what type of discussion board to use, we currently see a few different options:
The second page of the Teahouse will display a series of chat rooms for users to interact with one another in real time. Because these chat rooms are intended for new users, who may not be familiar with how to access or use existing IRC channels, they will be set up slightly differently than the way IRC is currently used within Wikipedia.
The proposed IRC chat rooms will have the following requirements:
- user can participate in chat via a web-based interface, without using browser or desktop client software (such as Adium)
- chat rooms will have persistent names and be specifically intended for use by new users and hosts of Teahouse
- the "chat rooms" page on Teahouse will provide a list of the available chat rooms, and will provide a link to each
- the "chat rooms" page on Teahouse will provide real-time (or regularly updated) status indicators which display the following information about each room:
- how many users are logged into the room
- how many hosts are logged into the room
- the topic of the current discussion
- entering a chat room from Teahouse should not require the new user to create an account separate from their Wikipedia account
- entering a chat room from Teahouse should not require the user to type in the name of the room
- to prevent trolling, rooms should be configurable so that they are only accessible to users who meet certain basic criteria: e.g. autoconfirmed users, registered user
- participation in these rooms should not require the new user to have any previous experience with IRC (i.e. use text commands like /msg)
- rooms should be available at any time of day or night
- rooms should be listed/indexed in such a way that the user's attention is drawn to active chat rooms, not inactive ones
- users (such as hosts) who prefer to use external chat clients should be able to access the chat room through those clients
Technology options. Regarding what type of IM protocol and service to use, we currently see a few different options:
- The WebChat extension to MediaWiki, which connects to Freenode
- The Chat extension to MediaWiki, which uses PHP Free Chat (and can be self-hosted?)
- self-hosted jabber server - a self-hosted XMPP chat server such as the open-source licensed Openfire may allow the right degree of flexibility of integration, security (supports user authentication) and administration (via a configurable web admin interface) that we need. We do not currently know what it would take to set up and maintain our own group chat server, but if it proves feasible this option seems to offer the greatest degree of customizability, the most seamless integration and the most secure authentication and security.
- jabber.org hosted chat rooms - according to this page, Wikipedians have used conferences.jabber.org to host group chats before. We do not currently know what would be required to host persistent chat rooms specifically for the Teahouse on jabber.org.
- embedded freenode IRC chat rooms - this option would involve creating a set of private, persistent freenode IRC channels which could be accessed through an embedded, web-based chat client. Our primary concern over this option is that irc can be confusing and hard to master for those who are unfamiliar, and that controlling access to these rooms may time consuming or ineffective. However, we are still exploring this option, because it has a few advantages.
- It is possible, through  for users to quickly get connected to a chat room, without using an external client. It is also possible to embed a chat room within an iframe in an existing web page, which removes the undesirable complication of the user needing to navigate to a different page in order to participate in chat.
- IRC is widely used among Wikipedians. If we can provide new users with a friendlier introduction to IRC, the may become more confident IRC participants once they've graduated from the Teahouse.
- using existing Freenode IRC protocols makes it easy for Hosts, or for new users who are comfortable with IRC, to use the IRC client of their choice to participate in chat, rather than being forced to use the web interface.
Because it is especially important to make the Teahouse an interactive space, we intend to include several mechanisms for making users aware of the activities of others and of recent changes to the page. We propose to create a generic activity monitor that can be used to display different relevant measures of activity on each page of the Teahouse. The activity monitor will be loaded on each Teahouse page as a sidebar item. As a conceptual framework for this activity monitor, we are using the Hot Articles widget, which is maintained by the HotArticlesBot on Toolserver. Further investigation is needed to explore whether this bot can be forked and used as a basis for our teahouse activity monitor, or whether we need to start fresh with something new.
- On the Q & A page (threaded discussion) Activity Monitor will display the 5 threads with the most activity over the past 24 hours, in terms of # of replies. Each thread's name as listed in the activity monitor will be hyperlinked to the first post in the thread.
- On the chat room page, Activity monitor will display the 5 most active chat rooms, in terms of number of individual messages sent in those rooms over the past 10 minutes
- On the Help Resources page, Activity monitor will display the 5 most popular help resources on en.wiki (which will also be linked to from the page). "Popular" in this sense could me determined in at least three ways:
- number of page views for that help page over the last week
- number of edits to that help page (and it's sub- and talk pages) over the last week
- the aggregated usefulness rating that help page according to a modified version of the Article feedback tool
- On the noticeboard page(s) the activity monitor will display the number of users who have clicked on hyperlinks in each of the notice templates