/
Google Summer of Code 2018 with the Fluid Project

Google Summer of Code 2018 with the Fluid Project

Update for April 23, 2018

Per the Google Summer of Code Timeline, accepted proposals will be notified today at 16:00 UTC.

The Fluid Project received nearly a hundred proposals for its projects this year, and unfortunately can't accept anything close to all of them.

We want to thank everyone who submitted a proposal, and would encourage all to continue applying to GSoC in future years if you didn't receive a spot with us or another open source organization this year - the program is extremely competitive.

Overview

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 (e.g. jQuery UI, GPII, PhET), and work on our own projects including:

  • Infusion: A JavaScript application framework for developing flexible user interfaces.
  • FLOEProvides the resources to personalize how we each learn and to address barriers to learning 
  • Social Justice Repair Kit: The goal is to support youth at risk who have learning differences to re-engage in education through an inclusively designed social justice platform that integrates authentic project-based learning.
  • The Inclusive Design Guide

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 2018 program. Working with Fluid gives you a chance to learn more about accessibility, usability, and inclusivity while writing code with cutting-edge open web technologies. Create cool stuff and make a real impact on users at the same time!

For information about the various ways we communicate with each other, see our Get Involved wiki page.

Getting Started

Make sure to read through the Getting Started on GSoC page for information on joining the Fluid community and preparing to work on a GSoC project.

Projects

Inclusive Design Guide Digital-Print copy workflow prototypes

What we're looking for is to be able to provide small scale on-demand printing of the Inclusive Design Guide content. We regularly edit or add content to the Guide and we currently have two versions of the content, web and print. At the moment the print copy needs to be updated separately every time we make changes to the source content. We want to devleop a simple process that ensures that the print copy is always up to date with any changes to the source content. We also want to make it easy for people to print the cards and to be able to pick and choose a subset of the Guide to print to cards if desired. Also, the printable content is slightly different than the web content since we have to reduce it to fit on printable cards, and we need a way to label/tag the printable content. 

Project Description

  • Come up with possible workflows and prototypes that facilitate the creation, editing, and printing of the Inclusive Design Guide from a web copy.
  • Example Workflow 1: provide a way to mark-up / tag / add metadata on the web copy to identify what to generate the print copy from
  • Example Workflow 2: keep two separate copies of the web and print, and maintain a "diff layer" (see desctiption below) to reveal the differences / changes between the web and print copies (in order that the differences can be reconciled).
  • Example Workflow 3: a combination of the above
  • The web copy will be static HTML (i.e. not using a CMS like Wordpress).
  • The print copy will be produced using Adobe InDesign (or other).
    • this could also be done by creating an authoring/editing/templating environment into which the web content (or marked up subset of content) could be imported and then massaged into print copy. Normally the web copy has more graphics and text than the print copy because the printing is done on small pieces of paper (about 8.5 inches by 5.5 inches). So there will need to be a way to say what parts of the web content is to be printed, and what parts are for web only.
  • Considerations should be given to ease of use, maintainability, accessibility, and standards compliance.
  • A GSoC candidate will be responsible to researching workflows, documenting each approach, and implementing prototypes.

Tag: fluid

Difficulty: Medium.

Mentor: Dana Ayotte, Jonathan Hung

IRC: danayo, jhung

Skills: HTML, CSS, Print workflows

Is this a coding project? What skills are required?

This is not a traditional coding project. Much of this project is researching possible solutions and workflows that will satisfy the project goal. A prototype or implementation can be created to demonstrate the feasibility of a solution.

A good candidate for this project should be able to demonstrate strong ability in independent research, and technical skills to build a web-to-print workflow. The exact technical skills are open and will depend on the ideas the candidate discovers during research. Helpful skills will be knowledge of HTML, CSS, Javascript, and tools that assist code automation (i.e. node, grunt, Python etc.).

What is meant by a "diff layer":

  • A "diff layer" is some sort of middleware that tracks changes on either the print side or the web side so that maintainers can ensure that changes are reflected in both online and print.

Additional Information:

Import External Data to MyL3

Project Description:My Life Long Learning Lab (MyL3) allows learners to become experimental researchers in subject of their own learning. MyL3 not only provides custom tools for learners to track their personal data, but it also allows them to import data from external sources to the system. This would enable learners to track various factors in one place, find potential correlations that may impact their learning, and make adjustments accordingly.

This project focuses on importing data from the following external sources to the MyL3 tracker to get real time data into the system:

Tag: fluid

Difficulty: Medium

Development Mentor: TBD

Design Mentor: Sepideh Shahi

IRC: sepidehshahi

Skills required: JavaScript, HTTPS

Upgrade AChecker

Project Description: AChecker is an online accessibility validator. It currently supports PHP versions up to PHP5. Also, some libraries used by AChecker, such as PHP HTML DOM Parser and PclZip, are no longer supported by their development team, which results in the same issue of being stuck at old PHP versions. This project includes:

  1. Upgrade AChecker to work with the latest PHP and MySQL;
  2. Replace or patch non-supported libraries.

References:

Tag: achecker

Difficulty: Medium

Mentor: Cindy Li

IRC: cindyli

Skills required: PHP, Javascript, HTML, CSS.

How to get started: Interested students should start by cloning AChecker github repository, setting up a local installation, getting familiar with its design and the code base. When ready:

  1. Pick some simple bugs from AChecker bug tracker to work on. (Note that when using the bug tracker, please first select "AChecker" project from the "Project:" drop down list box at the top right corner.)
  2. Understand and create a list of parts that need to be upgraded, research on how to upgrade and present the research result in the proposal.
  3. When upgrading libraries, the order of the preferred ways:
    1. Replace with PHP built-in features whenever possible;
    2. Replace non-supported libraries with other libraries that are under active development and support the latest PHP;
      1. Write technology evaluations when selecting replacement libraries. Some examples of technology evaluation can be found here.
    3. Patch the library to work with the latest PHP.