Skip to end of metadata
Go to start of metadata

GSOC 2013 has been announced. The page that follows is a list of project ideas coming together for this year. Other project ideas will be added here over the next month or two, before the student application period starts April 22. In the meantime, get involved with the ATutor and Fluid communities to show your interest, and suggest potential projects if you have a good idea. Students who participate in the communities are more likely to be rewarded when the GSoC student selection period comes.

About GSoC

Google's summer of code is now in its 9th year, funding student positions over the summer, working with various open source development projects producing code that benefits everyone. GSoC will put up $5000 US to cover the wage of a student during the period between the end of May and the end of August. Students who are interested in participating should scan through the GSoC FAQ for information about the program and how to apply, and scan through the "Project Ideas" listed below for potential projects they might participate in. Or, propose a project of your own and attach it to your application.

Google Summer of Code
Google Summer of Code FAQs
Advice for Students Applying for GSoC
Students: Google Summer of Code Student Guide
Students DOs and DON'Ts

Students applying to work with the IDI must submit a resume, along with a 1 or 2 page proposal mentioning the project they wish to participate in, with a plan describing how they would go about developing or coding the software, and send it to info at atutor dot ca. We will on one occasion offer suggestions you can use to enhance the proposal you submit when you register with GSoC. Be sure your proposal is as close to finished as possible before submitting it for feedback.

Contact

The best way to contact IDI if you have questions is through our IRC channels. Use the ATutor channel for ATutor project related questions, and the Fluid channel if you have Fluid project related quesitons.

ATutor IRC Channel: irc://irc.oftc.net and join the #atutor channel
FLUID IRC Channel: irc://irc.freenode.net and join the #fluid-work channel http://webchat.freenode.net/

Important Dates

March 29 Mentor organizations proposals due
April 22 to May 3 Student application period
May 27 Accepted student proposals announced

Selection Criteria

Google Summer of Code is a very competitive process at IDI. Many more students apply than we have spots available to offer. Students should keep this in mind and plan accordingly. Students can apply for up to two projects at the IDI.

When selecting students there are a number of qualities we look for:

  • Students need to be independent, curious, and resourceful and self-directed. Mentors will help steer students in the right direction through encouragement, feedback, and critique, but will not direct or dictate what a student should do.
  • Students need to be able to communicate effectively. All of the IDI work is collaborative and community-based. Students should get to know the community and learn how to communicate effectively using IRC. The IDI works in an open, transparent manner, so students will be expected to contribute work openly on IRC, mailing lists, and wikis etc..
  • Students are expected to design their own projects based on the descriptions provided in the ideas presented below, or based on their own ideas. Mentors will give feedback and point out useful resources to further develop plans.
  • Students should not begin doing any more than basic coding that might be required for research, before being selected for a project.
  • Students may submit a project plan for feedback once. The plan should be close to done when submitted for feedback.
  • Students should demonstrate good time management skills. Making contact with mentors early, being able to judge how much time is required to complete a project, being able to organise tasks in a logical order along a timeline, and being able to accommodate complications if things don't go quite as planned, are all qualities of good time management.
  • To pass the midterm and final evaluations, students are expected to work on their GSoC project as if it were a full time job, and be in regular communication with the project mentor. That is, working Monday to Friday, 9:00AM to 5:00PM, or the equivalent. Some leeway will be allowed for exams, holiday plans, and unforeseen circumstances. Student need to let their mentor know in such cases.
  • Students need to be able to document their progress on a weekly basis. This can be done in a variety of different ways, perhaps setting up blog or wiki of their own, and keeping an ongoing timeline for their project that mentors can refer to to monitor a student's progress.
  • Students should also be familiar with the Git version control system, and have an account setup on GitHub. All project code must be available on GitHub for the duration of the project period.

About the Inclusive Design Institute

The overarching goal of the Inclusive Design Institute is to help ensure that emerging information technology and practices are designed inclusively from the very beginning. We define inclusive design as design that enables and supports the participation of individuals and groups representing the full range of human diversity. We see disability as a mismatch between the needs of the individual and the service, education, tools or environment provided and accessibility as the adaptability of the system to the needs of each individual. Our research, development, education and services are all grounded in this principle.

The IDI supports open standards - as well as open access and open source wherever possible - to distribute our work as widely as possible and to encourage broad participation in our initiatives. All our work is collaborative.

We are strong advocates of the overlooked principle that people with disabilities should be producers and not only consumers of information, knowledge and culture. Society as a whole is impoverished and deprived if we exclude through action or omission. Inclusion benefits everyone, it should be everyone's concern and, in this digitally transformed reality that we live and work in - where consumption does not consume and space has no limits - there is no downside to inclusion and it is possible to make room for us all.

