Community:SummerOfCode15:Brainstorming: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
(→‎Release Engineering: Move RelEng project to main page)
(Added idea to Calender)
 
(12 intermediate revisions by 6 users not shown)
Line 64: Line 64:
! Mentor(s)  
! Mentor(s)  
! Comments
! Comments
|-
| Python library and Sublime Text plugin for Firefox Developer Tools
| Develop a Python library that can use the Firefox [https://wiki.mozilla.org/Remote_Debugging_Protocol Remote Debugging Protocol] to interface with Firefox from an external text editor, and create a plugin for Sublime Text to showcase the capabilities of the library. An old [https://github.com/paulrouget/firefox-remote-styleEditors prototype] is already available and can serve as a starting point for further development.
| JavaScript, Python
| [https://mozillians.org/en-US/u/past/ past]
| [https://mozillians.org/en-US/u/past/ past]
|
|-
|-
|}
|}
Line 91: Line 98:
! Comments
! Comments
|-
|-
| Contact Blacklist
| {{bug|1133501}} Implement a blacklist to prevent specified contacts from calling or messaging the user.
| HTML, CSS, JS
| [mailto:yvtheja@gmail.com Vishnu Teja (:ythej)]
| [mailto:dsherk@mozilla.com Doug Sherk (:drs)]
| Already assigned to [mailto:yvtheja@gmail.com Vishnu Teja (:ythej)]
|}
|}


Line 137: Line 150:
! Mentor(s)  
! Mentor(s)  
! Comments
! Comments
|-
| Improve the JavaScript XMPP implementation and implement new features.
| Includes better error handling, implementing multi-user chats (MUCs), test coverage and adding new/missing features. Feature-parity with libpurple's XMPP implementation is one of the prerequisites for replacing it with the JavaScript implementation and is an end-goal of this project. Students are expected to compile a list of bugs or unimplemented features in the JavaScript XMPP code.
| JavaScript, XPCOM, an understanding of XMPP is desired
| Florian Quèze
| aleth, Patrick Cloke
|
|-
| Implement a new protocol plug-in in JavaScript
| Instantbird supports protocol plugins implemented in JavaScript. The student will add support for a new protocol in Instantbird. The student working on new protocols should take every opportunity to improve the code and APIs shared by all JavaScript protocol plugins (IRC, XMPP, Yahoo and Twitter). It is expected that the student research the feasibility of interoperability concerns of the protocol during the application period. Students are expected to implement a protocol they use on a day-to-day basis to dog-food the code.
| JavaScript, XPCOM, maybe js-ctypes, understanding of network protocols
| Patrick Cloke
| Patrick Cloke
| Possible protocols include: Google Hangouts, Facebook, WhatsApp, SIP, Bonjour, OSCAR, TextSecure or Telegram
|-
| File transfer support
| API design, backend implementation, frontend UI for supporting file transfers in Instantbird.
| XPCOM, JavaScript, webrtc, networking protocols
| nhnt11
| Patrick Cloke
|
|-
|-
| Infinite scroll
| Infinite scroll
Line 178: Line 170:
! Mentor(s)  
! Mentor(s)  
! Comments
! Comments
|-
| Keyboard Accessibility for Calendar
| [https://bugzilla.mozilla.org/show_bug.cgi?id=242112 bug 242112] Make Calendar keyboard-accessible. Keyboard actions to be added for navigation through various calendar elements and allow for alternative keyboard actions for point-and-click options.
| Javascript, XUL
| [https://mozillians.org/en-US/u/babhishek21/ babhishek21]
| [https://mozillians.org/en-US/u/kewisch/ Fallen]
|
|-
|-
|}
|}
Line 253: Line 252:
! Comments
! Comments
|-
|-
|-
|Treeherder for mobile
|Threeherder is a tool that allows to monitor test and build results generated by the gecko CI system.
The goal of this project is to build a simplified version of Treeherder, targeted to a mobile audience.
The data is already available through a restful API.
The mobile UI should allow to see if a push has failures and eventually drill down to identify which job failed on which platform.
|Good knowledge of JavaScript and CSS. Previous experience with angularjs would be beneficial, but it's not needed.
| mdoglio
| mdoglio
|
|}
|}


