WikiEducator:Software Projects

From WikiEducator
Jump to: navigation, search

Much of the activity on WikiEducator revolves around developing and sharing educational resources, but there are a wide range of software projects that go on behind the scenes to support that mission. The OER Foundation which hosts WikiEducator and coordinates the OERu initiative uses open source software, and welcomes openly licensed contributions from the community.

Most of these project ideas have been chosen to be approachable, and of a restricted scope so they might be accomplished by a motivated individual in a few months (like the Google Summer of Code program). But they don't really end with a completion of the minimal feature set, since many of these projects will evolve as the WikiEducator community evolves and as the OERu initiative offers more courses and accepts more students. We welcome developers joining the community, contributing insights and ideas, not just code.

The OER Foundation has been accepted as a mentoring organization for Google Summer of Code 2014. If you are a student exploring ways to get involved we have some background information about our community and its goals.

Project Ideas

Course Registration

WikiEducator has been testing course registration and delivery in our Mediawiki instance. The Wikipedia Education Program has built their own registration scheme. An enterprising developer could take the best of both schemes and develop an awesome registration and tracking scheme for WikiEducator and OERu students. A course dashboard to collect not only schedule information but also all student input (links to blog posts for assessment, pointers to microblog activity, etc.) should be developed. A robust tool allowing educators to mail registered students that have confirmed their email addresses is also required.

Skills required include: PHP, MySQL, Javascript, git
Outcome: Mediawiki extension, including supporting Javascript widget(s)
Possible extensions: streamlined Mediawiki account creation; integration with OpenID and/or SAML logins; bulk registration from CSV files
Help and ideas: Jim Tittsler, Wayne Mackintosh, Luis Miguel Morillas
Possible inspiration: Wikimedia Editor Campaigns, Structured Profiles

Voting and Polling

WikiEducator has developed a pair of extensions and associated widgets for adding voting and polling in the wiki. These two functions are logically similar and could be built into a single, more configurable Mediawiki extension and widget set. Among the desirable outcomes are:

  • better authoring help
  • configurable backend storage/database engines
  • graphical display options
Skills required include: PHP, Javascript, NoSQL (currently CouchDB), git
Possible extension: include student tracking analytics for course delivery
Help and ideas: Jim Tittsler, Luis Miguel Morillas, Wayne Mackintosh

Theming

As WikiEducator is used by more of the OERu partners for course delivery, there is a desire to customize the look and feel on either an institutional basis, or perhaps even a course-by-course basis. A prototype extension has shown that a partner institution can provide custom CSS (and optionally Javascript) to dramatically alter the way a student sees a course. A very useful project for someone familiar with front-end web technologies would be to add features that improves the authoring experience for educators. A developer familiar with Mediawiki extensions could extend the project to provide more flexibility in theming selection, while maintaining security against cross-site vulnerabilities.

There is reuse of WikiEducator material in other content management systems. One of the easiest ways is to embed an IFrame drawing content from WikiEducator. The current system Javascript detects when a page is being displayed in an IFrame and strips off navigation and other wiki-specific elements. A welcome development would be an IFrame-friendly bare skin.

Skills required include: PHP, Javascript, CSS, git (Lua may be useful)
Outcomes:robust Mediawiki extension with clear end-user documentation and examples
Possible extension: upload infrastructure for partner institutions to upload and manage their own theme(s)
Help and ideas: Wayne Mackintosh, Valerie Taylor, Jim Tittsler, Luis Miguel Morillas, OERu partners

Course Delivery

Given a hierarchical outline of page references (identical to or similar to that used by the Collection Extension) display the pages in a sequence, with menus and previous/next navigation. Allow the author of the "course" to specify theming. Interoperate with (or extend if necessary) the existing embedded IFrame delivery mechanism.

Skills required include: PHP, Javascript, CSS, git
Help and ideas: Wayne Mackintosh, Jim Tittsler, OERu partners

Slideshows

WikiEducator has offered "slideshows" with optional voice narration/audio tracks for a couple of years. An excellent project would be to expand this functionality with features for both authoring and display.

Skills required include: Javascript, CSS, optionally PHP
Help and ideas: Jim Tittsler, Wayne Mackintosh

Mapping

Replace the current WikiEducator map widget with one built on the Leaflet library. Add authoring convenience features for scaling and adding pushpins to the maps. The widget should be able to pull locations from a wiki table.

Skills required include: Javascript, CSS, optionally PHP
Outputs: advanced mapping widget, optional Mediawiki extension
Possible infrastructure project: setup of an OpenStreetMap tile server or support for other openly licensed mapping and/or data overlays
Help and ideas: Declan McCabe, Jim Tittsler, WikiResearcher community

Plotting

Some users have started experimenting with Javascript plotting widgets on WikiEducator. As more forms of open data are collected on WikiEducator and WikiRearcher we need a complete plotting solution. The tool needs to be able to pull data from a variety of wiki formats and render in a selection of formats. The ideal solution would include a server-side rendering extension so that the graphs could be included in PDF and ePUB exports.

Skills required include: Javascript, PHP
Familiarity with existing plotting libraries like D3 and jqPlot very desirable
Outcome: complete set of mw:Extension:Widgets plotting widgets for data in the wiki
Extension ideas: Mediawiki extension for server-side rendering; embrace and extend existing WikiEducator activity widget
Help: Jim Tittsler

Audio and Video Interaction

It could be interesting to exploit the WebRTC audio and video capabilities within WikiEducator. An extension that created a WebRTC link to a user's browser and then allowed the user to record a short audio (or video) statement could be used by teachers to quickly record snippets for a class or for learners to post responses.

Skills required include: Javascript, PHP, WebRTC
Familiarity with existing tools and services for web recording very desirable
Outcome: complete solution for recording user audio/video content in the wiki
Help: Jim Tittsler

MediaWiki to Wordpress

Using the latest stable release of WordPress (Version 3.8.1) and the latest stable release of MediaWiki (Version 1.22.4), create a Wordpress plug-in which allows you to embed MediaWiki content into a Wordpress page or post. Essentially taking the MediaWiki div with id of mw-content-text and allowing it to be presented in a Wordpress page or post using Wordpress Shortcode. There are similar projects (Wiki Append and Wiki Embed) which may no longer be maintained or supported and may have compatibility issues when used with more recent versions of WordPress. Note: The MediaWiki Push Extension provides another angle to achieving this task see MediaWiki website

Skills required include: Javascript, PHP, HTML, CSS
Familiarity with using access points and methods provided by the WordPress Plugin Application Program Interface (API)
Outcome: Provide functioning code to display MediaWiki content in Wordpress using Shortcode
Help: Tim McCallum

Your Project Here

If you have been using WikiEducator for a while, or perhaps been a student in an OERu course, you may have an idea for the perfect piece of software to make facilitate learning and sharing. We'd love to talk!

  • Join the WikiEducator Tech mailing list and propose your idea there.
  • Edit this page or describe your idea on the discussion page.
  • If you prefer synchronous chat, there is often someone available on the #wikieducator channel of irc.freenode.net (the web chat in the left navigation bar here) or even better, stop by one of the informal "Office Hours" sessions.

We definitely believe in incremental design and deployment. It is better to build a small prototype to garner feedback from the community than launch a very ambitious project that misses its goals or perhaps misunderstands the community's goals. The WikiEducator community tends to be very supportive of development efforts. Don't be shy if you've thought I could make that better.

Get in Touch

WikiEducator and OERu use a variety of technologies for collaboration outside the wiki: