List of ideas for Google Summer of Code 2011. This list is not definite, generally any big enough thing from feature tracker can be accepted. Our development efforts aim towards the release of phpMyAdmin 3.5.
For details about participating to Summer of Code for the phpMyAdmin project, please refer to our GSoC 2011 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 questions about these ideas.
Add support for the new OpenGIS datatypes in MySQL >= 4.1.
Requirements: PHP, OpenGIS and MySQL knowledge
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.
Requirements: PHP and MySQL knowledge, unit testing experience welcome
User interface cleanup
phpMyAdmin is quite old project and as such lot of parts of user interface are more a result of history than being designed. If you are experienced with user interface design, this might be a great chance for you to improve usability of this well-known tool.
Requirements: Experience in user interface design, HTML, basic experience with PHP.
The majority of phpMyAdmin's source Code is not written in OOP PHP. Many developers are not inclined to help improve the application, because of the structure of the app. It should not be that hard to port the code into an cleaner structure. A new structure would also ease creation of plugins and themes which would improve the community a lot. It also would be easier for companies integrating new functionalities which are related to their business or work flow.
Requirements: Experience in OOP PHP with design patterns.
Drizzle is starting to be more popular, so it's time to investigate what actually needs to be changed in phpMyAdmin and implement it. The changes might end up to be too intrusive for inclusion, but I hope it won't be the case and we can support both MySQL and Drizzle.
See also: mailing list archives
Here is the idea:
- user selects a table, ie movies
- user picks two columns, ie popularity and year
- a visual grid is built, showing year on the X axis and popularity on Y; each movie is represented by a dot on the grid
- user can select a part of the grid to zoom the specific portion; then dots become more spaced and hovering over them shows for example the movie's title
- user clicks on a dot to browse this data row
The technical report which inspired me is available at
www . cs.umd.edu/local-cgi-bin/hcil/rr.pl?number=94-12.
Support for procedures
phpMyAdmin currently lacks support for user friendly manipulation with stored procedures, triggers, routines and events. There should be nice way to edit, create or execute them. It should be possible to export them as well.
This should include
- Editor for procedures/functions, providing definition of parameters, return value and code.
- Editor for triggers.
- Editor for events.
- Dialog for calling procedures and giving them parameters (eg. if parameter is enum, it should provide choice of the values, not just text box to enter it).
- Listing of add procedures, functions, triggers and events in appropriate places.
Feature requests: :rfe:1353360
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.
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.
Browsing tables is possibly what phpMyAdmin users do most often; yet it could be made more confortable. Here are some feature requests I have collected to achieve this goal.
- Flexible column width :rfe:939233
- Column edit :rfe:1394312
- Edit only selected fields :rfe:1725551
- Jump to recent table :rfe:2098927
- Mouse-based column reordering during browsing
- More column sorting choices (based on :rfe:2972985)
- Store the last way you sorted your table (based on :rfe:3078542)