User:EpochFail/Journal/Experimental gadget system


Requirements

edit

User recruitment (targeted/random)

edit

Wikipedia is in need of a recruitment mechanism. This recruitment mechanism should be configurable by the user such that, they have the option to never be bothered again. It would be nice if users could also configure which types of studies they are willing to be bothered about.

Proposal: A snooze feature could be implemented that would disable all notifications for the next <reasonable time period>.

One click installation

edit

Installation/uninstallation of a new gadget should be as simple clicking a single button that can be presented to the user. Currently users actually have to copy and paste code into their User:<username>/common.js. This is not acceptable for a large portion of editors and other users (especially anons). The gadget installation system should be integrated into the system such that a user can explicitly install and uninstall interface gadgets -- and do so easily.

Anonymous installation --> Registration

edit

Anonymous users will need to be able to install gadgets. This is essential for targeting readers with user scripts. Loaded scripts can be set in a cookie and anonymous users can be warned that enabled gadgets will be disabled unless they register an account.

Community involvement

edit

This system will be built for the Wikimedia Foundation product team, but it could also be very useful for the community in general. Whether for recruitment or to recruit testers, community user-script developers would benefit from access to such a system and recruitment method. Any user who crosses some thershold should be able to list their gadgets and apply to be able to invite a pool of users to try them. A community driven process like WP:BAG could support the vetting of new gadgets for the system.

Wiki-researchers should be allowed access to this system to support external research of MediaWiki functionality extensions.

Technical

edit

Gadget data storage

edit

Configuration, cache, coordination and other data will need to be stored by gadgets in a resource that is owned and controlled by the user. Since AJAX's security mechanisms do not allow proper HTTP communication with systems outside of the host domain, scripts often use the toolserver via JSONP requests. These requests are limited in their functionality. It would be much more preferrable if there was a user maintained space available via the en.wikipedia.org domain that took advantage of Wikipedia's authentication system so that (1) the usercan store data that only they can read and (2) the app developers can have access to shared data storage between users of the app.

Searchable APP store

edit

The gadget list in user preferences is growing unmanageable and the list format does not allow for detailed information and comments. A search based interface would be much more usable in conjunction with an "installed" list for quick and easy uninstallation.