Warning:
This wiki has been archived and is now read-only.
GSoC2014ProjectIdeas
Contents
- 1 Introduction
- 2 Novice Project Ideas
- 3 Intermediate Project Ideas
- 3.1 Secure Messaging Server Library
- 3.2 Decentralized For-Profit WiFi Access Point
- 3.3 Decentralized App Store / Marketplace
- 3.4 In-app Web Payments Library
- 3.5 Transaction Visual Analysis Tool
- 3.6 Special Product Web Payments Website
- 3.7 Web Payments Tax Web App
- 3.8 Web Payments Asset and Listing Playground
- 3.9 Web Payments Shopping Cart Library
- 4 Advanced Project Ideas
- 5 Mentors
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>