Aller directement à la fin des métadonnées
Aller au début des métadonnées

 

This is a list of potential projects students participating in Google's Summer of Code program might be interested in working on.  Ideas should be submitted with enough detail that a student interested in the project could create a full proposal for the project. 

Student Resources

Full Project Proposal Template

Mentor Resources

Signing Up for a Melange Account

GSOC invite email

Potential Development Mentors

Kevin Reynen (GSoC Organization Admin) - I'm kreynen on Drupal.org, CiviCRM.org, IRC, and Github.  My expertise is primarily in Drupal modules that improve CiviCRM integration including: CiviCRM CronCiviCRM Multiday Event, and CiviCRM Certify.  I maintain the CiviCRM Starter Kit distribution which makes it easier to start a site with Drupal and CiviCRM.  I am interested in mentoring project that improve Drupal integration, migrate functionality from Drupal to CiviCRM native extension, are beneficial to Community Media's CiviCRM's use and/or improve the user experience for new CiviCRM users.  I'll primarily be in Mountain Standard Time during the summer.  I only speak English.

Xavier Dutoit (GSoC Organization Admin)  - I'm xavier from tech to the people, xavier on civicrm, and tttp on github and drupal.org. My main areas of expertise are online campaigning and dataviz. I'm interested in mentoring projects that focus on dataviz (d3/dc) and civicampaign. I'm based in Europe. I speak french and english.

Tim Otten - I'm totten on civicrm.org, IRC, Github, and drupal.org. I'm one of the core developers for CiviCRM. My main interest is making it easier to develop with CiviCRM. My CiviCRM work has included overhauling the extension framework as well as development of the "civix" tool, the graphical form designer (and other Backbone-based UIs), the continuous-integration infrastructure, and the CiviHR suite of extensions. I live in San Francisco and speak only English.

Parvez Saleh - I'm Parvez from Veda Consulting. My main areas of expertise are CRM's for Not for Profits, in particular integration with financial systems and mapping business processes to CRM workflow. My primary interest is to ensure that charities are not restricted to closed source only systems for their CRM needs, ensuring that CiviCRM is a viable alternative to the traditional closed source systems. I'm interested in mentoring projects that focus around Donor Journeys in CiviCRM, integration with third party systems and drupal rules / maestro + civicrm. I'm based in the UK, in the USA during CiviCon SF, available online most of the time. I speak english, hindi and gujarati.

Kurund Jalmi - I'm kurund on civicrm, drupal.org, irc, github and most other channels. I'm one of the core developers for CiviCRM. My primary interest is to improve overall UI and usability in CiviCRM and make a it simple and easy to use by non-technical users. I'm also interested in mentoring projects that improve Civi's core capabilities, migrating Civi to use Symfony and Doctrine. I live in Mumbai and speak english, hindi, konkani and marathi.

Nina Reyes - I'm Nina from Palante Technology Cooperative.  I'm a front-end developer with extensive Drupal site building and theming experience, and I've also adapted custom Drupal themes for use with CiviCRM on both the admin and user side.  I'm also the Web Director for Hyphen magazine.  I'm based in Brooklyn, NY, and speak English.

Brian Shaughnessy - I'm from Lighthouse Consulting & Design and am a CiviCRM geek. I write code, fix things, argue with the core team – but always end the argument with a compliment, write books, and am currently #10 on the CiviCRM github commit contributors list. I am based in Albany, NY, and I speak English, PHP, and CiviCRM. I was a GSOC mentor for the Joomla project a few years back, so I have some experience with how things work. I just wish I could get my name to blink, but I guess they disabled that html element.

Mark Hanna - I'm Mark, Senior Developer at Skvare, jackrabbithanna on civicrm.org and irc, and markusa on drupal.org. My main areas of expertise are custom development solutions for Drupal and CiviCRM, and site-building techniques for the implementation and integration of CiviCRM and Drupal. Based in Dallas, TX and I speak English.

Peter Petrik - I'm Peter from Skvare, Slovak on civicrm.org, irc, and drupal.org. I bridge the worlds of business and technology. Technical to get into custom code, and business savvy to see the big picture and lead client organizations to successful CiviCRM implementations. I am based in Dallas, TX and I speak English.