Jutta Treviranus
IDRC Director

Project Ideas for GSoC 2013

ATutor Project Ideas

The following is a list of potential GSoC projects for students. These are only suggested projects, outlining the types of things the ATutor community has been asking for. Students are welcome to suggest their own projects, or suggest variations on the ones listed here if they have other ideas.

To communicate directly with the ATutor development team, open an IRC session at irc://irc.oftc.net and join the #atutor channel. The core developers are generally around 9:00 to 5:00 Monday to Friday Eastern Standard Time (UTC-5). Though not a requirement, students are advised to login to IRC and interact with the developers. Generally students that developers get to know, are the ones chosen to fill the limited number of spots available.

Students should note that mentors working with IDI work as a team, so you may interact with several mentors over the course of your project. The mentor listed with each project is the primary contact for the project, but he or she may direct you to other mentors where they are better able to answer questions or provide guidance.

1. ATutor Responsive Design based Theme

Difficulty: Medium
Mentor: Alison Benjamin (ATutor, mobile theme developer)
(Positions available: 1)

Description:
Previous ATutor mobile themes have relied on server-side device detection. The aim of this project is to develop an accessible, responsive theme for ATutor, which adapts to the size of the user's device, be it a desktop, tablet or mobile phone using media queries. The candidate should be proficient with PHP, HTML and CSS and be familiar with responsive design. The ideal candidate will consider include how to incorporate WCAG guidelines for accessibility (http://www.w3.org/TR/WCAG20/) and Mobile Web Best Practices (http://www.w3.org/TR/mobile-bp/) into their designs, and will document and perform basic quality assurance testing with a limited set of browsers and assistive technologies.

Outcome:
On successful completion of the project, the new mobile themes will be considered for addition to the ATutor public distribution.

ATutor Theme Designer Documentation
ATutor Mobile Theme
ATutor Tablet Theme
ATutor Simplified Desktop

2. Media Player Update for ATutor

Difficulty: Medium.
Mentor: Harris Wong (IDRC, ATutor Developer)
(Positions available: 1)

Description:
ATutor adopted the Flowplayer media player as its default player when video is included in ATutor content. With accessibility as a high priority for ATutor, there is room to improve Flowplayer and its accessibility support. The aim of this project is to update media support in ATutor with improved accessibility. This may include adding the Flowplayer caption addon or other addons, addressing potential keyboard accessibility issues with the player, and potentially adopting the Fluid HTML5 media player as the default player. Other possibilities might include integration with Universal Subtitles (AMARA), to add a captioning tool that will integrate with the ATutor content editor.

The candidate for this project should have a good understanding of multimedia development, as well as javascript, and potentially Flash development. A basic understanding of PHP will also help with this project.

Outcome:
Upon successful completion of this project, the updated media player will be considered for a replacement for the current basic Flowplayer.

ATutor Module Developer Documentation
Flowplayer
Flowplayer Plugins
Fluid Player Roadmap
Universal Subtitles Documentation

3. AContent module for Moodle

Difficulty: Medium.
Mentor: Lachlan Blackhall (Australian National University. AContent/Moodle Developer)
(Positions available: 1)

Description
AContent is an open source tool for developing rich learning and educational content using a variety of content types including images, video, mathematical equations, and text. The ability to rapidly develop content in AContent and then export it in a standards based form is particularly powerful for content authors and developers who need to rapidly develop and deploy content. The authoring capabilities of AContent are superior to many other tools that are included within learning management systems (LMS).

In many universities around the world the Moodle LMS has been deployed. However, the content development tools within Moodle not as well developed as those in AContent, nor can the content be exported from Moodle. Moodle does however support the inclusion of content developed within AContent through being able to import IMS Content Packages exported from AContent. While being able to import content into Moodle is a useful capability it would be better to be able to easily develop content within AContent and deploy it into Moodle in a single step, something currently not possible.

In this project we will look to more tightly integrate AContent and Moodle so that people using Moodle for online course management can easily develop content in the AContent environment and then deploy it into Moodle directly.

The candidate should be proficient programming with PHP, understand Web services and have some familiarity with HTML and CSS.

Outcome:
AContent will be turned into a content authoring tool and repository for Moodle.

AContent CMS
ATutor Developer Guidelines
Moodle Developer Documentation

4. Admin Tools to create custom templates in AContent

Difficulty: medium
Mentor: Catia Prandi (U of Bologna, AContent Developer)
(Positions available: 1)

Description:
The aim of this project is to provide AContent with a set of Administrator Tools to support the creation of content templates.

