Difference between revisions of "User:Albertcoder/GSoC2014/logs"

(Week 6)
(Week 6)
Line 245: Line 245:
  
 
I was out on pilgrimage to [http://en.wikipedia.org/wiki/Harmandir_Sahib Golden Temple] . I will compensate all my work by working on Sunday.
 
I was out on pilgrimage to [http://en.wikipedia.org/wiki/Harmandir_Sahib Golden Temple] . I will compensate all my work by working on Sunday.
 +
 +
'''''29th June(Sunday) and 30th June(Monday)
 +
 +
Did some progress in advanced search of material by name.
 +
 +
Tried to link the whole database using foreign key references but there exists some problem in the innoDB database style.
 +
 +
Explored the libraries used for import/export.
 +
 +
Wrote a few lines of code for adding new material type etc. by making new classes in the main file.

Revision as of 17:06, 30 June 2014

Development Logs

Community Bonding Period

  • Couldn't do much GSoC-oriented in this period owing to the clash of my end-semester exams with this period, still I tried to study those subjects with uttermost care whose concepts could be used in my GSoC project like Relational Database Management Systems, Web Technologies(including PHP, JavaScript, XML and so on), Software Engineering etc. during this period. I am sure I utilised this period doing so.

Development Period

Week 1

21st May(Wednesday)

Installed MediaWiki. Faced some problems doing that, encountered a few warnings, removed them.

Studied about MediaWiki extensions. Failed to make a simple extension due to some problem in the tutorial. Still studying about extension-making.

22nd May(Thursday)

Followed the extension-tutorial at mediawiki.org for other sample extensions. Extension making process still in progress.

Installed a couple of extensions and tested them on my system like "Awesome" extension and "CategoryGallery" extension.

23rd May(Friday)

Being mainly a C/C++ developer, had to explore some concepts of PHP. So studied some PHP tutorials in detail.

Also studied/studying HTML forms in MediaWiki which are used in extension-making.

24th May(Saturday)

Writing my log just a couple of minutes past 12:00 AM. Apologies for not been able to write right in time.

Today I made a form which can take input from the user using the special page functionality.

Also studied the present database in detail and will ask about some queries on the IRC.

25th May(Sunday)

The form which I created yesterday, needed validations but I struggled to accomplish it. Hope I will get over it by tomorrow.

Studied about Data Entry and connecting/storing that data into the database.

Week 2

26th May(Monday)

Tried to apply validations but still not done with that.

Read previous logs and mails which I couldn't read due to my final exams.

27th May(Tuesday)

Browsed various Materials Database websites, observed how these stored data, in which format. Also observed various features like advanced search, import/export and sorting.

28th(Wednesday) and 29th May(Thursday)

Had issues with my health. :(

30 May(Friday)

Talked on #mediawiki IRC about the version of mediawiki to be used. Although had a fruitful discussion yet, got puzzled. So talked on #brlcad IRC and finally got the solution(maths22 would update the older version of BRL-CAD wiki).

Installed mediawiki 1.22.7 and started working on it.

31 May(Saturday) and 1st June(Sunday)

As per my milestone sign in/sign up process is also done as my extension will use the login-module of BRLCAD-wiki.

Making my previous extension work in latest version 1.22.7. Not working. :(

Studied BRL-CAD supports which formats for import/export.

Tested a model by applying material on it in BRL-CAD and trying to understand the STEP format.

2 June(Monday)

I have made a simple extension which will work in BRL-CAD 1.22.7. I will upload it on my college server tomorrow. I have some parts missing, I will complete it by tomorrow.

Followed some mediawiki tutorials which would help in database insertion through form. I will display this all tomorrow.


Week 3

3rd June(Tuesday)

I have submitted my first simple extension on the mailing list. I have understood the basic structure of mediawiki extension. I am just too close to end up making an extension which can take the data from the user and store in the database.

4th June(Wednesday)

Today I felt I needed a break from mediawiki stuff as my brain felt suffocated so I did a lot of analysis of various CAD softwares. Created various figures in BRL-CAD, FreeCAD, OpenSCAD and LibreCAD using difference, union and intersection functions.

Applied materials to BRL-CAD model. Learnt how to use various commands in like rt. Also had a glimpse of LUA script. And now I have resumed learning advanced object oriented PHP for mediawiki.

5th June(Thursday)

Made an HTML form which can take the inputs from the users. I am also almost done with the database connectivity work. In no time I will show the status on the mailing list.

Also went through the advanced concepts of object oriented PHP. Like how mediawiki works with classes and objects and arrays inside arrays inside arrays. I am having a bit of problem here but will overcome this soon.

6th June(Friday) and 7th June(Saturday)

Successfully made the extension which can store the materials and their properties in the database. Had some problems in displaying the data and implementing search feature. It will be done too.

Uploaded on the mailing list.

8th June(Sunday)

Today I went on exploring the structure and working of a bit sophisticated mediawiki extensions. Got some valuable responses/suggestions on my extension in the mailing list from my mentor.

Showed the data stored by making a mysql user and letting everyone view his stored data by logging in phpmyadmin using that user.

Did critical study of the current database for further improvements. IP address of the user who edited some data may be recorded.

9th June(Monday)

Implemented the feature with the help of which a user can see the properties that are stored.

Implemented the search feature(search material by name).

Pushed all my work to my github account.

Week 4

10th June(Tuesday)

Today I studied about how to embed the code of separate php app(basically database of previous years' work) into the extension that I have made. It is not possible directly so I was stuck.

I asked for the solution / guidance for this on #mediawiki IRC which is pending. Also I have asked a doubt about the database in the brlcad mailing list.

11th June(Wednesday)

Today I tried to embed the code of previous years' work into my extension. Well, I was unsuccessful in doing. I got some help on the #mediawiki but that was not specific. Got to learn many a new thing in the present database after critical study.

Installed a couple of more similar extensions to do reverse engineering and learn more.

12th June(Thursday)

Although I might have done quite with the extension and GUI part, the database still posed me some problems. Like I was stuck at what is the difference between materialID and table_materialID in table "traits". Also I feel there is not much normalization which lead me think again on the database design.

Studied various resources similar to Materials Database like matweb.com, matdat.com and so on. Got to know various features of the website and the how of categorization of materials.

Also exported file in JSON, CSV etc. formats from current database using phpmyadmin and used it in CAD softwares.

13th June(Friday)

I had a few problems with the current database so I eliminated those problems by making some enhancements in it. It was not connected using primary and foreign keys. Also I have created a few more tables which are needed.

Also I have classified the materials and their properties in the database itself.

Also made a note of a few more features like units converter etc. in the GUI.

14th June(Saturday)

Connected the database-tables with primary and foreign keys. But still encountering a problem. There are separate tables for each trait so JOIN has to be applied accross each table. So if we need to see 20 traits of a material, 20 JOINS. Trying to get over this problem.

Explored the deep use of SQL IN operator, JOINS, loop programming. Talked with Yaron on #mediawiki and got to learn how a query can be inserted in mediawiki.

16th June(Monday)

Tried to implement the MediaWiki extension as such with the current database but had some problems with some attributes. Proposed some modifications in the database which would help in better filtering and searching. Mockup of the database mailed to the mailing list with some modifications.

Week 5

17th June(Tuesday)

Had a very long and hard chat on #mediawiki IRC. They suggested to use SemanticMediaWiki for the data storage through forms.

Installed SemanticMediaWiki and Created a simple template for storing data.

18th June(Wednesday)

Made some templates http://202.164.53.122/~albertcoder/mediawiki-1.22.6/index.php/Template:Material and studied SMW(semantic mediawiki) stuff.

Studied database in MediaWiki. Had problems regarding applying JOINS across more than two tables and getting their value on the page. Resolved to some extent.

19th June(Thursday)

Resolved the problem of applying the JOINS in MediaWiki on tables and display the fetched data too in tabular form.

Created an extension to test the working, http://202.164.53.122/~albertcoder/mediawiki-1.22.6/index.php/Special:Joins .

Committed all my pending work on github.

20th June(Friday)

Made the extension work with the enhanced database design. Had several problems in inserting the data into the database because of separate table for each trait but encountered them.

Added support to add new material and properties in new database.

Got some quick suggestions from #mediawiki IRC during hurdles like getting userID of currently logged in user.

21st June(Saturday)

Brought about a number of changes in the working of the extension. Removed check-boxes to select traits to maintain user-ease, used radio buttons, drop-down and required features of HTML.

Pushed my latest extension(with proper database) into my github account.

22nd June(Sunday)

Made certain enhancements like user cannot add a material again which is already there in the database, dropdown for Material Privacy set as public by default.

Accomplished the task of showing the values of all the traits for all materials by applying joins on multiple tables and using for loops. The code works fine in another extension right now.

Code updated and pushed to github.

23rd June(Monday)

Accomplished the task of showing material names and values of traits in the same extension. Added the feature such that no material can be added again and again in the database.

Added units' table in the database to make it easy for the user to enter the values of traits only in float rather than entering units alongwith.

Week 6

24th June(Tuesday)

Displayed all the required columns like material name, value and timestamp but felt stuck at one point. Made two separate extensions, one for adding material properties and other for viewing those properties. Tried to ask for the solution on IRC #mediawiki to merge these two extensions but still to get response after they asked for the my code.

25th June(Wednesday)

Got the solution to merge any number of extensions through URLs. Talked about this on MediaWiki mailing list. They suggested using Semantic MediaWiki. Explored the MediaWiki administration.

26th June(Thursday)

Finally found the way to load any number of classes into the .php file and also creating any number of special pages.

After a good discussion on #mediawiki IRC, got the equivalent of using hooks to create table in database.

Committed all my work to github and deployed the latest code on my college server too.

27th June(Friday)

User made eligible to add trait only after logging in.

Each time a user adds a new trait, a new table is created at the back-end for that trait.

The variable in for loop which showed all the properties of materials changed from static to dynamic.

Added hyperlinks to navigate from one page to another.

Updated the blogpost in the BRL-CAD mailing list:

http://coderalbert.wordpress.com/2014/06/26/mediawiki-extension/

28th June(Saturday)

I was out on pilgrimage to Golden Temple . I will compensate all my work by working on Sunday.

29th June(Sunday) and 30th June(Monday)

Did some progress in advanced search of material by name.

Tried to link the whole database using foreign key references but there exists some problem in the innoDB database style.

Explored the libraries used for import/export.

Wrote a few lines of code for adding new material type etc. by making new classes in the main file.