Eileen McNaughton - I'm Eileen from Fuzion. I have contributed a fair amount of code to core with my involvement in the v3 API being the most well known area. I have also been heavily involved in extending testing within CiviCRM and support a couple of Drupal integration modules.  I am interesting in making the logic inside CiviCRM less tightly coupled with the existing forms to allow more developer flexibility and make CiviCRM better able to adopt change. I am based in Whangarei, New Zealand and I speak English.

Nicolas Ganivet - I'm Nicolas from Cividesk. I am an active contributor to CiviCRM, a founder and key contributor to the LTS version, and also do maintain a Standalone distribution for my customers. I have created numerous extensions for CiviCRM including the Google Apps Sync, Constant Contact Sync, Normalize and many others. I do live in Denver, Colorado and speak French and English.

Joe Murray - I'm Joe from JMA Consulting. I have contributed some code to core, and supervised developers who have made major contributions to core especially in accounting. I've worked with my developers to develop CiviCRM extensions for small usability improvements, large functionality enhancements (grants), and integrations with other products (Mandrill, soon attentive.ly). I also write books with Brian like Using CiviCRM and help political campaigns and non-profits achieve their missions. I'm interested in mentoring projects in the areas of accounting (contributions/memberships/events/grants), large data migrations, VOIP integration, automated installs of customized versions of CiviCRM, and other cool and useful things. I am fluent in English and SQL, and get by in French and many programming languages.

Emily Frazier - I'm Emily from First Turn Media. We work with nonprofits in the United States, largely in community media organizations and organizations with an environmental focus. Many of my clients use CiviCRM, and I am an active community member.

IF YOU MEET THE MENTOR QUALIFICATIONS AND ARE INTERESTED IN PARTICIPATING, PLEASE ADD YOURSELF HERE

Potential Organizational Mentors

These people will act as official or unofficial co-mentors of the project.  If a project idea is coming from an organization without a developer on staff, ideally they would volunteer time to help manage project scope, usability testing etc.

Owen Bowden - I'm the Insight Manager for the blood cancer charity, Leukaemia & Lymphoma Research. I manage the largest CiviCRM installation in the UK. We are active community members and contribute code and functionality back the the core project. I can advise on real world applications of projects and how they can make a difference to NGOs and charities. I'm in London on GMT time and speak English. 

John Sullivan - NEED TO ADD FREE SOFTWARE FOUNDATION BLURB

Lesley Parton - I'm the civi admin for the Conservation Council of South Australia and a few other non profits. Many of them are looking longingly at other solutions with better social network integration and easier interfaces (eg Nation Builder and Causevox), particularly for campaigning and peer to peer fundraising - but I love Civicrm! I'm happy to help in any way I can with the Social Media Integration, Mail Blast and Bootstrap projects.
I'm in Adelaide on GMT +9.5 and speak English and Australian. 

IF YOU MEET THE CO-MENTOR QUALIFICATIONS AND ARE INTERESTED IN PARTICIPATING, PLEASE ADD YOURSELF TO THE LIST ABOVE

PROJECT IDEAS


Google Summer of Code has started!  Google funded 6 of these CiviCRM projects.  If you are interested in getting involved next year, please add you name or idea to the Google Summer of Code - 2015 wiki.

These are ideas for projects developed by potential mentors.  Potential GSoC students are free to propose projects that are not on this list, but will need to work with the community to find a qualified mentor for the project. Students begin applying on projects on March 10.  Student applications are submitted after registering for a Melange account.

Feel free to continue adding project ideas, potential development mentors, and/or organizational mentors until the student deadline of March 21.


Universal Sync interface

Themes: web services, mashups, cloud computing

Potential Mentors: nganivet
Organization Feedback:  ?
Discussion: 

CiviCRM supports synchronization to Google Apps and multiple email marketing services (Mailchimp, Constant Contact, Vertical Response) through extensions. However these extensions have been written by different contributing organizations and with different purposes in mind. As a result, the functionality, configuration and mode of operation of these synchronization extensions are vastly different.

