Warning:
This wiki has been archived and is now read-only.

GSoC2014ProjectIdeas

From Web Payments
Jump to: navigation, search

Introduction

The purpose of the Web Payments Community Group is to discuss, research, document, prototype and test web payment systems. This work is done in order to make progress toward possible future standardization and interoperability of these solutions. The goal of this Group is to forge a path for a secure, decentralized system of web payments that would empower both individual people and organizations on the Web to send and receive money as easily as they exchange instant messages and email today. In addition to documentation, this Group collaborates on and shares various proof-of-concept solutions and components through open source methods, unencumbered by patents or royalties. The groups interests range from protocols like Bitcoin, Ripple, and Ethereum to Web Identity to decentralized product listings and digital receipts to algorithmic trading.

In general, this Community Group provides an inclusive venue where web payment solutions, regardless of their origin, can be incubated, evaluated, refined, and tested. The focus of the group is to promote payment innovations based primarily on their technical merit. This approach invites competing technical designs to be submitted and incubated in the same group. The hope is that this strategy will lead to either the merging of the best aspects of each technical design, or a clear differentiation emerging between alternative designs.

We're seeking driven Google Summer of Code students for the summer of 2014. If you've ever wanted to get involved in the exciting world of cryptocurrencies, digital cash, cryptographic identity and payments, here's your chance! The list of project ideas can be found in the next section, but don't limit yourself to picking from just the list below. If you'd rather focus on something else that really excites you related to Web Payments, let us know and we'd be happy to help you refine your submission to give you a good chance at getting a paid internship to do what excites you.

The GSoC 2014 submission template can be found all the way at the bottom of the page, please make sure to fill it out. Feel free to add any extra information that you feel is pertinent.

Novice Project Ideas

These project ideas are designed for people in the early years of their university studies or people that want to contribute more to teaching others about Web Payments and how to contribute to the projects.

Web Payments Primer Document

Document and diagram how the entire Web Payments architecture fits together by expanding upon the developer articles on PaySwarm at Mozilla Hacks blog: part 1, part 2, part 3. Describe how identity flow works, product listing flow, and buy flow. Communicate heavily with the Web Payments Community group and document the technical roadmap for the group.

Skills: Technical writing, JavaScript, HTML5, CSS3

Secure Messaging Client Library

Write an open-source Secure Messaging client library that is capable of creating and registering a public/private key pair and making calls to a server given a public key to use when digitally signing HTTP messages and then verifying responses it gets back.

Specifications you will be implementing/using: Secure Messaging and HTTP Signature Authentication Scheme
Skills: (JavaScript, Python, or PHP), REST APIs

Secure / HTTP Messaging Signature Testing Tool

Write a testing tool that helps people debug Secure Messaging and HTTP Signature Authentication Scheme messages. The browser-based tool should be able to generate or use public/private keypairs, use the jsonld.js normalization library to normalize content, and digitally sign the content. The tool should also be capable of creating and verifying HTTP Signature Authentication scheme messages. The tool should be able to pull down data from external websites and show each step of the digital signature and encryption algorithm steps. All of the complex cryptography tooling has been written and only the front-end HTML and JavaScript needs to be written.

Specifications you will be using: JSON-LD, Secure Messaging and HTTP Signature Authentication Scheme
Skills: (JavaScript, HTML5), REST APIs

Intermediate Project Ideas

Secure Messaging Server Library

Implement a Secure Messaging server library that is capable of registering and storing public keys in a database and fulfilling certain requests based on digitally signed HTTP messages. You will need to refer to the Secure Messaging specification and the HTTP Signature Authentication Scheme to implement the library.

Skills: (JavaScript, PHP, or Python)

Decentralized For-Profit WiFi Access Point

Create a developer example website that is capable selling access to a WiFi/mobile hotspot/femto-cell using PaySwarm libraries in PHP, Python, or JavaScript.
Skills: (PHP, Python, or JavaScript), Web Payments, JSON-LD, RDFa, Secure Messaging, REST APIs

Decentralized App Store / Marketplace

Create a developer example website that is capable selling access to Web Apps in PHP, Python, or JavaScript.
Skills: (PHP, Python, or JavaScript), Web Payments, JSON-LD, RDFa, Secure messaging, REST APIs

In-app Web Payments Library

Create a library that can be used to make purchases via the PaySwarm development sandbox website and API. HTML5-based applications and games should be able to use this library to make in-app/in-game purchases.
Skills: JavaScript, HTML5, PHP, Web Payments, JSON-LD, Secure messaging, REST APIs

Transaction Visual Analysis Tool

Create a visualization tool using D3 that is capable of analyzing Web Payment transactions (and the associated assets). This tool should provide useful visualizations of purchases made on websites or applications that use Web Payments.
Skills: JavaScript, D3.js

Special Product Web Payments Website

Create a simple website that lists assets using specialized Linked Data vocabularies. Existing or new Linked Data vocabularies can be leveraged. Example assets include: groceries, clothing/shoes, cleaning supplies, music, movies. Assets purchased through this website should contain useful Linked Data that could be leveraged by new an innovative applications.
Skills: PHP, JavaScript, Python, HTML5, JSON-LD, Linked Data, REST APIs

Web Payments Tax Web App

Create a Web application that can analyze Web Payments transactions for tax purposes. The application would ideally have a mechanism for reading arbitrary tax rules in a JSON-LD format; the rules could then be applied to a set of transactions and produce a useful tax report.
Skills: JavaScript, HTML5, PHP, Python, JSON-LD, Web Payments, REST APIs

Web Payments Asset and Listing Playground

Create a Web app that allows people to experiment with creating Assets and Listings. The application should have a sophisticated UI to allow custom vocabularies for Assets and various pricing models for Payees to be experimented with. It should generate viable Assets and Listings in JSON-LD format.
Skills: JavaScript, HTML5, Web Payments, JSON-LD

Web Payments Shopping Cart Library

Create a shopping cart library that websites and Web applications can use to bundle and sell assets.
Skills: JavaScript, HTML5, Web Payments, JSON-LD

Advanced Project Ideas

Verified Identity Client and Server

Implement the Verified Identity Client and Server in node.js, PHP, or Python. The server must be able to create a new identity and verify requests to add information to the identity. The client should be able to digitally sign and add information to the identity.

Specifications you will be implementing: Verified Identity
Skills: (JavaScript, PHP, or Python), REST APIs

Drupal Web Payments Plugin

Create a basic Web Payments client for Drupal based off of the WordPress PaySwarm client.
Skills: PHP, Drupal, RDFa, JSON-LD, PaySwarm, Web Keys, REST APIs

Joomla Web Payments Plugin

Create a basic PaySwarm client for Joomla based off of the WordPress PaySwarm client.
Skills: PHP, Joomla, RDFa, JSON-LD, PaySwarm, Web Keys, REST APIs

Arcade Game

Help refine the Web Payments in-app purchase process by creating a node.js+HTML5-based arcade game. The game must require the purchase of tokens to continue playing. Purchases must occur through the PaySwarm sandbox developer website and API.
Skills: JavaScript, HTML5, Web Payments, JSON-LD, Secure Messaging, REST APIs

Mentors

Manu Sporny <msporny@digitalbazaar.com>, Dave Longley <dlongley@digitalbazaar.com>, Dave Lehn <dlehn@digitalbazaar.com>