Sunday 26 June 2011

GSoC 2011: Week 5

This week I worked on some of the suggestions I had received on the mailing list. Mostly I had to clean up my code, explore more of Highcharts option reference page and started work on edit mode for zoom-search.

The page now has option of selecting modes, where you could either select browse mode or edit mode. The cursor changes accordingly (pointer to crosshair) as Highcharts provides options of cursor change in case of clickable data points.

First I though of creating a popup with jQuery where I would present the form containing the fields and current values, which could be edited but now I've decided to divide my interface into two parts, one for input and the other contains the plot on the right and the datapoint content on the left. Next task was to design the form to display the current values of the datapoint. To avoid duplication of code/functionality:
  • Use edit row functionality from table browse mode or
  • Use table search page form
I had earlier organized the table search code into libraries so I went through with using it instead of table browse edit. The form looks like the table search page minus the field type, collations and operator columns. The values are updated on clicking data points. The task that remains is updating the database upon submit. I also have to optimize my code such that I don't end up redrawing the plot for every change made. I do feel that in the past week I did not do a lot of work, so this week I'll try to catch up on it. I'll try to finish the edit mode quickly and work on the feedbacks.



Sunday 19 June 2011

GSoC 2011: Week 4

This week I implemented a basic model of the functionalites that my zoom-search will offer. Previous week I had created the plot using SVG and this week I used Highcharts (which Tyron suggested as he has replaced pChart with it) to generate the charts.

So basically this week I looked into Highcharts and explored its options reference manual. I used the scatter plot chart type with point objects. It offers zooming functionality ( in x, y and xy), although the panning feature is still missing. Next I also included the clickable point feature to show the data row when the point is clicked. It also offers datalabel feature which I take as input from user or use the table display field otherwise.

The charts produced by Highcharts are good visually and it also has a lot of inbuilt functionality but one problem I was found was that: For tables with large number of rows, the response time goes up. For some cases in my firefox 4.0.1 it alerts to stop script or stops responding. So maybe we could use AJAX to improve on the response time (as Marc suggested).

Apart from this I also did some fixes in my code and added resizing chart functionality (by dragging a corner), provided a 'Directions to use' link. I also received suggestions on the mailing-list so I will work towards them next. This includes improving the search criteria, using AJAX to improve the response time, panning feature for the plot.




Sunday 12 June 2011

GSoC 2011: Week 3

This week I have implemented the plotting feature using SVG. My task is to try and test out different plotting libraries for my requirements. So the things I did this week:
  • Implemented classes for the plot based on svg.
  • Classes for data objects.
  • Generating the plot for different data types.
  • Fixing some bugs and issues in the code.
  • Testing and changing the plot parameters to find some patterns on a database(sakila).
  • Reviewed tyrons work with about replacing pChart with highcharts.
  • Started work with highcharts for the plot.
The idea was to generate a plot such that some patterns could be revealed in the process. The user then drills down to search in detail. I also tried to look into the clickable points feature of plot in SVG, with <a> tags and jQuery, trying to implement something similar to image maps.

This week I'll try to implement the plot feature using highcharts and try out its features: zoom, image map and other features and decide upon the plotting library, SVG, highcharts or some other.




Monday 6 June 2011

GSoC 2011: Week 2

This week's task was to get back in touch with SVG and other SVG manipulation libraries. I spent most of this week looking at the current 'Display Chart' functionality and following others related work using SVG like  Madhura recently created a GIS Visualization feature using SVG, so I went through his work. There are some doubts over SVG support by different browsers but I think by the time this feature will be available for release, SVG support should get better.

I also found out some design errors I made while designing the interface for input and the query generation phase and corrected them. As the 'Display Chart' feature works for specific queries (http://demo.phpmyadmin.net/gsoc-madhura/Documentation.html#faq6_29), I am hoping that this interface would restrict the user to generate only these type of queries.

I then used SVG to generate a basic plot for two columns with numeric values. Just a basic framework to include other plot features. I will be working on the same this week. My tasks would be to improve the plot, plotting data points based on string field and other field types, deciding over the labels of the data points ( trying whether to take as input from user or based on some index ).