Clone this wiki locally
List of ideas for Google Summer of Code 2012. Our development efforts aim towards the release of phpMyAdmin 4.0.
For details about participating to Summer of Code for the phpMyAdmin project, please refer to our GSoC 2012 Applicant Guide.
Possible mentors are listed for each idea; however, mentors generally do not wish to help a student drafting his proposal. You can use the phpmyadmin-devel mailing list to ask specific questions about these ideas.
For a general reference about Refactoring, see http://en.wikipedia.org/wiki/Refactoring.
phpMyAdmin already has some unittests and a start has been made with selenium tests. We would welcome someone who could create more test cases to increase the code-coverage of the test-suite. And further set up the necessary scripts to automate this.
Due to large amount of refactoring which will be ongoing, the major challenge here will be to keep up with changing code and also help others with creating tests.
Requirements: PHP and MySQL knowledge, unit testing experience welcome.
Plugins and OOP for import/export/transformations/authentication
Currently import, export, transformations and authentication are the only really pluggable pieces in phpMyAdmin. This project is about creating some general plugin interface and convert existing functional code to OOP and this new plugin interface.
Refactoring: Displaying query results
Currently code for displaying query results is not much reusable. It should be converted in class which would allow it's use in all places in phpMyAdmin. For example Processes or Binary log currently use separate code which should not be needed.
Additionally support for displaying results for multiple queries at once should be added. This is necessary when a stored procedure returns more than one result set. Related bug: 3474853
The class should allow defining transformations as current code does, plus add support for define them by user during run without need to store them in pmadb and it should have some built-in transformations where it makes sense.
Refactoring: Insert/edit, Privileges, Operations, Structure
Refactoring is needed for the tbl_change.php, tbl_replace.php, libraries/tbl_replace_fields.inc.php and some of the scripts called by these ones. This includes removing the mix of HTML and PHP tags.
The server_privileges.php script would benefit from refactoring; it contains some functions but there are large chunks of code outside functions.
The db_operations.php and tbl_operations.php scripts would benefit from refactoring.
The db_structure.php and tbl_structure.php also need refactoring.
Refactoring: Designer/schema integration
We currently have two pieces of code dealing similar topic - designer and schema (export) feature. These should be tightly integrated and refactored to use as much of shared code as possible.
This project should at least bring:
- Use designer as editor for schema pages
- Direct export of schema from designer
- Usability of designer (with schema export) without configured phpMyAdmin configuration storage
- Reduce huge duplication of code in schema handling
Refactoring: Table search, Db search, Multi-table query
The goal of this project is to refactor these scripts: tbl_select.php, tbl_zoom_select.php, db_search.php and db_qbe.php.
Synchronize data (big tables)
The Synchronize feature has shortcomings, mostly regarding data sync for big tables. To prepare yourself for this project, it is suggested to test the feature to find out where improvements are needed.
Removal of frames