The newest version of AContent (1.3) provides 3 layers of templates:
*Theme template: CSS based, to apply a graphic design to display the content.
*Layout template: HTML based, to create pages.
*Lesson structure template: XML based, to generate structured pages in a lesson.

The idea is to provide the administrator with a GUI to create new templates and integrate it in the existing AContent admin panel. By using this GUI the admin can manage templates:

*create new templates;
*modify existing templates;
*delete existing templates.

Outcome:
The final work may be included in AContent distributions.
AContent CMS
AContent Template System
AContent 1.3 Demo (login with demo:demno)
ATutor Developer Guidelines

5. IIS Web Server Support for ATutor

Difficulty: medium
Mentor: NA)
(Positions available: 1)

Description:
ATutor has used Apache as its Web server of choice for development and implementation since it begain in 2002. Though the vast majority of systems now serving Web content use Apache, there are still many who choose to use Micorsoft IIS. A scan through the atutor.ca forums will reveal a range of issues when ATutor is run on IIS.

In this project the candidate will identify where those issues exist when attempting to install ATutor with IIS, and adjust the ATutor code to provide better support for IIS users, while continuing to provide support for Apache users. Documentation will be created that will help guide users in successfully setting up ATutor with IIS.

The candidate for this project should be well versed in the IIS Web server, and have an IIS development environment available to them, as well as having excellent PHP development skills.

Outcome:
Upon successful completion of this project, the modifications made to accomodate IIS will be merged into the ATutor public distribution.

Resources:
PHP/IIS Manual

6. GitHub Based Patcher

Difficulty: Medium
Mentor: Alexey Novak
(Positions available: 1)

Description:

ATutor currently uses its own Patcher module to apply updates and bug fixes to production installations. This Patcher contains lots of built-in functionality which can find and replace/change existing blocks of code in the large codebase using developer provided rules expressed in XML patch files. The aim of this project is to design and create another patcher module that will be able to utilize the GitHub repositories and git functionality which will allow users to update their production systems with the latest changes pulled directly from the source code repository. This module may use GitHub commit hashes to find changes that should be applied, instead of a developer manually specifying what changes should be made in XML patch files.

The candidate for this project should have excellent PHP coding skills, have knowledge about Git and possibly Linux shell scripting.

Outcome:
On successful completion of the project, the new GitHub based patcher would be considered as an alternative for the existing ATutor Patcher module.

Resources
ATutor Module Developer Doc
GitHub API

7. Google Apps Module for ATutor

Difficulty: Medium
Mentor: NA
(Positions available: 1)

Description:
In 2012 the initial Google Apps module was created. It included support for Google Docs, Calendar, Spreadsheets and YouTube. While the module functions effectively, integration of the apps with ATutor could be improved so users experience them as part of their experience in ATutor rather than leaving the site to access these external tools.

The candidate for this project should be familiar with Google APIs, and the range of Google applications available. In addition to further integration of the existing tools, the candidate might also consider integrating additional Google Apps into the module (e.g. Maps, GMail, Image Search, Translate, Books...), and extend the module with preferences that would allow course developers in ATutor to decide which Google Apps are made available in a given course.

Outcome:
On successful completion of the project, the Google Apps module will be made available to the ATutor community.

Resources:

Google Apps Module 2012
Google Products
Google Drive
ATutor Module Developer Doc

8. UI Redesign (Usability Research and Development)

Difficulty: Medium
Mentor: Alexey Novak
(Positions available: 1)

Description:
The aim of this project is to redesign the ATutor UI with a more current responsive design. This work should conform with accessibility standards and might require changing templates, changing or adding new interface features which would improve user experience, perform code optimizations to improve existing templates, using SASS or LESS in order to optimize and produce more efficient and scalable CSS style sheets.

The candidate for this project should have excellent PHP coding expertise, strong grasp of modern web standards such (HTML5, CSS3, DOM), research and design skills to produce usable and user-friend interfaces, advanced-level JavaScript knowledge as well as solid understanding of responding design, accessibility and UX practices.

Outcome:
On successful completion of the project, new created templates or their parts should replace an existing ones in the project.

9. Flexible Form Generator

Difficulty: Easy
Mentor: NA
(Positions available: 1)

Description:
When registering on an ATutor system, basic information is collected from each user and stored in the database. Over the years there have been many requests to add more fields into the registration form to collect specific information that might be be useful to the organization collecting this information. Rather than adding in every requested field, the ATutor registration form has remained simple not to collect information that may not be useful for most organizations.

