The Omeka Plugin Rush invites aspiring Omeka plugin writers to develop a plugin for the Omeka community. In return for all of your creativity and hard work, you will be honored with some Omeka swag, a spot in our Developers' Hall of Fame, and a small sum of money.
Check out the specs for available plugins below, and apply to develop one of these plugins.
You may apply as an individual or as a team of 3 or fewer people by emailing the following application information to will@omeka.org:
- Full name(s) of each developer
- Organizational affiliation (if any, of each developer)
- Email address (of each developer)
- Primary mailing address (for mailing you/your team a single check as well as a mystery box of SWAG to divide up as you see fit)
- The name of the plugin you want to work on
- A brief project development timeline (dates and milestones) and
- Any suggestions you have for amending and expanding upon the required features.
The Omeka Development Team will review your application, make some suggestions, and decide whether this is the best plugin for you to make.
All plugins must work with Omeka 1.1.
Submission Deadline Applications will be accepted via email on a rolling basis to will@omeka.org, however the final deadline for all plugin submissions is 5/1/2010.
Contents |
Flickr Importer (1.1-1.0)
Honorarium: $250
Plugin Version: 1.1-1.0
Status: Available for Development
Difficulty Level: Intermediate to Advanced
Brief Project Description: Create a plugin that imports photos from Flickr into Omeka as items.
Required Features
Configuration
- Omeka admin users should be able to configure the plugin with their Flickr API key and their Flickr username.
- The plugin should use flickr.people.findByUsername to determine the Flickr nsid.
Import Process
- Admin users should be able to import photos from their collections, galleries, and photosets as Omeka items (flickr.collections.getTree, flickr.collections.getInfo, flickr.galleries.getList, flickr.photosets.getPhotos, flickr.photosets.getList).
- Admin users should be able to search for photos by keyword (i.e. text), tag, and by license type (flickr.photos.search, flickr.photos.licenses.getInfo), and then see a paginated list of photos. Users should be able to select the photos they want to import.
- Each Flickr photo will be imported as an Omeka item. Each Omeka item should import the following metadata from the Flickr photo (using flickr.photos.getInfo):
- Photo Title
- Photo Description
- Photo Date Taken
- Photo Date Posted
- Photo Id
- Photo Owner NSID
- Photo Tags
- Photo License
- The import process should run on a background process using a subclass of the Omeka ProcessAbstract class.
- The import process should allow users to specify an Omeka collection that the imported items will be associated with.
- The plugin needs a FlickrImport navigation tab in Omeka admin.
- The FlickrImport navigation tab should have a subtab that shows the status of each Flickr import background process and allows the admin user to stop them (perhaps like how OaipmhHarvester or CsvImport plugins do it).
- The plugin should only allow admin users to import photos and see the FlickrImport navigation tab.
Technical Skills Needed: PHP, MySQL, HTML, CSS, jQuery
Technical Documentation Resources:
Flickr API
TagBandit Plugin (to see how to apply a batch action as a background process)
Some Relevant Omeka Global Functions (insert_item, release_object, get_db, set_option, get_option, delete_option, add_plugin_hook)
Some Relevant Omeka View Helper Functions (html_escape)
Some Relevant Omeka Core Classes
- https://omeka.org/svn/tags/1.1/application/libraries/Omeka/Controller/Action.php
- https://omeka.org/svn/tags/1.1/application/libraries/Omeka/Record.php
- https://omeka.org/svn/tags/1.1/application/models/ActsAsElementText.php
- https://omeka.org/svn/tags/1.1/application/models/Collection.php
- https://omeka.org/svn/tags/1.1/application/models/CollectionTable.php
- https://omeka.org/svn/tags/1.1/application/models/File.php
- https://omeka.org/svn/tags/1.1/application/models/FileTable.php
- https://omeka.org/svn/tags/1.1/application/models/Item.php
- https://omeka.org/svn/tags/1.1/application/models/ItemTable.php
- https://omeka.org/svn/tags/1.1/application/models/Process.php
- https://omeka.org/svn/tags/1.1/application/models/ProcessTable.php
- https://omeka.org/svn/tags/1.1/application/models/ProcessAbstract.php
- https://omeka.org/svn/tags/1.1/application/models/ProcessDispatcher.php
- https://omeka.org/svn/tags/1.1/application/models/Taggable.php
Anonymous Tagging (1.1-1.0)
Honorarium: $100
Plugin Name: AnonymousTagging
Plugin Version: 1.1-1.0
Status: Available for Development
Difficulty Level: Beginner to Intermediate
Brief Project Description: Create a plugin that allows anonymous, public users to tag Omeka items.
Required Features
Configuration
- The plugin should allow the admin user to specify a reCAPTCHA account key.
- The plugin should allow the admin user to specify a comma-seperated blacklist of unacceptable tags.
- The plugin should allow the admin user to specify whether user-contributed tags need to be approved before adding them to an item.
Tagging Process
- The plugin should allow any anonymous visitor or logged in user to add tags to any public item.
- The plugin should provide a helper function that a theme writer can use on the public item show page.
- The plugin needs an AnonymousTagging navigation tab in Omeka admin, where admins can moderate user contributed tags.
- In particular, admins should be able to browse a list of user-contributed tags, and click a "Blacklist" button to blacklist a tag, or "Approve" a tag.
Technical Skills Needed: PHP, MySQL, HTML, CSS
Technical Documentation Resources:
reCAPTCHA
Zend_Service_ReCaptcha
Some Relevant Omeka Global Functions (get_db, set_option, get_option, delete_option, add_plugin_hook)
Some Relevant Omeka View Helper Functions (html_escape)
Some Relevant Omeka Core Classes
- https://omeka.org/svn/tags/1.1/application/libraries/Omeka/Controller/Action.php
- https://omeka.org/svn/tags/1.1/application/libraries/Omeka/Record.php
- https://omeka.org/svn/tags/1.1/application/models/Item.php
- https://omeka.org/svn/tags/1.1/application/models/ItemTable.php
- https://omeka.org/svn/tags/1.1/application/models/Taggable.php
MetaComplete (1.1-1.0)
Honorarium: $100
Plugin Name: MetaComplete
Plugin Version: 1.1-1.0
Status: Available for Development
Difficulty Level: Beginner to Intermediate
Brief Project Description: Create a plugin that allows users to easily enter existing item metadata using an autocomplete dropbox.
Required Features:
Autocomplete Process
- The plugin should use jQuery and AJAX to dynamically create an autocomplete dropbox that pulls in related element texts from other items, sorted by their similarity for what has already been typed. For example, suppose the user has typed in the word "Math" into the "Subject" Dublin Core element of a new item, and suppose that two other items, which already exist in the archive, have "Mathematics" and "Astronomy" for their "Subject" element texts, then the user should be presented with a dynamically populated autocomplete dropbox of related element texts sorted by their similarity to the word "Math" (in this case, "Mathematics" should come first because it is most similar to "Math", and then "Astronomy"). The user should be able to click on one of the choices from the autocomplete dropbox. This should work similar to how the autocomplete dropbox works for adding tags to items (however, it should use jQuery's Autocomplete Plugin - not Scriptaculous' Ajax.AutoCompleter).
- For sorting autocomplete results for an element input field, it should show element texts that have the currently entered input text as a substring before those that don't. For example, if the input text is "Math", it should display "Mathematics" before "Astronomy" in the autocomplete dropdown. Even though "Astronomy" does not contain the string "Math", it should still show it in the autocomplete dropdown.
Technical Skills Needed: PHP, MySQL, HTML, CSS, jQuery
Technical Documentation Resources:
jQuery Autocomplete Plugin
Some Relevant Omeka Global Functions (get_db, add_plugin_hook)
Some Relevant Omeka View Helper Functions (html_escape)
Some Relevant Omeka Core Classes
- https://omeka.org/svn/tags/1.1/application/models/Item.php
- https://omeka.org/svn/tags/1.1/application/models/ItemTable.php
- https://omeka.org/svn/tags/1.1/application/models/ActsAsElementText.php
Flowerplayer (1.1-1.0)
Honorarium: $100
Plugin Name: Flowplayer
Plugin Version: 1.1-1.0
Status: Available for Development
Difficulty Level: Beginner to Intermediate
Brief Project Description: Create a plugin that displays movie files with an embedded Flowplayer flash video player widget.
Required Features:
Configuration
- The plugin should allow the user to customize the colors and controls of the video player (similar to how Drupal does it: http://drupal.org/node/438592)
Video Player Specification
- The plugin should use Flowplayer (Free version) to embed flash player widgets for movie files on an item show pages, or whereever the display_files helper function is used.
- The plugin should provide a helper function for displaying video player using a playlist of movie files.
Technical Skills Needed:
PHP, MySQL, HTML, CSS, JavaScript
Technical Documentation Resources:
Flowplayer Documentation
JwPlayer Omeka Plugin (unreleased) (this may give you some ideas about how to display files based on mimetype).
Drupal Flowplayer API (this may be useful for comparison)
Some Relevant Omeka Global Functions (add_mime_display_type, get_db, add_plugin_hook)
Feed Importer (1.1-1.0)
Honorarium: $250
Plugin Name: FeedImporter
Plugin Version: 1.1-1.0
Status: Under development by Patrick Murray-John
Difficulty Level: Intermediate to Advanced
Brief Project Description: Create a plugin that imports Atom and RSS feeds.
Required Features:
Configuration
- The plugin should allow the user to specify a period (in hours) in which to re-import.
Import Process
- The plugin should import Atom entries and RSS items as Omeka items.
- The plugin should provide an import wizard that allows the admin user to:
- Specify a URL to an Atom or RSS feed
- Select an Omeka Collection to which the imported items will be associated.
- If an RSS feed, allow the user to select a specific RSS channel to import
- Map Atom/RSS metadata to Omeka item metadata.
- For RSS, metadata about <channel> and <item> elements should be mappable (many-to-many) to Omeka item elements, tags, or files (See the CsvImport plugin for an example of a many-to-many mapping).
- For Atom, metadata about <feed> and <entry> elements should be mappable (many-to-many) to Omeka item elements, tags, or files.
- The import process should run on a background process using a subclass of the Omeka ProcessAbstract class.
- The plugin needs a FeedImporter navigation tab in Omeka admin.
- The FeedImporter navigation tab should have a subtab that shows the status of each Feed import background process and allows the admin user to stop them (perhaps like how OaipmhHarvester or CsvImport plugins do it).
Technical Skills Needed:
PHP, MySQL, HTML
Technical Documentation Resources:
Atom Format
RSS 2.0 Spec
CsvImport Plugin for Omeka (to see how the metadata mapping might work)
Some Relevant Omeka Core Classes
- https://omeka.org/svn/tags/1.1/application/libraries/Omeka/Controller/Action.php
- https://omeka.org/svn/tags/1.1/application/libraries/Omeka/Record.php
- https://omeka.org/svn/tags/1.1/application/models/ActsAsElementText.php
- https://omeka.org/svn/tags/1.1/application/models/Collection.php
- https://omeka.org/svn/tags/1.1/application/models/CollectionTable.php
- https://omeka.org/svn/tags/1.1/application/models/File.php
- https://omeka.org/svn/tags/1.1/application/models/FileTable.php
- https://omeka.org/svn/tags/1.1/application/models/Item.php
- https://omeka.org/svn/tags/1.1/application/models/ItemTable.php
- https://omeka.org/svn/tags/1.1/application/models/Process.php
- https://omeka.org/svn/tags/1.1/application/models/ProcessTable.php
- https://omeka.org/svn/tags/1.1/application/models/ProcessAbstract.php
- https://omeka.org/svn/tags/1.1/application/models/ProcessDispatcher.php
- https://omeka.org/svn/tags/1.1/application/models/Taggable.php
Timeline (1.1-1.0)
Honorarium: $100
Plugin Name: Timeline
Plugin Version: 1.1-1.0
Status: Under development by Adam Soroka and Wayne Graham (University of Virginia Library / Digital Research and Scholarship R & D)
Difficulty Level: Beginner to Intermediate
Brief Project Description: Create a plugin that allows users to add a SIMILE Timeline widget to their theme.
Required Features
Timeline Specification
- The plugin should create a helper function for creating a SIMILE Timeline from a array of items. The helper function should allow you to specify which metadata elements the time data should come from, as well as the element that specifies the caption (by default, the Dublin Core Title element).
- The timeline should allow for time intervals and points in time.
Technical Skills Needed: PHP, MySQL, HTML, CSS, JavaScript
Technical Documentation Resources:
SIMILE Widgets
SIMILE Timeline Widget
Some Relevant Omeka Core Classes
- https://omeka.org/svn/tags/1.1/application/models/Item.php
- https://omeka.org/svn/tags/1.1/application/models/ItemTable.php
- https://omeka.org/svn/tags/1.1/application/models/ActsAsElementText.php
Old Timeline Code (does not work with Omeka 1.1, but may be helpful. You will be replacing this code with your plugin.)

