User:Jay (CIS-A2K)/Report 1

From Meta, a Wikimedia project coordination wiki

Name: Jay Prakash

Position: Intern (tech), Access to Knowledge

Report period: 1 Nov 2020 – 30 Nov 2020

Community Bonding[edit]

Centre for Internet and Society - Access to Knowledge is a campaign to promote the fundamental principles of justice, freedom, and economic development. The mission of CIS-A2K is to catalyze the growth of open knowledge movement in South Asia and in Indic languages. For Wikimedia, CIS-A2K has support the Indic communities in many ways like organizing the event, support events organizing by others, partnership, and assist Wikimedia contributor. With time, the Wikimedia community and their needs are growing in India very fast. Since the Wikimedia movement has a vision to provide an open knowledge platform so the technical aspect matters a lot. Wikimedia has a Community Tech Team, which works on technical wishlists selected by communities from all over the world through voting, but there are only 9 people in the team to handle wishlist. So limited people lead a limited wishlist and proposals get a high number of votes, selected for the Tech team work. It is kind of a barrier for Indic communities. We have some Indic community specific wishlist. I joined CIS-A2K as Technical Intern to work on such wishlist.

In the Community bonding period, I familiarized with Access to Knowledge’s internal structure, signed an agreement, attend session on “Policy on Prohibition of Sexual Harassment”, and got the “book2scholl” project to work after bonding period. I set up a Wikimedia Developer account and uploaded an SSH key. Apart from this, A2K also supported my Internet expenses for the 3 months period.

1 Nov 2020 - 15 Nov 2020[edit]

In the first week of my Internship, I studied the features of the book2scroll and wrote the backend API to fetch Index book of the partricuter Wikisource. See https://book2scrollv2.toolforge.org/api/getbooks?lang=hi&ns=252. This API took the language code and index namespace code of a wiki to return all Index books with their page number. I wrote the backend in Python’s Flask framework.

In the second week, I worked on the frontend of book2scroll. It had three parts.

  • First to show the languages options to the uses.


  • Second, give the list of index books of the selected language.


  • Third, the main interface to scroll the book.


Apart from HTML & CSS, jQuery and Bootstrap framework used to create the frontend.

In the meantime, I requested a Gerrit repo on MediaWiki.org so that code can be uploaded to Wikimedia Gerrit with version control. See Gerrit/New repositories/Requests and notify on talk page User_talk:QChrisNonWMF so that our work should not block due to this.

16 Nov 2020 - 30 Nov 2020[edit]

In the third week, I mainly worked on deployment. It was straight forward.

  • First, created tool on toolforge.
  • Second, I uploaded a patch to add labs/tools/book2scroll repo in Continuous Integration for unit testing. See Gerrit 642097 which was merged and deployed by Wikimedia Foundation’s Software Engineer James Forrester.
  • Third, I uploaded a patch with all initial code on repo. See Gerrit 642501. Now all source code can be found at https://gerrit.wikimedia.org/g/labs/tools/book2scroll
  • Fourth, I deployed the app on toolforge, a shared cloud infrastructure. Since the tool was based on Python so I set up the virtual environment and installed all the supporting libraries and started the web services. See SAL. Now the tool is up at http://book2scrollv2.toolforge.org/.


In the fourth week, I got some feedback from the A2K team and I worked on the few of them. Improve navigation (T268913) - It was about improving navigation for users like adding the “Back to home” button. Add /<langcode>/ route to show list of indexes directly (T268915) - It was about to add the URL https://book2scrollv2.toolforge.org/bn/ and https://book2scrollv2.toolforge.org/hi/ so that community member can go to specific language directly by URL.

Apart from that, I had two video calls with Bodhisattwa Mandal, Wikidata Co-ordinator, to discuss the next project which was around Wikidata lexeme.

Future work[edit]

The Wikidata Lexeme tool will work the same as the tabernacle tool but it will for lexemes. This tool will allow users to login using Wikimedia OAuth and let them add and edit the sense/forms/statements from their interface in an efficient way.