Howdy subscribers !
I would like to participate google summer of code and I am looking for
something interesting to fit in.
I think about phpMyAdmin feature. However the idea is not listed, so I
would like to discuss it here.
I would like to know is the idea below reasonable or is it rather
material for new independent project.
In few words: self-generating admin panel for casual user.
Well, phpMyAdmin is dedicated for super-users. It's obvious and I hope
it 'll never change. But imagine a mode of phpMyAdmin that is dedicated
to end-users that are just websites owners but no coders.
What I mean ? Let's say I am a website programmer. I am creating simple
website php + MySQL etc. I am writing code for client that is not
familiar with any code.
My goals are:
1. create DB structure
2. create website
3. create admin panel
1 & 2 are interesting while 3 is not. But wait a minute. Why should I
create admin panel ? Maybe phpMyAdmin is enough ? Indeed. But it's too
complicated for simple human being. It's also static. It bases just on
databes.
I think phpMyAdmin + some heuristic knowledge about DB = pretty and
usefull panel for site-admins that are just managing contents
Gate to this simplified feature may be just phpMyAdmin user/password.
Let's say after sign in programmer will see phpMyAdmin as-it-is today,
while site admin (not programmer) will see clear and simple admin-panel.
How about ?
On Fri, Apr 19, 2013 at 12:55 PM, <
phpmyadmin-devel-request(a)lists.sourceforge.net> wrote:
> Send Phpmyadmin-devel mailing list submissions to
> phpmyadmin-devel(a)lists.sourceforge.net
>
> To subscribe or unsubscribe via the World Wide Web, visit
> https://lists.sourceforge.net/lists/listinfo/phpmyadmin-devel
> or, via email, send a message with subject or body 'help' to
> phpmyadmin-devel-request(a)lists.sourceforge.net
>
> You can reach the person managing the list at
> phpmyadmin-devel-owner(a)lists.sourceforge.net
>
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of Phpmyadmin-devel digest..."
>
>
> Today's Topics:
>
> 1. Re: Get some details about Refactoring: Designer/schema
> integration project idea (Michal ?iha?)
> 2. CSV using LOAD DATA - format specific options (Kasun Chathuranga)
> 3. Re: CSV using LOAD DATA - format specific options (Marc Delisle)
> 4. Re: CSV using LOAD DATA - format specific options
> (Kasun Chathuranga)
> 5. Re: CSV using LOAD DATA - format specific options
> (Kasun Chathuranga)
> 6. Re: GSoC Project - AJAX Error Reporting (Abhishek Kandoi)
>
>
> ----------------------------------------------------------------------
>
> Message: 1
> Date: Thu, 18 Apr 2013 10:44:57 +0200
> From: Michal ?iha? <michal(a)cihar.com>
> Subject: Re: [Phpmyadmin-devel] Get some details about Refactoring:
> Designer/schema integration project idea
> To: Shamika Dharmasiri <shamikadineshdha(a)gmail.com>,
> phpmyadmin-devel(a)lists.sourceforge.net
> Message-ID: <20130418104457.6c806770(a)nutt.cihar.com>
> Content-Type: text/plain; charset="iso-8859-2"
>
> Hi
>
> Dne Thu, 18 Apr 2013 13:43:40 +0530
> Shamika Dharmasiri <shamikadineshdha(a)gmail.com> napsal(a):
>
> > Hi Michal,
> > The demo server is with (Version information: 4.1-dev, latest stable
> > version: 3.5.8)
> > But my local PMA is with (Version information: 4.0.0-dev, latest stable
> > version: 3.5.8)
> > I have used this designer feature with previouse PMA versions.
> > I don't find this designer feature in my local copy.What may be the
> > problem?
>
> You need to enable configuration storage, see:
>
>
> http://docs.phpmyadmin.net/en/latest/setup.html#phpmyadmin-configuration-st…
>
> --
> Michal ?iha? | http://cihar.com | http://phpmyadmin.net
>
Hi all,
As indicated in the tracker I am working on fixing the bug #3879 [1] and
have submitted a pull request [2]
I noticed that in the latest version the interface does not allow changing
format specific options such as 'Columns separated with', 'Columns enclosed
with' etc in the import tab. However in the earlier versions these values
could be specified using the interface.
Is this change intentional or is it a regression?
--
Regards
Kasun Chathuranga
[1] https://sourceforge.net/p/phpmyadmin/bugs/3879/
[2] https://github.com/phpmyadmin/phpmyadmin/pull/267
Hi
Dne Thu, 18 Apr 2013 13:43:40 +0530
Shamika Dharmasiri <shamikadineshdha(a)gmail.com> napsal(a):
> Hi Michal,
> The demo server is with (Version information: 4.1-dev, latest stable
> version: 3.5.8)
> But my local PMA is with (Version information: 4.0.0-dev, latest stable
> version: 3.5.8)
> I have used this designer feature with previouse PMA versions.
> I don't find this designer feature in my local copy.What may be the
> problem?
You need to enable configuration storage, see:
http://docs.phpmyadmin.net/en/latest/setup.html#phpmyadmin-configuration-st…
--
Michal ÄŒihaÅ™ | http://cihar.com | http://phpmyadmin.net
Hi,
I am interested in applying for Google Summer of Code as a student. I would
like to work on one of the phpMyAdim projects.
As suggested I wanted to provide a "fix" as part of my application.
This http://sourceforge.net/p/phpmyadmin/feature-requests/785/?page=0 is
the request I would like to implement.
Before I go on with it I wanted to get opinions about my approach.
The idea is:
-add another table to the mysql database, table: user_additional_info. I
think this would be much better then adding columns to the original user
table if for no other reason to prevent any issues people might get if they
try to apply this fix.
-add additional fields to the create user html
-add a separate function to the code base, where this info would be saved
to the new table, also add a new function for displaying this data.
So basically I would try to add this feature without interfering
with regular phpMyAdmin code except for those function calls. I would try
and make the function calls executed only if certain parameters are met, in
this approach it would probably be checking if the user_additional_info
table exists.
Does this sound like a good approach?
I communicated with Isaac about this and the biggest question so far is
whether the first step (adding a new table) is appropriate.
Any suggestions are more than welcome.
Best,
Ben
Hi Shamira
Dne Thu, 18 Apr 2013 10:28:29 +0530
Shamika Dharmasiri <shamikadineshdha(a)gmail.com> napsal(a):
> Hi Michal,
> I'm interested in participating next GSOC with this idea.But I couldn't get
> a clear idea by reading this.
> http://wiki.phpmyadmin.net/pma/GSoC_2013_Ideas_List#Refactoring:_Designer.2…
>
> I have following problems
> 1.What you have mean with these in the project description?(designer and
> schema (export) feature).
I mean these two:
Schema editor (you might need to create page and choose it to edit):
http://demo.phpmyadmin.net/master-config/schema_edit.php?db=menagerie
Designer:
http://demo.phpmyadmin.net/master-config/pmd_general.php?db=menagerie
> - Reduce huge duplication of code in schema handling
>
> {
> This can be overcome with using proper refactoring
> }
>
> Can you tell me what are the areas which need to be refactored in this
> project it will be easy to be familiar with this project.I guess I'm pretty
> familiar with code refactoring and the techniques which uses.
Mostly it's libraries/schema and pmd_* files.
--
Michal ÄŒihaÅ™ | http://cihar.com | http://phpmyadmin.net
Hi all,
The preview mail is blocked due to the attachment is too large. I pasted it to mail content below.
I have finished my first version of Proposal about the GSOC2013 idea: Automatic testing. Can some help me have a review? thanks
Automated Testing
Adam
Short description:
PMA is a popular web based database management tool. It usually undergoes new releases, bug fixes, new feature development and refactoring. Since the PMA production code is changed frequently and our code is finished by developers from all over the world, in order to guarantee the production quality, it is very necessary to run Unit testing on Jenkins (Hudson). Unit Tests have several benefits to us. It allows us changing code quickly under full testing. By running unit tests, a developer can identify whether his latest changes to the code base has broken anything. Unit Tests can also help new developers really understand the design of the code and it can give our developers visual feedback about which lines are covered. From PMA CI Page, Currently, the code coverage of PMA is 48%. More code coverage means more guarantee to production.
Goal:
1. Increase the code coverage to a reasonable percentage (80%)
2. Set up the necessary scripts to automate this.
3. Help other developers to set up their unit test cases.
4. Functional test case to cover render issue
Location
· Country : China
· Time Zone : GMT +8:00
Education
Postgraduate student, institute of Software, Beijing University of Aeronautics and Astronautics, China
Email / IRC / Jabber
· adamgsoc2013(a)gmail.com
Synopsis
Since the PMA production code is changed frequently and our code is finished by developers from all over the world, in order to guarantee the production quality, it is very necessary to run Unit testing on Jenkins (Hudson). Unit Tests have several benefits to us. It allows us changing code quickly under full testing. By running unit tests, a developer can identify whether his latest changes to the code base has broken anything. Unit Tests can also help new developers really understand the design of the code and it can give our developers visual feedback about which lines are covered. From PMA CI Page, Currently, the code coverage of PMA is 48%. More code coverage means more guarantee to production.
About this idea, at least two things should be done:
1. Create more test cases to increase the code-coverage of the test-suite
2. Set up necessary scripts to automate this.
My goal of this project is to increase the code coverage to a reasonable percentage (80%) and help other developers to set up their unit test cases. Besides the two things above, for the display logic code, we can cover them using Functional test case. In other word, we can use selenium to check Page element is loaded correctly, I think this work is as important as Unit test. I will coverage Functional test when I finish Unit testing target.
Benefit of Functional testing, we can guarantee phpmyadmin can work well on GradeA browsers.
1. Check the page is loaded correctly
2. Check the page is working well o GradeA browsers.
3. Check the css/js is working well
Benefits to the users
With the automatic testing, developers can make changes quickly and provide users a more stable and fully tested version of phpMyAdmin.
Benefits to developers: It helps developers to verify that the code changes are working fine. Unit Tests can also help new developers really understand the design of the code and it can give our developers visual feedback about which lines are covered. Users will always get upon each and every change developers can run the test suite and verify that the changes are safe to commit. By running the selenium test cases it can be verified that the basic functionalities are working fine in PMA. Since a large amount of re-factoring is going on, and it is very helpful if automated testing is available to make sure nothing will break while re-factoring.
Project Details
================ 1. Automatic Process===================
I am very familiar with the CI environment and PHP code coverage, because I succeeded to finishing a similar project when I was an Intern on Yahoo! last year. I finished an automatic testing job:
1. Finish PHP UNIT code and Functional testing code.
2. Commit to GIT will trigger a CI build.
3. The CI build is done by: selenium + Firefox+ Xvfb (so that we don’t need display)
4. Output the code coverage report.
================ 2. Code Learning ===================
I have more thoughts on the Phpmyadmin Automatic testing after reading more codes.
In the index.php page, PMA will display all the links for users. The links can be some types:
1. for server operation: server_<operation>.php (ig: server_databases.php)
2. for database operation: db_<operation>.php (ig: db_events.php )
3. for table operation: tbl_<operation>..php (ig: tbl_replace.php )
.................
Workflow:
Take "server_databases.php" for example. It is used to create or drop database.
In the server_databases.php, the file will include:
1. "server_databases.js" in JS folder, it is for Ajax request to backend.
2. "display_create_database.lib.php" it is output the page element for create table, including action tag for Ajax request.
3. When an user clicks the "create", there will be a Ajax request to db_create.php
4. In db_create.php, the SQL is executed and return the execution results to frontend.
5. The frontend page uses the Ajax request and refreshes the page.
That is the simple process for every user operation.
================ 3. Unit testing===================
From our code view:
1. ROOT folder: there are files about the display and links
In the index.php page, PMA will display all the links for users. The links can be some types:
· 1. for server operation: server_<operation>.php (ig: server_databases.php)
· 2. for database operation: db_<operation>.php (ig: db_events.php )
· 3. for table operation: tbl_<operation>..php (ig: tbl_replace.php )
These files are not covered by Unit test, so we can use Selenium with Page element checking to cover them (Functional case). In other word, we can use selenium to check if Page element is loaded correctly, I think this work is as important as Unit test. Other benefits, we can cover phpmyadmin can work well with GradeA browsers.
· check the page is loaded correctly
· check the page is working well with GradeA browsers.
· check the css/js is working well
2. For the Library folder, there is backend logic, it is suitable to use UNIT test to cover.
· Create more test cases to increase the code-coverage of the test-suite
· Set up necessary scripts to automate this. Automate building process, running unit tests; generate code coverage and analysis using Jenkins
Deliverables
· Unit testing code coverage grows to a reasonable percentage: 80%
· With selenium testing scripts, help more developers setup their Unit test case.
· Functional test case
· Increase some regression testing cases.
Time
About 40 hours per week.
Bio
I am Adam. Currently I am a student of Institute of Software, Beijing University of Aeronautics and Astronautics, China. I am quite interested on the topic: Automatic testing. I have some developing experience on selenium and PHP Code Coverage. I am very familiar with the CI environment and PHP code coverage, because I succeeded to finishing a similar project which is automatic testing as well when I was an Intern on Yahoo! last year:
1. Finish PHP UNIT code and Functional testing code.
2. Commit to GIT will trigger a CI build.
3. The CI build is done by: selenium + Firefox+ Xvfb (so that we don’t need display)
4. Output the code coverage report.
Experiences
· I am very familiar with the CI environment and PHP code coverage, complete an automatic testing project as an internship on Yahoo! Last.
· Having strong knowledge of php and experiences on working with cakephp frame work.
· Familiar with OOP and Design patterns, data structure, and algorithm.
· Familiar with Hadoop distributed framework and the Map-Reduce algorithms (have project experience)
· Good knowledge of SQL.
· Excellent in web development using PHP, HTML, JavaScript, MySQL
· Good knowledge of svn and Git
Open source contributions
· https://github.com/adamgsoc2013
phpMyAdmin contributions
Have merged:
https://github.com/phpmyadmin/phpmyadmin/pull/233 add test case for PMA_Header_test
https://github.com/phpmyadmin/phpmyadmin/pull/240
Still on review:
https://github.com/phpmyadmin/phpmyadmin/pull/245 add test case for Table Class
https://github.com/phpmyadmin/phpmyadmin/pull/244 add test case for PMA_Footer_test.php
https://github.com/phpmyadmin/phpmyadmin/pull/243 add test case for Config.class.php
Still on working:
https://github.com/phpmyadmin/phpmyadmin/pull/246
Add Class PMA_Navigation_test to cover navigation test
BTW,
There are three patchs need to review. thanks
https://github.com/phpmyadmin/phpmyadmin/pull/245 add test case for Table Class
https://github.com/phpmyadmin/phpmyadmin/pull/244 add test case for PMA_Footer_test.php
https://github.com/phpmyadmin/phpmyadmin/pull/243 add test case for Config.class.php
adam
From: adam
Date: 2013-04-14 14:59
To: phpmyadmin-devel
CC: Rouslan Placella; Dieter Adriaenssens; Marc Delisle
Subject: [Adam GSOC2013 Proposal] Automatic testing
Hi,
I have finished my first version of Proposal about the GSOC2013 idea: Automatic testing. Can some help me have a review? thanks
The proposal is attached on attachment.
BTW,
There are three patchs need to review. thanks
https://github.com/phpmyadmin/phpmyadmin/pull/245 add test case for Table Class
https://github.com/phpmyadmin/phpmyadmin/pull/244 add test case for PMA_Footer_test.php
https://github.com/phpmyadmin/phpmyadmin/pull/243 add test case for Config.class.php
Thanks,
Adam
Hi devs,
I am planning to apply for the "Refactoring: SQL executor, Column's
structure manipulation" GSOC project idea. I went through the code and
found that most of the code contains a mix of php code and HTML tags which
reduces the readability of the code and thus should be refactored. I would
like to know your opinion about this and any possible refactoring that can
be done in order to improve the quality of the code.
Regards
Supun
Hi all
I've took some time to look at jshint checks found on our code:
http://ci.phpmyadmin.net/job/phpMyAdmin-continuous/3132/violations/?#jslint
I've fixed some obvious ones (like missing ;, typecast safe comparing,
missing radix for parseInt), but there are still many of them. Most of
them fit into following case:
- ['strSave'] is better written in dot notation.
This error is raised to highlight an unnecessarily verbose and
potentially confusing piece of code. More detailed explanation is at:
http://jslinterrors.com/a-is-better-written-in-dot-notation/
- 'type' is already defined. / 'type' used out of scope.
Most of these come from following constructs:
if (foo) {
var bar = 1;
} else {
var bar = 1;
}
alert(bar);
This is not an issue for javascript (it has no block scope for
variables), it can be confusing, more details at:
http://www.jshint.com/docs/#funcscope
So both are more just matter of coding style rather than real bug and
can be disabled in jshint. The question is whether we would prefer to
hide these warnings or fix them.
--
Michal ÄŒihaÅ™ | http://cihar.com | http://blog.cihar.com