Sunday, July 24, 2016

Week 13 (23rd July - July 29th)

  • Learning the Wikidata Query Services (WDQS) and SPARQL. Experimentation is done here: Wikidata Query Service (WDQS).
  • Created a Google doc as instructed by my mentors to draft a blog post for the project. The link to the Doc can be found here: Blog post draft.
  • Thinking and sampling trigger Ideas with the mentors to find the right one to implement for Wikidata using the WDQS and the flask app. So far, we have a list of these trigger ideas:
    • Notify me whose birth days is today.
    • Notify me when today is a public holiday (we can decide for particular countries) e.g. Notify me when today is a public holiday in the US
    • Notify me when my favorite author releases a new book.
  • Working on the blog post draft on Google docs and developed on the following sections;
    • What is Google Summer of Code?
    • Why did I apply for GSoC?
    • Why the Wikimedia Foundation?
    • How has the development of my project looked like?
    • Request for help from community members on my project
    • Appreciation and Thanks to my mentors and the Wikimedia Foundation
  • More work on the blog post and addition of content to the various sections
    • My recommendations for anyone to participate in GSoC/Wikimedia and Why?
    • What I did not anticipate that will happen during GSoC?

Sunday, July 17, 2016

Week 12 (16th July - July 22nd)

  • Debugged IFTTT integration tests together with Stephen LaPorte and all was passing. Integration of Wikidata Edit Item trigger to IFTTT.
  • Wrote code for GET request to handle parameters for triggers just as the POST request in the app. The commit can be found here: Fixing Regression Commit.
  • Re-wrote and Improved on the Unit tests for all the triggers found in the ifttt-testing.py file. This improved on the efficiency and getting default trigger values from the trigger.py file and feeds directly into the tests fields. Here are the commits Working Commit - Commit 1 and Efficient and Working commit - Commit 2
  • After debugging IFTTT integration / endpoint tests with Stephen, this caused a bug in the unit tests which where all not returning data because app.debug was set to True. I debugged this and constrained app.debug to be True only in the context of the FlaskClient tests instance (app.test_client()) so that in the global context, it will be False and the test in the IFTTT integration will all pass. The result of this made both the unit tests and endpoint tests on IFTTT to pass. Here is the commit: Commit ( Shocked :-) )
  • Added RSS/XML for two last database driven triggers. New category member and Category member revisions, these triggers where challenging to build the RSS since we had to search on Wikipedia categories that are recently edited. It took me some time but finally got it with the help of my mentor (Slaporte). The category we used is 'All articles lacking sources'.
  • This two triggers (as mentioned above) was failing the unit tests and had no RSS, but after these commits: Commit I and Commit II, the RSS was available and unit tests where passing (all unit tests in the app).
  • A sample of the output of the RSS of the triggers can be seen here: New category membersCategory member revisions
  • Item revisions trigger integration tests on IFTTT was failing because of a bug (configuration) that doesn't match the code in the IFTTT app, but together with Stephen on our weekly meeting (21st July, 2016), we debugged the integration tests and the Wikipedia Staging channel passed. Now all tests on IFTTT passes and also all Unit Tests on Tool Labs also pass. Hurrayyy!!! :)

Sunday, July 10, 2016

Week 11 (9th July - July 15th)

  • Built the RSS view for Database Driven trigger (New Hashtags), Since I have access to the DB now on Tool labs, I can retrieve data concerning this trigger directly from the Database. Here is an example of the RSS: New Hashtag for test hashtag.
  • Unit test for New Hashtag passes on Tool labs including other tests because of the presence of the DB but on localhost, this test fails and other database driven test because of the absence of the Wikidata database on my localhost.
  • Fixed the Issue of RSS views working with GET request without checking channel key. The issue here was "if RSS views are working, the integration tests fails on IFTTT or if Integration tests are passing, the RSS views are not working due to the @app.before_request me that checks the channel key before any request". So I added a check to ignore all these on get request using if flask.request.method == 'GET': # do something. At this point, both RSS views and Integration Endpoint tests on IFTTT are working (but some regression occurs, needs to be looked at).
  • Integration of newly developed trigger "New edit to Wikidata Item" into IFTTT and integration testing. So far, the trigger is working fine and fires when a particular item is edited.
  • Added Style to the RSS views to improve on UI/UX of the RSS views of the App. For the bootstrap integration into the app, I used the flask.ext.bootstrap and specifically the Bootstrap Module.

Week 9 & 10 (19th June - July 8th)

  • Submission of Midterm evaluations by both mentors and students. Students evaluate mentors and organisations activities and mentors evaluate their students and both submit evaluations to Google.
  • Midterm results announced by Google 
  • My midterm evaluations results: Passed
  • Started my semester exams
  • Wrote my semester exams for 2 weeks as on the time line