GSoC 2012

== Projects ==
The GSoC projects for 2012 are:
# Better indexing for ranges
# Document Collection Foreign-data Wrapper
# ...
== What is GSoC? ==
Google Summer of Code (GSoC) is a global program that offers student developers stipends to write code for various open source software projects. We have worked with several open source, free software, and technology-related groups to identify and fund several projects over a three month period. Since its inception in 2005, the program has brought together over 4,500 students and more than more than 4,000 mentors & co-mentors from over 85 countries worldwide, all for the love of code. Through Google Summer of Code, accepted student applicants are paired with a mentor or mentors from the participating projects, thus gaining exposure to real-world software development scenarios and the opportunity for employment in areas related to their academic pursuits. In turn, the participating projects are able to more easily identify and bring in new developers. Best of all, more source code is created and released for the use and benefit of all.
PostgreSQL has an official summer of code page: http://www.postgresql.org/developer/summerofcode.html
== Advice for Students ==
We have developed the following Advice for Students page to get you started.
Also, students who discuss their proposals with Postgres project members *before* the application deadline are much more likely to be successful.
== Mailing list for student questions ==
For GSoC program questions and discussion, please subscribe to:
http://archives.postgresql.org/pgsql-students/
We can have non-code related discussions on this list, and help answer questions about proposal writing. 
Discussion of code should be done on the list for the specific project a student is working on. 
== IRC ==
We have an IRC channel at #postgresql and you are welcome to answer questions. Our GSoC Admins are: selenamarie, agliodbs and xzilla. Do not DM them without asking first! 
You are welcome to ping any of us in the channel, or ask the channel general questions about a proposal. If you do not find help in the channel, feel free to send an email to pgsql-students@postgresql.org for help.
== Proposal Format ==
Students are responsible for writing a proposal and submitting it to Google before the application deadline. The following outline was adapted from the Perl Foundation open source proposal HOWTO. A strong proposal will include:
* Project Title
* Name of proposer and email
* Synopsis
* Benefits to the PostgreSQL Community
* Quantifiable results 
* Project Details
* Inch-stones (project broken into small, distinct chunks)
* Project Schedule
* Completeness Criteria
* Bio
**Blog
**Github
**@Twitter
== Project Ideas ==
=== Tool improvments ===
* pg_dump/pg_restore libraries as shared objects (better error-handling, process-monitoring, objects selection and creating in-memory dumps)
* Develop an iOS-native interface for PostgreSQL for Apple devices. This might be a fork of pgAdmin, or a brand-new interface.
* phpPgAdmin improvements: Make sure to check our TODO and feature request pages:
** https://github.com/phppgadmin/phppgadmin/raw/master/TODO
** https://sourceforge.net/tracker/?group_id=37132&atid=418983
* PGXN: Improve the PGXN command-line client for installation and upgrade of extensions. http://www.pgxn.org
=== Driver Improvements ===
Any of the following PostgreSQL drivers could use work on feature support and performance:
* JDBC
* Erlang
* Node.js (integrate with 9.2's JSON and PL/v8)
* Ruby
===Pgadmin improvements===
Rewrite the object browser and connection management code to:
* Ensure nodes are always up to date when clicked, and do not display out of date cached data
* Properly [attempt to] reconnect to the database when connections are lost, without losing application state.
* Pool database connections, and close/reopen them when needed rather than leave them idle for long periods of time.
Query tool enhancements:
* Allow queries to be executed on multiple databases simultaneously, displaying results from all databases.
* Support psql \ commands, including \copy and \connect
* Support execution of multiple data returning statements in a single query, displaying the results from each.
Others:
* Redesign the Table properties dialogue to incorporate all sub-dialogues in one easy-to-use dialogue (existing sub-dialogues will remain for direct inspection of sub-objects).
* Data import/export tool, designed to be easy to extend for new import/export formats. Should include a data transformation and mapping layer (using Python?) to allow data to be manipulated during import/export.
===Foreign Data Wrappers===
Write a foreign data wrapper for DB2, Firebird, or anything else that seems interesting or fun.
===Advanced Features===
JSON Indexing/Extraction: Add indexable element extraction to PostgeSQL's JSON type which does not depend on PL/v8.
Materialized Views: add support for one type of automated updating of materialized views: sychronous, asyncronous-queued, or scheduled.
===PGXN Improvements===
* Improve the PGXN search such that all document types are searched in a single query. This would require re-organizing how documents are indexed and improving on the Lucy search engine implementation.
* Add interactive features to the PGXN API and thus the main site. Features might include:
** Download counts
** An Atom feed
** Authentication/identification
** Ratings/Likes
** Diffs between releases of distributions
* Add features to PGXN Manager:
** Improve localization support
** Add an email gateway so that PGXN users can be emailed via @pgxn.org addresses
** Add ability to delete or archive releases or distributions
** Add a UI for maintenance tasks
** Add support for instant mirror propagation
** Add a release callback interface
** Implement an ownership admin interface and owner UI, so that users can add co-owners or reassign ownsership of their distributions to other users, and admins can do so for other users
** Add a user admin interface
== Key Info ==
* March 9th, Mentoring Application Due
* April 6th, Student Applications Deadline
* Announcement for GSoC 2012
* GSOC 2012 Home page 
* GSOC 2012 FAQ
* Postgres GSOC Page, Needs Updating!
== Project Admins ==
Coming soon
== 2012 Mentors ==
* Pavel Golub - Postgres external tools developer
* Heikki Linnakangas - Postgres Committer
* Dave Page - Former mentor - pgAdmin, Windows, Packaging, Infrastructure
* Jehan-Guillaume de Rorthais - phpPgAdmin
* Dave Cramer - JDBC
* Kevin Grittner - SSI, transaction engine
* Magnus Hagander - Windows support, SSL, www.postgresql.org
* David Wheeler - Perl, PGXN.org
* Stephen Frost - Patch reviewer, developer
== Past Success ==
Need to add
== GOALS: ==
* usable code
** useful/novel ideas
** research projects
* longer term contributors
== TODOs: ==
* Kick-off Meeting for Community Members
* Update GSOC page
* Advertising?
* Blog that we're participating and seeking students
* Round of private emails to people who have participated in the past: Heikki, Simon, Mark
** request interest, and then follow up in asking about possible topics for students
* Mentor recruitment and then email to -hackers
** do this much later when we have some proposals in?
* Recruitment -- no organized group effort?
** -announce, -general, -hackers
** user group lists
** phppgadmin/pgadmin
** berkeley
** Univ. of Maryland -- contact them?
* Identify the commitfest that the code will be submitted to
== Expectations ==
* Stuff to keep students together:
** Regular blogging from students
** weekly group IRC checkin? -- two checkin times maybe?
* Have students communicate on -hackers where appropriate (didn't really work?)
** Or other relevant -devel lists
* Mailing list
** pgsql-students (?) vs. -hackers (?) maybe up to mentor?
** mentors mailing list -admin mailing list, berkus said?
** students mailing list via gsoc
Category:Google Summer of Code