Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Clone this wiki locally
List of ideas for Google Summer of Code 2014. Our development efforts aim towards the release of phpMyAdmin 4.3.
For details about participating in the Summer of Code for the phpMyAdmin project, please refer to our GSoC 2014 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.
If you want to get started with something, look at incomplete tests in our testsuite and try to make them work.
Requirements: PHP and MySQL knowledge, unit testing experience welcome.
Here is a collection of requested improvements:
- Simulate query
- Easy access to SHOW CREATE
- Quick access to real row count
- Zeroconf PMA tables support
- Improvements for the table editor (index creation)
- Multi-db privileges adding
- Range Search Capability
- Multiple-column foreign key relation
- Catch MySQL error messages during export
- Remove the distinct query window / Add SQL log+history panel
- Support InnoDB for database Query by example
Mentor: User: Lem9
User interface enhancements
In some cases, the user interface has become awkward and could use improvement. This project will be similar to the "Interface improvements" listed above in that it will consist of many smaller tasks, but will focus on improving the interface presented to the user.
Some potential tasks for the project include:
- "Browse foreign values" should be a modal dialog
- Support for editing binary fields in hexadecimal
- Use aliases in SQL export for tables and columns
- Export with table/column name changes
- Custom Field Handlers
- Dynamic process list
- User privilege tab not shown in all relevant cases
- Possibility of disabling database expansion
- Navigation state lost on reload
- Improved notification when attempting to insert invalid data [for instance, when using the AES_ENCRYPT() function on a varchar(5) column]. This would require PMA have knowledge of which functions map to which column types.
Mentor: User: ibennetch
The goal of this idea is to add the following two features.
Central list of columns
A shortcoming of MySQL is that columns are defined per table, with no central list of columns. Benefits of a central list of columns include:
- avoiding similar name for the same data element, for example product_id and prod_id
- consistency of data type for the same data element
- shortcut to add an element from the central list to a table's structure
The phpMyAdmin configuration storage would be the place to maintain this central list (probably per database).
It must be possible to examine a database's structure and propose changes that would bring it to 3NF. Some steps can probably be done automatically while other steps would involve a wizard that would ask questions about the elements and act accordingly. Then the proper changes to the structure would be applied. The central list of columns will probably help implement the normalization steps.
More details at:
Note that the principle of normalization is not universally accepted, see for example http://lambda-the-ultimate.org/node/3762.
Mentor: User: Lem9
Error reporting improvements
- Allow error reporting server to collect PHP errors as well.
- Better integration of error reporting server with our issue tracking at sf.net.
- Various other improvements, see https://github.com/phpmyadmin/error-reporting-server/issues
Refactoring: Designer/schema integration
We currently have two pieces of code dealing with a similar topic - designer and schema (export) feature. These should be tightly integrated and refactored to use as much shared code as possible.
This project should at least bring:
- Provide single GUI editor for schema (currently there is designer and editor on schema pages)
- Direct export of schema from editor
- Usability of designer (with schema export) possibly without configuring the phpMyAdmin configuration storage
- Reduce huge duplication of code in schema handling
None of above did attract you? Feel free to come up with your own idea, you can take inspiration from our feature requests: https://sourceforge.net/p/phpmyadmin/feature-requests/
Please note that the project is supposed to take whole summer, so you will most likely have to combine several feature requests to get big enough project.