Monday, May 26, 2014

GSoC 2014 week 1

As mentioned in my last week's post, I've been implementing the mentioned three tasks.

Following is the flow diagram of the new functionalities added to the designer:

As shown in the diagram, I'm trying to generalize functions as much as possible so that, I can re-use them very easily.

Following is how the new interface looks:


"Import/Export coordinates for PDF schema" button is removed, because it will be implemented as a part of the integration.

Adding slight modifications to the previously planned design, the new "save as" and "edit pages" functionalities will not direct user to a new page, instead, dialog boxes will be pop-up.

Following is the "Edit pages" dialog box, which I implemented.


TO DOs for the next week:

  • "Save as" functionality is to be implemented.
  • page loading functionality is to be implemented.

* I did not commit these changes because still some core functionalities to be implemented and tested.

Monday, May 19, 2014

First week of GSoC 2014 : TODO

Today, the 19th of May 2014, is the official "start coding day" for GSoc 2014. So after spending almost a moth for community bonding, and in spending that time period for analyzing the code, I'm in a good position to start coding.

To start with, according to my plan, I will be working on the task 1:

Prevailing "Designer" and "Edit relational schema" pages share overlapping functionalities. So the intention of the phase 1 is to create one page by combining the features of these two pages. So that there will be no two similar GUI's in the future, instead only the "Designer". With the new designer, a user would additionally be able to:
  1. Change the table layout in the designer and save to database's default layout.
  2. Load a saved set of coordinates from a page, edit and save them.
  3. Perform a "Save as" on edited coordinates to create a new page.
1). When a new user opens the designer, the default table layout will be shown. But if there are existing saved table layouts, then the first layout will be loaded.

2). A new functionality will be introduced into the designer - "edit page", where a user can edit, delete existing pages.

3). Another new functionality will be added - "save as", where the coordinates can be saved to an existing page or a new page.

Following is the new interface for designer:


Following is the page directed by "save as" button:

Following is the page directed by "edit page" button:

Although I've made these mock-ups and started developments, always welcome feed backs.

Monday, May 12, 2014

What my project is about...


Idea:

Being one of the most renowned open source software for MySQL administrator, phpMyAdmin is a widely used tool. It has matured with many new features and improvements for many years, with the contribution of the open source community. But there is always a tendency for issues such as, similar kind of features being implemented, code duplication and eventually degradation of the code quality. The intention of this project is to address these issues under several aspects and improve its quality.


Benefits to the users:

Outcomes of this project will benefit not only the end users but also the contributors.

End users:
Considering the tasks of this project, one GUI for designing and integrated exporting functionalities will make the end user’s life lot easier. 

Contributors:

Removing code duplicates and adhering to OOP concepts will help contributors by enhancing the extendibility, maintainability and eventually readability of the code.


The whole project is categorized under 5 major tasks:
Task 1: Provide single GUI editor for schema
There are two schema editors present in the current system; the ‘Designer’ and the ‘Relational Schema Editor’. However, they have some overlapping functionalities. So the idea of this task is to bring those two editors together and have a more improved version alone.  

Task 2: Direct export of schema from editor
The idea is to add the schema exporting functionality to the new ‘Designer’ page, which will be created from the first task.

Task 3: Usability of designer
The intention here is to allow user to use the ‘Designer’ without configuring the phpMyAdmin specific tables.

Task 4: Reduce huge duplication of code in schema handling
This task involves two main sections:
  • Reduce/remove code duplications in schema handling classes:
  • Proper implementation of OOP concepts:

Task 5: OOPing Designer code
PHP files that are responsible for handling the ‘Designer’ (pma_ prefixed files) contain mostly functional code. I will work on porting these codes to an Object Oriented class hierarchy that would allow us to use the benefits of OOP.


My project will be mentored by Madhura Jayarathne and my github fork is https://github.com/kb-yashodha/phpmyadmin

Monday, May 5, 2014

Celebrating the Summer with PHPMyadmin

It was one of the most exciting moments in my life, to see that I've got an email - a much anticipated one - from google, with the title: "Welcome to Google Summer of Code 2014". So in the GSOC 14, I'll be working on a project with one of the leading open source software for MySQL administrator - "PHPMyadmin", and the project title is "Refactoring: Design/Schema integration". I want to thank PHPMyadmin for selecting my proposal for this project and Google for giving this great opportunity to participate in such a prominent event.

During the upcoming weeks I will use this blog as a means of conveying the progress of the project to everyone. This will include a full description about the project, what are the expected outcomes, what are my plans/goals and my achievements,