=Profile Information
Name: Prssanna Desai
IRC nickname: prssanna
Email: prssud@gmail.com
Github: https://github.com/prssanna
Resume: [[ https://drive.google.com/file/d/1wPRTAZGsDU-tc9CSIod1C8LYDr1wRaW6/view?usp=sharing | Link ]]
Location: Mumbai, India
Time Zone: UTC +5:30 (IST)
Typical Working hours: 5:00 AM to 2:00 PM UTC
=Synopsis
Wikidata Query Service (WDQS) is a public service designed to provide a SPARQL endpoint which allows you to query against the Wikidata data set. WQDS allows users to run complex queries and ask intricate questions to Wikidata, a free, open and vast knowledge base. My project involves improvements to the Explorer Dialog and the Graph Explorer of the Wikidata Query Service.
Making the Explorer dialog more interactive and informative is the first goal of the project. This will be achieved by:
- Allowing **multiple** Explorer Dialogs
- Making the Dialog **Resizable**
- Making the Dialog **Draggable**
- Making the Dialog **Responsive**
Making the Graph Explorer more intuitive and explanatory is the second goal of the project. The main task in this section is to show and expand incoming links in the Graph Explorer. I also plan to identify and make more improvements to the Graph Explorer throughout the course of the summer.
These improvements will benefit WQDS users by enhancing the **readability** and the **usability** of the service.
=Possible Mentor(s)
@Jonas @Lucas_Werkmeister_WMDE
I have been in contact with Jonas Kress on Phabricator Tasks and Gerrit Code Review while making fixes for query.wikidata.org.
=Deliverables=
**Parent Task for the GSoC Project: T188104**
===Task 1: Improvements to Explorer Dialog for query.wikidata.org
T187874
**Multiple Explorer Dialogs**
In the current state of the Explorer Dialog, it is only possible to view the results query by query. I will integrate a feature which will make it possible to view and compare the results of more than one query at once.
**Resizable Explorer Dialogs**
Currently, the explorer dialog is of a fixed size so regardless of the complexity of the query, the size remains the same. This can hinder readability. Using JQuery UI (https://jqueryui.com/), I plan to make it possible to resize an explorer dialog. This will also help to accommodate several dialogs on the same page.
**Draggable Explorer Dialogs**
It is not currently possible to drag the Explorer Dialog around the page.
This will also be done using JQuery UI and will be convenient for the user as he can then view multiple explorer dialogs side by side.
**Responsive Explorer Dialogs**
After adding the above features, I will ensure that the site continues to be responsive and mobile-ready.
===Task 2: Improve Graph Explorer for query.wikidata.org
T187876
**Allow to Show and Expand Incoming Links**
In the existing state of the Graph Explorer, a user can see and expand outgoing links but not incoming links. This is the main feature that has to developed in this task. Adding this feature will make exploration of the query results more intuitive and informative for users.
I will be adding this feature in GraphResultBrowserNodeBrowser.js in wikidata/query/gui.
===Other possible improvements
**Disallow dragging nodes outside the window.**
On dragging a node outside the Graph Explorer window, the node sometimes does not return to the Window and remains outside the window. Then, it is impossible to continue exploring the graph.
**Prevent Overlapping in the Graph Explorer**
If there are many nodes and some movement occurs, nodes start to overlap each other.
Preventing this kind of overlapping will improve readability and usability.
**Improvements to the Graph Explorer Zoom**
Zooming in and out of the Graph Explorer often stutters and experiences glitches.
Fixing this issue will also improve usability.
=Timeline
| **Period** | **Task** |
|------------ |-----------|
|April 23 to May 14|**Community bonding period**. Search for resources and existing examples for resizable and draggable modals. Become more fluent with the JQuery UI Library. Adding and organising the required project tasks in Phabricator. Create a blog for posting weekly updates about my progress and experiences.|
|May 14 to May 20|Start working on making the Explorer Dialog resizable. Document and test the feature as required.|
|May 21 to May 27|Make the Explorer Dialog draggable. Document and test the feature as required.|
|May 28 to June 3|Allow multiple Explorer Dialogs to be shown at once. Check for performance issues with multiple dialogs and analyse resource consumption.|
|June 4 to June 10|Test the new features of the Explorer Dialog and ensure that the responsiveness of the website has not been affected by the new features. Write documentation for the new features. |
|June 11 to June 15|**Phase I evaluation**|
|June 16 to June 24|Start working on improving the Graph Explorer. Formulate the best possible method of showing and expanding incoming links in the Graph Explorer. |
|June 25 to July 8|Implement the above feature. Take input from the community about the working of this feature. Document how this feature has been implemented.|
|July 9 to July 13|**Phase II evaluation**|
|July 14 to July 22| Study the feedback received from the Phase II evaluation. Perform the requested changes and improvements. |
|July 23 to July 29|Attempt to write fixes for the bugs I’ve mentioned in the Deliverables section above.|
|July 30 to Aug 5|Continue to look for bugs and usability issues in the application|
|Aug 6 to Aug 14| **Final evaluation**|
|Aug 14 to Aug 21|**Mentors submit final student evaluations.**|
|Aug 22|**Final results of Google Summer of Code 2017 announced**|
|--------------|-------------------|
==Participation
I plan to communicate and with my mentors mostly through Phabricator Tasks and Gerrit Code Review. I will also use **#wikimedia-devrel** on IRC (Freenode) and the [[ https://wikimedia.zulipchat.com | Zulip ]] group to ask for help or converse with the community.
My source code will be published directly to Gerrit Code Review. I will only do this after creating appropriate Phabricator Tasks so that every Gerrit changeset is associated with a Phabricator Task.
I will also make and maintain a blog on which I will post weekly updates about my experiences and progress.
==About Me
I’m currently enrolled in the Computer Engineering program at NMIMS University, Mumbai.
I’ll be graduating just when the coding period begins so I will be able to treat this position like a full-time job.
To me, the benefits of this project are two-fold.
The first one is the significance of contributing to MediaWiki and the Wikimedia Foundation.
Making a significant contribution to an open source organization of this stature will be a great step forward for me.
The second one is more personal, it will test the skills I have accumulated over the last few years and I am confident I can finish this project successfully.
My interest in the Open Source movement began around summer last year. I heard about GSoC from a colleague and this is the first time I’m applying for the program. I am eligible for Outreachy as well, but this project is available only with GSoC and I’m keen to work on it. So, I am only planning to apply to MediaWiki for Google Summer of Code.
==Past Experience
I have used JavaScript, Java, Python, CSS and HTML extensively for my projects, internships and university coursework.
In the summer of 2016, I [[ https://drive.google.com/file/d/0B0M0ncbHUUJ6RzhvRmhLX3duZkU/view?usp=sharing | completed ]] the [[ https://in.udacity.com/course/front-end-web-developer-nanodegree--nd001 | Udacity Frontend Web Development Nanodegree ]].
I completed the 350+ hour course and finished numerous front-end projects. This project, being primarily a frontend project is a perfect opportunity for me to apply the skills that I’ve acquired from the Nanodegree.
In the summer of 2017 I was at [[ https://paintcollar.com | Paintcollar ]] as a MEAN Stack Development Intern. I worked on their core e-commerce product and built a Progressive Web App for the product by adding features like background sync, push notifications and caching using Service Workers. I also added Social Logins using passport.js for paintcollar.com.
==Open Source Contributions
Organization: [[ https://www.hotosm.org/ | Humanitarian OpenStreetMap Team ]]
Added Dynamic Markdown to HTML conversion for Documentation using Javascript and ShowdownJS
https://github.com/hotosm/field-campaigner/pull/414
**Bug/fixes/Features for MediaWiki**
I’ve started to familiarise myself with the query.wikidata.org codebase by making a few bugfixes.
**GUI allows to run empty query**
T178112
Fix: https://gerrit.wikimedia.org/r/#/c/418723/
**Next and previous buttons overflow outside the image modal when the image is too small**
T184971
Fix: https://gerrit.wikimedia.org/r/#/c/416227/