Difference between revisions of "GSoC2013 Web Payments WebKeys Client"
|Line 54:||Line 54:|
Revision as of 09:27, 27 April 2013
GSoC2013 Web Payments WebKeys Client
the Web Payments work, will have a huge impact on the way that we deal with money as a society on the Web. It has very far-reaching implications and will lay the groundwork for a fully programmable financial network that will be accessible to everyone on the Web. The goal of the work is the democratization of finance; it will place the financial tools that have typically only been available to large banks and corporations into the hands of everyday people.
Name: Amr Fahmy
Personal Website: http:www.amrfahmy.info'
Skype ID or SIP address: amr.karam.fahmy
Phone number: +202 01009829173
School Name: Helwan University.
Years completed: 4 years
Link to project description: http://www.w3.org/wiki/GSoC2013_Web_Payments_WebKeys_Client
Describe your idea in detail:The Web Payments work, if successful, will have a huge impact on the way that we deal with money as a society on the Web, The Web Payments work is built on top of the previous two technologies, RDFa and JSON-LD. Manu Sporny :"The Web has fundamentally transformed the way we publish and interact with information. However, the way we reward people for creating that content has not changed. The Web’s foundation was not built to transmit and receive funds with the same ease as sending and receiving an email"
The Web Payment Requirements
- It must be decentralized.
- It must be an open, patent and royalty-free standard.
- It must be designed to work with Web architecture like URLs, HTTP, and other Web standards.
- It must allow anyone to implement the standard and interoperate with others that implement the standard.
The above requirement Which Manu Sporny has described before that there is another requirement that it will be good feature for web payment
- It must enable choice among customers, vendors, and payment processors, in order to drive healthy market competition.
- It must be extensible in a decentralized way, allowing application-specific extensions to the core protocol without coordination.
- It must be flexible enough to perform payments as well as support higher order economic behaviors like crowdfunding and executing legal contracts.
- It must be secure, using the latest security best practices to protect the entire system from attack.
- It must be currency agnostic, supporting not only the US Dollar, the Euro, and the Japanese Yen, but also supporting virtual currencies like Bitcoin and Ven.
- It must be easy to develop for and integrate into the Web.
So from my point of view the future web-service will be depend on:
- Message verifiability
- Secure messaging
- Dynamic access control to resources
The challenge has always been in building an extensible, distributed, Public Key Infrastructure for the Web. This specification details how a decentralized Public Key Infrastructure can be built on top of the Web using Linked Data principles. This system can then be used to easily achieve message verifiability, secure messaging, and dynamic access control to resources on the Web.
Manu Sporny said: Web Keys are not a replacement for Transport Layer Security, but are designed to work in concert with the security protocol. Web Keys are also capable of in environments where TLS is not available to the application.
What have you done so far with this idea: Include any work or research on this project you have already done. Sharing the project idea on the appropriate mailing list in advance of your application is a good idea; if you have done so, summarize the list response to your project idea/approach. Note: summarize the discussion here; do NOT just link to the mailing list archive.
Anticipated challenges: Identify any challenges or risks there are to the project not being as successful as you hope or not being complete by the end of the GSoC term.
Potential mentors: If you have identified a person(s) to mentor you on this project, please name him/her here. If you have already been in communication with this person(s), please summarize your discussions so far (i.e., have you asked for feedback on the scope, have you already started talking about code approaches?). If you have not spoken with any mentors yet, but are interested in working with someone specific, say who and why. If you have no preference on who mentors you, just write, "No preference."
Schedule of Deliverables
Milestones and deliverables schedule: What are the milestones and deliverables for your project? It should take the form of a list with dates and deliverables. A task and/or milestone for each week of the development period is a good idea, since it will help your mentor keep you on track to complete your project. For example:
- Month/Date - Revise project plan with mentor, set up development environment
- Month/Date - Determine how to structure plugin, begin coding
- Month/Date - Submit first draft code for review
etc. You get the idea. The more detailed you are, the more convinced we'll be that you've thought about this project realistically. If accepted, the first thing you'll do will be to work with your mentor to define a very specific commitment regarding deliverables and schedule to determine eligibility for full student payment at the halfway mark and at the end of the program. This will help limit disappointment for both mentors and students.
Other commitments: Do you have any other commitments during this time that could impact your ability to be online, coding and/or communicating with your mentor? Include school, work and family commitments.
Open Source Development Experience
Coding Experience: Explain all relevant prior experience that you have had with programming for an open source project. Languages, toolkits, IDEs, how do you work best (group or individual-based work, etc.). This may be other closed source projects, but giving a link to previous open source work that you've done would be ideal.
Work Experience: List any work experience you've had relevant to the proposed project, blogging, or software development. If you've bagged groceries, it's probably not relevant, but it shows that you can work in a collaborative environment, so a full resume isn't a bad idea! You can include paid jobs, internships, academic assistantships, etc. Identify for each job what your responsibilities were and how your success was measured (deadlines/deliverables, or just being there?).
Academic Institution: Identify your college/university by name, and give its location (city, state/province/etc, country).
Current Program: Identify your major, what degree type you are working on (BA, MS, PhD, etc), and what year you are (freshman, junior, 2nd year candidate, etc).
Anticipated Graduation: Give the year you expect to complete your program.
Academic Performance: List what you're studying in university/college that is relevant, how you're doing in your program, etc. Please be specific about which programming courses you've completed. An official transcript is not necessary, but cutting and pasting the course names and grades you've earned so far will help us understand your background better and tailor project scope accordingly.
GSoC for Credit: Are you planning to use your GSoC project as an independent study for college credit? For this question, write "Yes" or "No". If yes, please include the title of your independent study and the name and email address of the professor who would be your independent study advisor.
References: Please give the names and email addresses of up to 4 computer science professors (and/or relevant employers) who can vouch for your experience.
You're applying to work with the World Wide Web Consortium (W3C) during GSoC because: Tell us why you chose to apply with us. Be as specific as possible.
After GSoC, you envision your involvement with W3C will be: Over? Ongoing? Evolve into being a core participant or committer? Tell us what you envision your participation with the W3C will be like after GSoC2013 comes to an end?
Helpful Links for Students
This template is based heavily on the WordPress GSoC template, much thanks to the WP Community for putting that together.