This project would start by defining high-level needs for synchronization between CiviCRM and other kind of software (email marketing services, directories, email clients, other CRMs, other CMS's, etc.), define a common interface for all synchronization extensions (similar to what is existing for payment processor extensions), and port existing extensions to this new interface as a proof of concept. Some of the common needs do include:

  • specifying whether we sync all the CiviCRM database or just a subset of it
  • defining mappings between CiviCRM groups and similar notion in the target system (mailing lists, groups, OUs, ...)
  • creating and maintaining a synchronization queue of contacts that need sync so we do not impact performance
  • polling target systems for changes, whether these are hard changes (changes of an attribute) or soft changes (change of status)
  • making available and/or using callbacks for real-time synchronization of low-frequency events (interactive change, mailing list unsubscribe, ...)

Bitcoin Payment Processor

Themes: e-commerce, Payment Processing, Virtual Currency, Cryptography

Potential Mentors: kreynen, johns, mfb
Organization Feedback:  Free Software Foundation, Electronic Frontier Foundation
Discussion: http://forum.civicrm.org/index.php/topic,31814.0.html

CiviCRM already supports most popular payment processors including PayPal and Authorize.net.  The most popular payment gateway services are part of the core CiviCRM project.  Other, less popular gateways are can be added with a CRM native extensions.  This project will require a thorough understanding of Bitcoins, existing Bitcoin PHP libraries (https://github.com/mikegogulski/bitcoin-php), existing payment processors that offer Bitcoin support, and CiviCRM Extensions (Create an Extension).   In addition to the code required to extend CiviCRM payment processor class to support Bitcoins, this project would also require creating documentation explaining Bitcoins in a way staff of non-profits could understand including what they can do with Bitcoins.  Where can they spend them?  How to they convert them to their local currency?

An attempt at this was made by a group of Stanford students, but they didn't complete the project.  The discussion and code can be found at: https://forum.civicrm.org/index.php?topic=30532.0 and https://github.com/andreit1/BitCoinCiviCRM

New User Tour

Themes: UX, Usability, Training, Translation

Potential Mentors: Kevin Reynen, Peter Petrik
Organization Feedback
Discussion: http://forum.civicrm.org/index.php/topic,31812.0.html

This is a follow up to a Google Code In project (https://drupal.org/node/2155139).  CiviCRM already includes a Configuration Checklist, but doesn't direct users to the next step after the configuration.  The Zurb JQuery Joyride library makes it easy to add an in browser tour of features using the live site.  This project would divide the configuration checklist into the steps that are absolutely required vs. steps that are more advanced and create a tour that walks new users through configuring CiviCRM to meet their needs.

Bootstrap for CiviCRM UI

Themes: UI, Usability, Design Patterns

Potential Mentors: Nina Reyes, Emily Frazier
Organization Feedback: Tech To The People?
Discussion:  http://forum.civicrm.org/index.php?topic=31534.0

The 3.1 release of Twitter Boostrap project has been licensed at MIT.  It is already used by popular themes for Drupal and WordPress and is part of Joomla 3.  By implementing the Bootstrap javascript and CSS in CiviCRM, CiviCRM would benefit from standardizing at least some of the theming across the different CMSes CiviCRM can be paired with.

Mail Blast UI

Themes: User Experience, RIA/AJAX, Email

Potential Mentors: kurund, lobo
Organization Feedback:  Leukaemia & Lymphoma Research
Discussion: http://forum.civicrm.org/index.php/topic,31821.msg136275.html#msg136275

CiviMail is an email-blast tool for non-profit organizations. The user-interface for creating an email blast merits a significant overhaul. Its four-screen pageflow includes 20+ prominent inputs which make it a powerful tool, but this power tool may feel daunting or archaic to a new or casual user who is accustomed to simpler personal email applications.  The goal of the project is to serve both casual users and power users by improving the pageflow/layout/visual-hierarchy of the email composition screen.  This project will involve wireframing a new frontend, discussing it with community members, and implementing it with contemporary Javascript tools (such as BackboneJS or AngularJS).

( If time permits we will check below suggestions - kurund )
This means we have to radically change paradigm - instead of editing 'the newletter' we simply choose a template and then edit a list of individual articles. The newsletter is then put together based on these - kindda like using Smarty instead of crafting an HTML page from scratch.

MailChimp provides free newsletter templates (point 1 above) that are based on a language allowing to specify editable style elements (point 2 above) and editable layout elements (point 3 above). See https://github.com/mailchimp/Email-Blueprints for templates and http://templates.mailchimp.com/getting-started/mailchimp-template-language for template language specifications. There are also tons of other free newsletter templates available, including http://www.campaignmonitor.com/templates/,http://www.activecampaign.com/templates/ and many others.

 

Visualization for Mailing stats and A/B testing

Themes: User Experience, RIA/AJAX, Email

Potential Mentors: kurund, mfb
Organization Feedback:  Leukaemia & Lymphoma Research, Electronic Frontier Foundation
Discussion: http://forum.civicrm.org/index.php/topic,31984.0.html

CiviMail is an email-blast tool for non-profit organizations. It is quite robust but lacks functionality like A/B testing, one of the most requested feature. It also has some basic reports. The goal of the project is to improve civimail stats reporting by making it more visual (charts, etc ) and implement missing A/B testing functionality. This project will involve the research on implementing best methodology for A/B testing and visualization, wireframing stats reporting and A/B testing workflow, discussing it with community members, and implementing it with AngularJS and D3js.

Social Media Integration

Themes: Online Marketing, Social Media, Social Graph Analysis

Potential Mentors: kurund, joe
Organization Feedback:
Discussion:  

CiviCRM provides a way for non-profits to engage their constituents through multiple media – email, phone, walk-lists, etc. Its support for social media is currently quite limited. Possible projects to improve it include:

  • Pull in contacts from social media & match to CiviCRM contacts based on available information
  • Integrate with social media logins for petitions to get authorized access to petition-signers' social graphs
  • Import into CiviCRM data about who is re-tweeting, sharing, writing on your wall
  • Establish ways to determine highly active users based on their social media activity
  • Add social media feed dashlet to see 'what's going on right now'
  • Add ability to automatically publish/ tweet about events , certain types of activities, possibly progress towards fundraising goals

Fuzz Testing

Themes: Quality Assurance

Potential Mentors: (maybe yjkchicago or xavier would be interested?)
Organization Feedback: ?? 
Discussion:  

CiviCRM is a large, web-based application developed by a large community of developers.  Unfortunately, there are significant gaps in its automated test coverage.

The project aims to provide broader test-coverage through more automated testing; specifically:

  • Identifying or designing fuzzy testing techniques appropriate for CiviCRM.
  • Implementing the fuzzy testing techniques.
  • Incorporating the fuzzy tests into CiviCRM's on-going quality-assurance.
  • Communicating with the CiviCRM development community about how to use the fuzz testing.  

Email Preview Cluster

Themes: System Integration, Scripting, Virtualization, Heterogeneous Systems

Potential Mentors: (maybe bgm or ergonlogic would be interested?)
Organization Feedback
Discussion:  

CiviMail is an email-blast tool for non-profit organizations. Email blasts are a very visible part of any organization's public persona, and many non-profits are conscientious about the appearance of their emails.  Unfortunately, email design can be challenging because there are many email clients, and each one may render the same message differently  To determine whether an email will actually render well for all its recipients, one must open the same email in many different clients.

The goal of this project is to develop an open-source backend for previewing email content on a range of different platforms and applications, such as Google Gmail, Microsoft Outlook, and Mac Mail.  As an open-source tool, it will be critical to provide a clear installation process – which will require a mix of documentation and scripting/automation.

The focus of the project will be development of the backend. The backend will serve the CiviCRM community.  However, to allow use by the broader open-source community, it should have no specific dependencies on CiviCRM.

Dataviz framework, Geo tools and choropleths

Themes: Data viz, D3, campaigning

Potential Mentors: xavier, kurund, joe
Organization Feedback
:  Leukaemia & Lymphoma Research, wikimedia FR, EFF
Discussion:  

CiviCRM is used by a range of NGOs and charities, many of these organisations need geographic visualisations to help their work. This could involve : 

  • Walk lists for democratic organisations who campaign door to door.
  • Mapping of supporters and contributions per region and the creation of choropleths
  • Normalisation of chrorpleths against local population
  • Time series mapping of changes in support and income
  • visualisation of constituents segmentation (eg tags/gender/age)
  • visualisation of campaigns (event registrations, fundraising, mailings) over time and estimation of achievements of current ones

there is an extension for dataviz (based on d3 and dc ). Some organisations (EFF) have already the extraction they need (eg about donors and contributions) but don't have yet a good visualisation of the data.

Harden CiviCRM Security

Themes: Security

Potential Mentors: 
Chris Burgess?, joe, mfb
Organizational Feedback: Drupal Association, Electronic Frontier Foundation
Discussion:  

When a user account is compromised, damage that can be done should be limited.

  • Find any places using eval, preg_replace()'s /e, etc and find another way, including in libraries used.
  • Make sure any places where users input paths to unix commands are well-validated.
  • Review libraries used.
  • Look for CSRF and XSS. (Probably overlaps with fuzz testing)

VIDEO.CIVICRM.ORG

Themes: Video creation, Video aggregation, Curation, Training, Translation

Potential Mentors: Kevin Reynen
Organizational Feedback: Boston Neighborhood Network?, channelAustin?, Portland Community Media?
Discussion:  http://forum.civicrm.org/index.php/topic,31813.0.html

The idea for a video.civicrm.org site was originally proposed by circle-interactive.co.uk.  They produced a few videos using this process https://civicrm.org/blogs/seank/video-project-update.  The revised vision for video.civicrm.org would be to build a site that aggregated all CiviCRM related video from all major providers (YouTube, Vimeo, Archive.org, etc) and provided a workflow for rating and categorizing the videos as well as deep linking and transcripts of the audio in multiple languages using the Mozilla Popcorn project.

Report Builder GUI

Themes: Usability, GUI, Drag-and-drop, Visualization, Print, Embedding

Potential Mentors: Brian Shaughnessy
Organizational Feedback: Electronic Frontier Foundation
Discussion: 

Examples:JasperReports, Joget Workflow

Civi components: This feature would tie in with Advanced Search, CiviReports, and would pull data from all aspects of CiviCRM.

The idea is to provide a visual report builder interface. Users can select database attributes, data ranges (date, numeric, nominal values, etc.), grouping, pivoting, and visualization widgets. The data and widgets can be added to a dashboard, fluid canvas, exported as PDF, or exposed through embeddable HTML/JS widgets.


Workflow Process Graphs

Themes: Usability, GUI, Business Process Management

Potential Mentors:
Organizational Feedback:
Discussion:  

Example works: ProcessMaker, Joget Workflow

Civi Components: This aspect would tie in with CiviCase, CiviEvent, and other Civi components, which would be exposed as process modules.

Business processes can be modeled through a drag-and-drop interface. Processes consist of modules and connectors (nodes and edges). Modules represent business activities such as "Send a welcome message", "Schedule follow-up", "Process Credit Card", etc. Connectors organize the process into sequences, and suggest data products to convey between steps.


CiviForm Builder

Themes: Usability, drag-and-drop, User Interface, data entry, 

Potential mentors: 
Organizational Feedback
Discussion:  

Example Works: Webform Civicrm, Joget Workflow, JotForm, Wufoo 

CiviCRM Components: Case, Event, Contribute, Member, Relationships, custom fields

Visual interface to build forms for CiviCRM components.

Drag and drop form elements, form logic (show, hide, change values, etc), form calculations, various widgets, form submissions tie in to Civi data.

This module is built using core Civi core. Thus, it will be available on any platform where CiviCRM runs. Form elements can be combined from any CiviCRM module, e.g. events, cases, contributions, etc.

CiviOffline

Themes: Desktop, contingency, local

Potential mentors: kurund
Organizational Feedback:
Discussion:  

CiviCRM Components: Case, Event, Contribute, Member, Relationships, etc.

CiviOffline consists of multiple client applications that replicate CiviCRM core functionality. The applications are programmed in HTML/JavaScript and can run without a connection to the Internet. These tools can run on a tablet, netbook, laptop, etc, and are useful for situations where staff/volunteers may not have stable Internet access. The applications perform similarly to CiviCRM web based components, but are more responsive and store data locally. When the user connects to the Internet, data/changes are submitted back to the main server, with various strategies to avoid conflicts.

As the client side applications become more mature, they may replace the CiviCRM server side components. Civi server components will primarily provide an api for data access/modification.

Drupal 8 Integration

Themes: Integration

Potential mentors: Eileen + Tim Otten
Organizational Feedback:
Discussion:  

CiviCRM Components: Core

Drupal 8 is due out towards the end of this year and CiviCRM will need to integrate with it. Drupal 8 is moving to many of the same technologies CiviCRM is moving towards and is also bringing a focus on modern technologies which means that skills developed on this project would be very transferable. Drupal 8 offers us the opportunity for deeper integration with CiviCRM entities as drupal entities 'out of the box' - offering us access to Drupal concepts such as migrate, rules module, Views Bulk Operations and various other site building tools.

Partial Payments

Themes: Usability, Accounting, Contributions, Workflows

Potential Mentor: Joe Murray
Organizational Feedback: RNAO, Wellington Circus Trust

CiviCRM Components: Core, Contribution, Event, Membership

Accounting integration in CiviCRM 4.2 refactored the schema and rewrote much of the code dealing with finances in CiviCRM. One enhancement baked into the schema but not realized at the application layer is to support paying for things in several partial amounts rather than one full payment. This is different than recurring online payments. A typical use case would be putting a deposit down on a table for a dinner using a credit card online and then having a cheque sent to cover the outstanding balance. Or spreading a large annual membership payment into several payments by post-dated cheques.

Refunds

Themes: Usability, Accounting, Contributions, Workflows

Potential Mentor: Joe Murray
Organizational Feedback: RNAO, Wellington Circus Trust 
Discussion: 

CiviCRM Components: Core, Contribution, Event, Membership

Various situations require an organization using CiviCRM to refund part or all of a payment: a cheque is made out in the wrong amount, an event ticket is returned before an event, a membership or subscription is cancelled, or a donation exceeds the legal limit for a campaign contribution. Accounting integration in CiviCRM 4.2 provides the infrastructure for this including some work-arounds in the existing UI. This project would improve the usability, security, accounting integration and automation of these workflows. Key deliverables would include 1) separate permissions for roles authorized to create refunds, approve refunds, submit refunds to payment processors, cut cheques for refunds, 2) proper bookkeeping entries for accounts payable for refunds owed but not sent, and for refunds disbursed, 3) intuitive user experience for site administrators who are not bookkeepers, 4) an intuitive user experience for self-serve refunds as appropriate by end users, 5) integrating cheque printing and audit controls from an existing CiviCRM grant programs extension.

