=Graph Editing in VisualEditor=
Phabricator Report: [[ https://phabricator.wikimedia.org/T89287 | T89287 ]]
Name: Richa Rupela
IRC nick: rits
Microblog (twitter): [[ https://twitter.com/RitsyRicha | @RitsyRicha ]]
Location: Bikaner,India (UTC+5:30)
Typical working hours: 10am to 5pm
Graphs are used widely for representing discrete data in the bar charts format and many other formats. The Graph extension allows a <graph> tag or entire page to describe data visualization in a JSON format that renders a Vega-based graph. Visual editor treats graph extension as a alien node hence, user cannot see it in the visual editor nor it can be moved or edited.
The project focuses on enabling the support for editing the graphs in visual editor and the other goal is to support real time rendering of the edits done on the graphs.
Moriel Schottlender and Marielle Volz
Graphs are rendered in the JSON format through the Parsoid, but visual editor gives it a height and width of 0px because JSON format could not be rendered through VE. Firstly the graph data in the JSON format has to be rendered in VE so that it would be visible to the users.
Next support to be added is editing capability of the visible graph, the values changed by the users has to be checked first whether they are valid or not. Editing JSON by hand is fiddly and prone to error, so to use a JSON checker such as JSONLint for validation will help to check the edited changes and then showing a pop-up if the edited JSON was invalid.
Bug: [[ https://phabricator.wikimedia.org/T92868 | T92868 ]]
I have divided the project basically into three phases
Parsing the JSON data coming from Parsoid in visual editor, making it a viewable node in the visual editor.
Adding edit,move,delete functionality to the graph. Edits would be done directly into the JSON data which is a very error prone task hence need to be handled by validating the edits done.
Validating the user edits is the most important task, this will be done by rendering the edits of user and checking it through a JSON checker such as JSONLint, Giving a popup as if the JSON edited by the user was invalid and then reverting the graph to its initial state.
1.Community bonding period.Getting in touch with mentors and read up the coding practices followed in the organisation and get well acquainted with the visual editor community. Discussing about the JSON parsing for visual editor and other features of the project.
1.Adding viewing capability of alien graph nodes to visual editor. Graphs should then be visible to the users in visual editor.
2.Testing the code in different environments.
1.Mid-Term Evaluation Solving the issues if occurs any, related to the display of the graphs. Start adding edit capability to graphs.
2.Submitting patches on gerrit and pushing code to github.
3.Submission of code for the mid-term evaluation.
1.Completing the edit support of graphs to visual editor.
2.Submitting patches on gerrit and documenting the work done.
1.Validating the edits done by user and showing a popup if the edit done was invalid.
2 Optimizing the code and completing the documentation work.
1.Pencil down state, final testing of the code.
2.Final documentation of the project and final tweaks.
I will be active on irc in my working hours as well as on the other times of the day if their comes a issue in the project. Communicating with mentors and organization members about the project and updating about all the progress done. I will prefer git for keeping my work and submit patch sets to gerrit. I will update all the work done during the coding phase through blogs and be in continous touch with mentors through mails and skype.
I am final year student student pursuing bachelor of engineering and technology in Information and Technology stream at Govt. Engineering College Bikaner, Rajasthan Technical University, India.
==How did you hear about this program?==
I heard about outreachy from my senior who shared this information through social media.
==Will you have any other time commitments, such as school work, another job, planned vacation, etc., during the duration of the program?==
I have no prior commitments between 28May-28August. I will be having my semester exams which will be probably during second week of May. I will be constraint during my exams only, during which I have scheduled to focus on documentation work keeping up with the workflow. I will be working around 35-40 hours every week on the project.
==We advise all candidates eligible to Google Summer of Code and FOSS Outreach Program for Women to apply for both programs. Are you planning to apply to both programs and, if so, with what organization(s)?
Yes, I am applying for GSoC and Outreachy both.
==We don't just care about your project -- you are a person, and that matters to us! What drives you? What makes you want to make this the most awesomest wiki enhancement ever?==
As the project intend to add a feature which will definitely enhance the user experience of working on visual editor. Graphs tend to represent all the discrete data and used in almost all fields, hence giving users a experience of editing through visual editor will be awesomest wiki enhancement for me ever.
Please describe your experience with any other FOSS projects as a user and as a contributor:
This is my first effort to contribution to a FOSS project as I am a newbie to Open source community. As a user, I have been working Ubuntu as my OS and have been using open source tools for my works. I have just started making contributions. Here is the link to my initial contribution:[[ https://gerrit.wikimedia.org/r/#/c/193812/ | Rits ]]
==Please describe any relevant projects that you have worked on previously and what knowledge you gained from working on them (include links):==
Other project I have worked on is a Educational Android application name GRE Wordlist, the app deploys many featurs as the database of 3000 frequent words asked in GRE, categorization of words and wikitionary search using mediawiki API.
Link of the project: [[ https://github.com/Ritsyy/wordlist | GRE Wordlist ]]
==Do you have any past experience working in open source projects (MediaWiki or otherwise)? If so, tell us about it! If you have already written a feature or bugfix in a Wikimedia technology such as MediaWiki, link to it here; we will give strong preference to candidates who have done so.==
As my early contribution, some of the patches I have submitted are linked here: [[ https://gerrit.wikimedia.org/r/#/q/owner:%22Rits+%253Cricharupela95%2540gmail.com%253E%22,n,z | rits ]]
GitHub profile: [[ https://github.com/Ritsyy | Ritsyy ]]