Line 351: Line 358:
! Comments
! Comments
|-
|-
| [https://github.com/noflo/noflo-ui NoFlo-UI]
| Implement an UI widget on noflo-ui. It could be a timeline (see [https://github.com/noflo/noflo-ui/issues/151 this issue]), plugins for IIP editing or packet display for particular data types. Considering the timeline widget, an initial prototype could be a component library (see [https://github.com/noflo/noflo-tween/blob/master/components/Timeline.coffee noflo-tween]). Proposals should include sketches and an implemented prototype (pull requested to noflo-ui).
| javascript, coffeescript, ux
| [[User:Forresto|Forresto]]
| [[User:Forresto|Forresto]]
| [http://noflojs.org NoFlo] is a JS dataflow implementation and has runtimes for browser, image processing ([https://github.com/jonnor/imgflo imgflo]), microcontrollers ([https://github.com/jonnor/microflo microflo]), SuperCollider ([https://github.com/jonnor/sndflo sndflo]) and other targets. [https://app.flowhub.io Flowhub] is the browser-based IDE for the creation of NoFlo graphs.
|-
| [https://github.com/tweenjs/tween.js Tween.JS]
| Port Tween.js to ES6 and make it a modern citizen of the JS world
| javascript, web animations, graphics
| [[User:Sole|Sole]]
| [[User:Sole|Sole]]
| Tween.JS is a small engine for declaring and running interpolations between values. It's used in interactive experiences, games and all sorts of projects.
|-
| [https://github.com/sole/Animated_GIF Animated_GIF]
| Refactor and build a version 2, splitting the library into independent reusable modules. Also work on compatibility with Firefox OS.
| javascript, web animations, graphics, web workers, pixel handling, canvas
| [[User:Sole|Sole]]
| [[User:Sole|Sole]]
| Animated_GIF is a library for generating Animated GIFs on the browser. It's used in demo apps in mozilla, some properties at webmaker, the wildly successful chat at meatspac.es and who knows where else.
|-
| Create image filters using [http://noflojs.org NoFlo]
| It's possible to start prototyping image filters using [https://app.flowhub.io Flowhub] (use [https://www.filterforge.com/ Filter Forge]'s filters as inspiration and our porting of [https://github.com/jonnor/imgflo/wiki/Recreating-Instagram-filters some Instagram filters]) and components libraries like [http://github.com/noflo/noflo-image noflo-image] and [http://github.com/noflo/noflo-canvas noflo-canvas], then port the filters to imgflo. Another option is to create filters directly on imgflo using GEGL. Proposals should include a running NoFlo graph for a non-trivial image filter, together with sketches and original/processed images. Imgflo+GEGL filters are preferred. Pull requests to noflo-image and imgflo are a plus.
| javascript, coffeescript, noflo, cpp, computer vision basics
| [[User:Vilsonvieira|Vilson Vieira]]
| [[User:Vilsonvieira|Vilson Vieira]]
| [http://noflojs.org NoFlo] is a JS dataflow implementation and has runtimes for browser, image processing ([https://github.com/jonnor/imgflo imgflo]), microcontrollers ([https://github.com/jonnor/microflo microflo]), SuperCollider ([https://github.com/jonnor/sndflo sndflo]) and other targets. [https://app.flowhub.io Flowhub] is the browser-based IDE for the creation of NoFlo graphs. [http://gegl.org GEGL] is a graph-based image processing framework used by imgflo (it's also possible to use noflo-canvas instead of GEGL, but GEGL is preferred due to performance reasons).
|}
|}


Line 416: Line 396:
! Comments
! Comments
|-
|-
| Rust Code Completion for SublimeText
| This project would develop a plugin for the Sublime Text editor that provides code completion for the Rust programming language, by integrating with the Rust [Racer](https://github.com/phildawes/racer) project. This would require interfacing between Python (for the Plugin) and Rust (for Racer).
| Rust, Python
| pnkfelix
| pnkfelix
|
|}
|}


Line 486: Line 460:
! Comments
! Comments
|-
|-
|}
== Webmaker ==
{| class="standard-table" border="1" style="border-collapse: collapse"
|-
! Title
! Details
! Skills Needed
! Reporter
! Mentor(s)
! Comments
|-
| AWS cli tool for deploys/rapid prototyping
| Help build/explore options for a heroku-like cli tool for rapid prototyping and development in the Webmaker ecosystem that interfaces with our AWS infrastructure.
| nodejs
| [[User:k88hudson|k88hudson]]
| [[User:k88hudson|k88hudson]]
| clokep: There are tools that let you interact with AWS on the command line. I'm unsure if they do exactly what you want and doubt they're written in node (the [https://github.com/aws/aws-cli official one] is written on top of their [https://github.com/boto/boto Python library]).
|-
| Developer experience for Cordova Android/Firefox OS
| Help fix bugs, improve documentation, learning resources, and developer experience for build tools, tests, and deployment of Cordova Firefox OS / Android projects
| javascript, nodejs
| [[User:k88hudson|k88hudson]]
| [[User:k88hudson|k88hudson]]
| clokep: I'm unsure what this is, it sounds like "Work on Cordova Android/Firefox OS and fix some documentation for 3 months". We like GSoC projects to have a specific goal in mind. Maybe this just needs a bit of rewording though.
|-
| Webmaker.app for iOS
| Develop an iOS version of our Cordova application (currently implemented for Android/Firefox OS)
| javascript, nodejs
| [[User:k88hudson|k88hudson]]
| [[User:k88hudson|k88hudson]]
| clokep: I have no idea how Webmaker.app works, but does this not need any iOS specific development skills (e.g. ObjectiveC)?
|-
| Prototype in-app payments for Webmaker.app
| Users can create mobile web apps with Webmaker.app, but what if they could accept payments? Explore options like paypal, stripe, etc. and develop a prototype using Cordova/web tech.
| javascript, nodejs, css, html
| [[User:k88hudson|k88hudson]]
| [[User:k88hudson|k88hudson]]
| clokep: I'm having a bit of trouble understanding the final end goal of this: is it simply to have a prototype that includes, e.g., PayPal? What will that help us do?
|}
|}


Line 499: Line 513:
! Comments
! Comments
|-
|-
| [http://www.mozillascience.org/projects/contributorship-badges Contributorship Badges] Visualizations
| Create a series of javascript snippets that authors and publishers can use to display authorship badges on their sites. Badges will be issued using PaperBadger -- a service using Open Badges to issue badges to an ORCID and paper DOI. Exploring the use of digital badges for crediting contributors to scholarly papers for their work.
| javascript, PaperBadger API (in development)
| [[User:Abby|Abby]]
| [[User:Abby|Abby]]
| As the research environment becomes more digital, we want to test how we can use this medium to help bring transparency and credit for individuals in the publication process. This work is a collaboration with publishers BioMed Central (BMC) and the Public Library of Science (PLoS); the biomedical research foundation, The Wellcome Trust; the software and technology firm Digital Science; the registry of unique researcher identifiers, ORCID; and the Mozilla Science Lab.
Background Reading: http://mozillascience.org/contributorship-badges-a-new-project/
http://news.sciencemag.org/scientific-community/2014/11/could-digital-badges-clarify-roles-co-authors
http://www.nature.com/news/publishing-credit-where-credit-is-due-1.15033
Note for clokep: I removed dependent projects if that's what's holding this project back in brainstorming?
|}
|}

Latest revision as of 16:00, 3 March 2015

Mozilla community members - submit proposals here for 2015 Google Summer of Code projects with Mozilla. (If this page looks empty, it's because accepted ideas have already been transferred to the official list.) The absolute last deadline for submitting ideas in time to help us get accepted by Google is February 20th.

Are you a students looking to apply to SoC with Mozilla? Your first stop should be the official list of ideas. This page is full of weird and whacky ideas, some of which are still on here for a reason - it could be that they are not properly defined, the wrong size, or don't have a mentor. That makes them less likely to get accepted. You can, of course, also submit your own ideas - you don't have to put an idea on this page and get it 'made official' in order to send in a proposal for it.

How To Write A Good Project Proposal

Before adding an proposal to this list, please consider the following:

  • Be specific. It's hard to understand the impact of, or the size of, vague proposals.
  • Consider size. The student has eight weeks to design, code, test and document the proposal. It needs to fill, but not overfill, that time.
  • Do your research. Support the idea with well-researched links.
  • Don't morph other people's ideas. If you have a related idea, place it next to the existing one, or add a comment.
  • Insert only your own name into the Mentor column, and then only if you are willing to take on the responsibility. If you think the SoC admins won't know who you are, leave contact details.
  • Check back regularly. The administrators may have questions about your idea that you will need to answer.
  • Know when to give up. If you've added the same idea for the last three years and it hasn't made it to the official page, perhaps you can predict what will happen this time.

Suggestion List

Here are the ideas lists from previous years.

Proposals can be in almost any part of the Mozilla project - don't be fooled by the "Code" in "Summer of Code". If there is no category below for your part of Mozilla, add one!

Mozilla Platform (Gecko)

Title Details Skills Needed Reporter Mentor(s) Comments

Firefox

Title Details Skills Needed Reporter Mentor(s) Comments
Firefox Performance Dashboard This project would implement the dashboard described in bug 1132498. Collecting the memory and CPU usage of addons and webpages and displaying it in a fashion that shows bad actors would be valuable for power users. HTML, CSS, JavaScript jdm

Firefox Developer Tools

Title Details Skills Needed Reporter Mentor(s) Comments
Python library and Sublime Text plugin for Firefox Developer Tools Develop a Python library that can use the Firefox Remote Debugging Protocol to interface with Firefox from an external text editor, and create a plugin for Sublime Text to showcase the capabilities of the library. An old prototype is already available and can serve as a starting point for further development. JavaScript, Python past past

Firefox for Android

Title Details Skills Needed Reporter Mentor(s) Comments

Firefox OS / Boot2Gecko

Title Details Skills Needed Reporter Mentor(s) Comments
Contact Blacklist bug 1133501 Implement a blacklist to prevent specified contacts from calling or messaging the user. HTML, CSS, JS Vishnu Teja (:ythej) Doug Sherk (:drs) Already assigned to Vishnu Teja (:ythej)

Thunderbird

Title Details Skills Needed Reporter Mentor(s) Comments
Performance testing Add and deploy a performance testsuite for Thunderbird to catch regressions in areas such as startup, message search, folder display, message display, etc. JavaScript, Python, preferably some performance analysis experience jcranmer ? Needs a mentor -- florian
Secure email UI Develop good interfaces for key management and illustrating the security levels of messages succinctly, preferably applicable to both S/MIME and OpenPGP. Strong UX experience; JS, XUL or HTML; crypto background advantageous jcranmer ? Summer of Code is about coding, not about UX work; asking students to do UX work often leads to disappointing results -- florian. This may be too large a task; narrowing focus could be useful.
Integrated pdf.js support in thunderbird (bug 810815) Firefox ships with integrade PDF viewing capabilities using pdf.js. This functionality is not present in Thunderbird yet but would obviously be useful. JavaScript mkmelin ? Unclear about how much work it is.

Instantbird

Title Details Skills Needed Reporter Mentor(s) Comments
Infinite scroll Add additional messages from the logs on-demand as the user scrolls up/down. Old messages should be removed when no longer needed, while not breaking any existing features. JavaScript, XUL, CSS nhnt11 nhnt11 + ???

Calendar

Title Details Skills Needed Reporter Mentor(s) Comments
Keyboard Accessibility for Calendar bug 242112 Make Calendar keyboard-accessible. Keyboard actions to be added for navigation through various calendar elements and allow for alternative keyboard actions for point-and-click options. Javascript, XUL babhishek21 Fallen

SeaMonkey

Title Details Skills Needed Reporter Mentor(s) Comments

NSS (Network Security Services)

Title Details Skills Needed Reporter Mentor(s) Comments

Bugzilla

Title Details Skills Needed Reporter Mentor(s) Comments

Firefox Support (SUMO)

Title Details Skills Needed Reporter Mentor(s) Comments

QA

Title Details Skills Needed Reporter Mentor(s) Comments

Automation & Tools

Title Details Skills Needed Reporter Mentor(s) Comments
Treeherder for mobile Threeherder is a tool that allows to monitor test and build results generated by the gecko CI system.

The goal of this project is to build a simplified version of Treeherder, targeted to a mobile audience. The data is already available through a restful API. The mobile UI should allow to see if a push has failures and eventually drill down to identify which job failed on which platform.

Good knowledge of JavaScript and CSS. Previous experience with angularjs would be beneficial, but it's not needed. mdoglio mdoglio

Documentation

Title Details Skills Needed Reporter Mentor(s) Comments

Mozilla Developer Network

Title Details Skills Needed Reporter Mentor(s) Comments

Mozilla IT and Infrastructure

Title Details Skills Needed Reporter Mentor(s) Comments

Sync / Services

Title Details Skills Needed Reporter Mentor(s) Comments

Developer Tools

Title Details Skills Needed Reporter Mentor(s) Comments

Add-on SDK

Title Details Skills Needed Reporter Mentor(s) Comments

Foundation

Title Details Skills Needed Reporter Mentor(s) Comments

OpenArt

Title Details Skills Needed Reporter Mentor(s) Comments

Release Engineering

Title Details Skills Needed Reporter Mentor(s) Comments

Emscripten

Title Details Skills Needed Reporter Mentor(s) Comments

Rust

Title Details Skills Needed Reporter Mentor(s) Comments

Servo

Title Details Skills Needed Reporter Mentor(s) Comments

Security Engineering

Title Details Skills Needed Reporter Mentor(s) Comments

Localization

Title Details Skills Needed Reporter Mentor(s) Comments

Build system

Title Details Skills Needed Reporter Mentor(s) Comments

Security Assurance

Title Details Skills Needed Reporter Mentor(s) Comments

Webmaker

Title Details Skills Needed Reporter Mentor(s) Comments
AWS cli tool for deploys/rapid prototyping Help build/explore options for a heroku-like cli tool for rapid prototyping and development in the Webmaker ecosystem that interfaces with our AWS infrastructure. nodejs k88hudson k88hudson clokep: There are tools that let you interact with AWS on the command line. I'm unsure if they do exactly what you want and doubt they're written in node (the official one is written on top of their Python library).
Developer experience for Cordova Android/Firefox OS Help fix bugs, improve documentation, learning resources, and developer experience for build tools, tests, and deployment of Cordova Firefox OS / Android projects javascript, nodejs k88hudson k88hudson clokep: I'm unsure what this is, it sounds like "Work on Cordova Android/Firefox OS and fix some documentation for 3 months". We like GSoC projects to have a specific goal in mind. Maybe this just needs a bit of rewording though.
Webmaker.app for iOS Develop an iOS version of our Cordova application (currently implemented for Android/Firefox OS) javascript, nodejs k88hudson k88hudson clokep: I have no idea how Webmaker.app works, but does this not need any iOS specific development skills (e.g. ObjectiveC)?
Prototype in-app payments for Webmaker.app Users can create mobile web apps with Webmaker.app, but what if they could accept payments? Explore options like paypal, stripe, etc. and develop a prototype using Cordova/web tech. javascript, nodejs, css, html k88hudson k88hudson clokep: I'm having a bit of trouble understanding the final end goal of this: is it simply to have a prototype that includes, e.g., PayPal? What will that help us do?

Mozilla Science Lab

Title Details Skills Needed Reporter Mentor(s) Comments
Contributorship Badges Visualizations Create a series of javascript snippets that authors and publishers can use to display authorship badges on their sites. Badges will be issued using PaperBadger -- a service using Open Badges to issue badges to an ORCID and paper DOI. Exploring the use of digital badges for crediting contributors to scholarly papers for their work. javascript, PaperBadger API (in development) Abby Abby As the research environment becomes more digital, we want to test how we can use this medium to help bring transparency and credit for individuals in the publication process. This work is a collaboration with publishers BioMed Central (BMC) and the Public Library of Science (PLoS); the biomedical research foundation, The Wellcome Trust; the software and technology firm Digital Science; the registry of unique researcher identifiers, ORCID; and the Mozilla Science Lab.

Background Reading: http://mozillascience.org/contributorship-badges-a-new-project/

http://news.sciencemag.org/scientific-community/2014/11/could-digital-badges-clarify-roles-co-authors

http://www.nature.com/news/publishing-credit-where-credit-is-due-1.15033

Note for clokep: I removed dependent projects if that's what's holding this project back in brainstorming?