CiviCRM Phone Integration

  • Themes: Usability, Integration, Campaigning
  • Mentor: Joe Murray, Possible co-mentors: Leo Burd?
  • Organizational Feedback: BC NDP?, Federal NDP?, Guelph?
  • CiviCRM Components: Core, CiviCampaign, CiviSurvey

A few organizations have integrated CiviCRM with Asterisk VoIP servers, but there are no generally available CiviCRM extensions. There are SMS integrations with ClickATell and Twilio, the latter of which has an API that also supports voice calls. This project will define an API for VoIP plug-ins that will allow different providers to later be integrated as plug-ins, and will create a first or reference plug-in for a suitable VoIP provider / API. Consideration will be given to re-implementing and or migrating some of the VoIP Drupal modules. The initial VoIP system(s) to be supported with a plug-in will be Asterisk and/or Twilio (especially for outbound) and/or Cisco (especially for inbound). In addition, the student will implement at least one of the following types of VoIP functionality:

Inbound calls: Create an extension that will work with any VoIP plugin to support inbound calls. When an inbound call is received, display contact(s) with the incoming number, allow operator to enter call details into a new Activity and if necessary create a new contact, delegate followup as appropriate using existing Activity followup functionality, and store (possibly updated) contact and call info. Call Transfer and other advanced VoIP Call Management functionality will not be supported in the initial phase.  The popup will ideally be browser based, possibly involving a small application on the user's workstation (e.g. for Cisco integration).

Outbound calls: Create an extension to integrate any VoIP plugin as a follow-on phase of CiviCRM for Canvassing and GOTV / CiviPhonebank - Distributed Phone Bank Management.

Voice Broadcast messages: Broadcast an uploaded recording to the members of a group that have telephone number. See http://www.twilio.com/docs/howto/broadcast.

It is likely a good strategy to review the working code from https://drupal.org/project/voipdrupal and https://drupal.org/project/voipblast. Rather than just re-implement (e.g. using CiviCRM's queuing approach from CiviMail rather than Drupal's queues) or migrate the functionality from Drupal to CiviCRM, we might want to consider architectures that would abstract voip features and plugins from the application using it (eg Drupal, CiviCRM).

 

IF YOU HAVE A PROJECT IDEA, PLEASE ADD IT HERE.  THIS IS A WIKI.  BE BOLD AND EDIT.

    

 

Étiquette
  • Aucun

Creative Commons License
Except where otherwise noted, content on this site is licensed under a Creative Commons Attribution-Share Alike 3.0 United States Licence.