In this project a utility will be created that will allow ATutor administrators to design their own registration form and add in any fields they might need. The utility should accommodate a full range of form elements, and store data in the ATutor database. If time allows, other features in ATutor that collect data through static forms, could be adapted to accommodate the dynamic generation of forms.

Outcome: The utility will begin as a standalone module for ATutor that can potentially replace the current registration form.

Resources:
These are examples of past work with form generation that might be used as a starting point.
Old AForm Utility
External Tool Module Form generator
ATutor Module Developer Doc

10. ATutor Unit Test Module

Difficulty: Medium
Mentor: NA
(Positions available: 1)

Description
Whenever there is an ATutor release a broad range of time consuming manual tests are conducted to ensure the stability of the release. This process can take months, and can be quite expensive. In this project a unit testing framework will be adopted that will automate many of the previous manual test and greatly reduce the time and expense associated with an ATutor release.

The candidate will investigate potential PHP unit testing solutions, and choose one to create a base framework that ATutor developers can continue to expand upon into the future. In this project some of the more common tools in ATutor will have unit tests created, such as Networking, Content importing/exporting, testing and assessments, and registration and enrollment, among others. Documentation for developers will be written, and unit testing will be made part of the ATutor development process.

Outcome:
Initially created as an addon module for ATutor, the unit testing utility will be considered for integration with the public distribution.

Resources:
PHPUnit
SimpleTest
ATutor Module Developer Doc
ATutor Feature Request

11. ATutor LDAP Module

Difficulty: Medium
Mentor: NA
(Positions available: 1)

Description
Several years ago Sehiy Voyt created a utility for ATutor that would allow administrators to link into an LDAP server to authenticate users on the system. While the module has continued to work effectively, it is somewhat difficult to implement for the average ATutor administrator. This project will involve creating an ATutor module for the utility that will automate the installation and configuration of LDAP support for ATutor.

While the LDAP utility might be developed into its own module, it could also be added as an extension to the current OpenID module, which allows users to login to ATutor via their Facebook, Twitter, or Google accounts.

The candidate for this project must have a good understanding of LDAP, and other authentication protocols, and have well developed PHP programming skills.

Resources:
LDAP Module Feature Request
ATutor Module Developer Doc

12. ATutor Timed Tests

Difficulty: Medium
Mentor: NA
(Positions available: 1)

Description
While timed tests in ATutor would be a relatively easy feature to add, they do present a particular challenge when it comes to implementing them in an accessible way. For some people with disabilities time tests can be a barrier if for example it takes a longer time to read and answer questions than might be typical. For those with reading difficulties, or for those using assistive technologies to access ATutor, more time is often needed to complete a test. For those who are blind, presenting a timer can also be a challenge, ensuring they know how much time they have remaining.

In addition to developing a timed tests feature, a tool will be needed to allow instructors to add time to a test on a student by student basis, so those who require more time can be accommodated.

Outcome:
Upon successful completion of this project, the modifications made to the ATutor testing module to allow timed test, and to accommodate extra time for students, will be considered for merging with the public distribution.

Resources:

13. Image Editor for ATutor Photo Gallery

Difficulty: Medium
Mentor: NA
(Positions available: 1)

ATutor Module Developer Doc

Fluid Project Ideas

Fluid is an open source community of designers and developers who help improve the usability and accessibility of the open web. We contribute to a variety of open source projects (such as jQuery UI), and we work on a few projects of our own: the Design Handbook, a guidebook of techniques for improving usability, and Infusion, a JavaScript application framework for developing flexible user interfaces.

Fluid Infusion is built on top of jQuery, providing all the stuff you need to create user interfaces that are incredibly flexible, accessible, and easy-to-use. Infusion is an application framework and a suite of user interface components built with HTML, CSS, and JavaScript. In contrast to many other user interface toolkits, Infusion components aren't black boxes--they're built to be modified, adapted, and changed to suit your application or context. Taking a "one size fits one" approach, Infusion even lets end-users customize their experience with the UI Options component.

We're looking for students to collaborate with us on the Google Summer of Code 2013 program. Working with Fluid gives you a chance to learn more about accessibility and usability while writing code with cutting-edge open web technologies like HTML5 Canvas and Video. Create cool stuff and make a real impact on users at the same time!

To communicate directly with the Fluid development team, open an IRC session at irc://irc.freenode.net and join the #fluid-work channel. The core developers are generally around 9:00 to 5:00 Monday to Friday Eastern Standard Time (UTC-5). Though not a requirement, students are advised to login to IRC and interact with the developers. Generally students developers we get to know, are the ones chosen to fill the limited number of spots available.

COMING SOON!

  • No labels