GSoC/GCI Archive
Google Summer of Code 2013


Web Page:

Mailing List:

We're developing phpMyAdmin, a MySQL web interface. It supports most MySQL features, is widely used by database administrators and well supported by hosting providers.

For more information on how to proceed to participate in Google Summer of Code 2013 please see our applicant guide (alternate site).

Before submitting your proposal, please have a look at our ideas list (alternate site).


  • AJAX error reporting with client and server sides A javascript client side that provides error reports for the javascript code. And a server side which aggregates the errors and displays them visually
  • Automated Testing The aim of the project is to increase the code coverage of phpMyAdmin by setting up more unit tests. This project would also involve setting up Selenium Tests to write automated user-interface tests that run in real browser instances.
  • Automated Testing PMA is a popular web based database management tool. It usually undergoes new releases, bug fixes, new feature development and refactoring. Since the PMA production code is changed frequently and our code is finished by developers from all over the world, in order to guarantee the production quality, it is very necessary to run Unit testing on Jenkins (Hudson). Unit Tests have several benefits to us. It allows us changing code quickly under full testing. By running unit tests, a developer can identify whether his latest changes to the code base has broken anything. Unit Tests can also help new developers really understand the design of the code and it can give our developers visual feedback about which lines are covered. From PMA CI Page, Currently, the code coverage of PMA is 18.3%. More code coverage means more guarantee to production. Goal: 1. Increase the code coverage to a reasonable percentage (80%) 2. Set up the necessary scripts to automate unit testing. 3. Help other developers to set up their unit test cases. 4. Functional test case to cover render issue Strategy: we should cover core code to a high level (90%) at firstly and then spent some time on the other stuff.
  • phpMyAdmin Interface Improvements phpMyAdmin is quite a matured project with more than 14 years of history behind it. It possesses almost all the major features required for a database administrative tool and there is very little that can be added in this front. However there is always room for small and medium scale new features. This is evident from the huge backlog of feature requests requested in the project’s feature request tracker. In this proposal, I propose a number of small to medium scale improvements chosen from the feature request tracker, majority of them selected by the developers of the project themselves and listed in the GSoC 2013 project ideas list.
  • Re-factoring: server view While reading some server view source code of PMA, I found that the source code has some problems: not easy read, not easy reusable, full of long function, full of long file. Because PMA is a big project which is developed by a lot of Programmers from all over the world, we should enhance the maintainability to let more developers join in. From other side, in a project’s life cycle, sometimes we need to re-factor the code if the code starts smelling bad and it’s hard to maintain and even harder to add new features. By enhancing the readability and maintainability of code, re-factoring makes it easier for us to deal with the code. This idea aims to re-factor the code on “Server view” and make the code easy to understand and easy to reuse. It won't involve changing the existing functionality of these scripts, nor would it introduce new functionality.
  • Refactoring: SQL Executor, Column's Structure Manipulation The goal of this project is to refactor the SQL executor and Column's structure manipulation code. To improve the readability, reduce the complexity, and to improve the maintainability I am suggesting to refactor the SQL executor and Column's structure manipulation code using better approaches. The code will be refactored according to various code refactoring techniques mainly focusing on componentization and extract method.