Wednesday, July 15, 2009

Mid Term Evaluation And Tasks Ahead!!

Although the patch sent for mid evaluation gave a lot of warnings but I am happy that it was able to synchronize the source and target databases when tested by Michal and Marc.

I will be enabling the warnings for my later work and improving the data sync code by handling different cases.

Please feel free to see the demo server set up by my mentor of the work send so far and suggestions are welcomed.
Demo is at:
http://demo.phpmyadmin.net/gsoc-zahra/


KEY ACCOMPLISHMENTS LAST WEEK

I have refactored the code written so far by:
1) Applying all the applicable pear coding conventions.
2) Change the data structure of update array.
3) I have started building the logic for the cases when synchronizing table either has a composite primary key or does not have a primary key at all.

KEY TASKS THAT STALLED LAST WEEK

Apply selected changes button has not yet become functioning.

TASKS IN THE UPCOMING WEEK

1) Make 'Apply selected changes' button functioning.
2) Implement the logic for different cases of primary key encountered during data synchronization.
3) Start building logic of structure synchroniziation.
4) Create a plan for the post mid evaluation tasks.

Tuesday, July 7, 2009

Implementation Till Mid Evaluation!

This is the first screen that appears when "Synchronize" tab is pressed. Here the user has to enter host name, username , password, port, and database name of the source and target databases which are to be synchronized.



When "Go" is pressed this screen is shown. Here firstly there is information for the user that red box with 'S' on it is an indication that there is structural difference, blue box with 'T' is for type difference and green box with 'D' is for data difference between source and target databases.
Theses colored boxes are shown infront of the table names to show the three type of difference between source table and target table. These boxes infront of the table name are clickable.



When the green box in front of the table 'Course' is clicked the color of the box changes to grey and the details as what difference is there is shown with a check box below the table. Like in the screen shot it is shown that '1 row to be updated and 1 row to be inserted in "course" table.'



Tables that are present in the source and not in the target are shown with a "+" sign and tables that are present in the target and not in the source are shown with "_" sign.

Now the user can select the changes with the check box and apply the selected changes with the button "Apply Selected Changes".

Button "Synchronize databases" will synchronize the target database with the source database. Whereas "Apply Selected Changes" will only apply those changes which have been already selected by the user by pressing the colored boxes in front of the table name and then by checking the check box.

Wednesday, July 1, 2009

Fine tunings in GUI 2

'Apply Difference' button will apply difference on all the tables that are checked(check boxes are checked) and were previously selected by pressing the colored buttons against each source table names.

'Select All' link will check all the check boxes.

'Synchronize Databases' button will synchronize both the databases and apply all types of differences on all the tables of the databases.

'+' sign in the source database shows that this table is only present in source and absent from the target database.

'-' sign in the target database shows that this table is only present in target and absent from source database. Uptill now I've planned that the tables with '-' sign will later on be deleted with the user's consent.

Key accomplishments last week



KEY ACCOMPLISHMENTS LAST WEEK
==============================
1.As per the suggestion from my mentor, I have modularized the code using functions.
2.Reviewed the code of GUI 1 and I have coded it according to PMA.
3.Coded and tested the corresponding queries required to apply the data difference between the target and source databases.
4.Started coding GUI 2.


KEY TASKS THAT STALLED LAST WEEK


===============================
I still need to see the peer coding conventions although I have followed some coding & naming conventions already.
The code does not so far connect to a remote server

KEY CONCERNS


============
Code GUI 2 according to PMA and display all the contents whether functioning or hard coded dummy information.

TASKS IN THE UPCOMING WEEK


==========================
1. Code GUI 2 according to the fine tunings
Make the "Synchronize databases" button functioning i.e. by pressing this button both the databases will be synchronized completely.


Any synchronization type selected for any table of the source database will have its information displayed along with a check box as soon as it is selected.


Show buttons for applicable types of synchronization in front of each table in source database and make them functioning.