Page MenuHomePhabricator

{GSOC 2024 Project Proposal}-Improve InlineComments Extension
Closed, DeclinedPublic

Description

Profile Information

Name: Rohan Volety
Github:RohanVolety
Location:New Delhi, India(IN)
Time Zone: IST(UTC+5.30)
Working hours: 12:00 PM to 2:00 AM (IST)

Synopsis

Improve InlineComments extension
InlineComments (https://www.mediawiki.org/wiki/Extension:InlineComments) is a relatively new MediaWiki extension that provides a long-missing feature for MediaWiki: the ability to do inline annotation on pages, in the manner of Google Docs, Confluence and other content-management systems.
The further improve the inlineComments extension various improvements can be added.

How it Benefits Wikimedia Projects:
User mentions would enhance communication, which ensures relevant contributors are notified about the discussion. Making the sidebar skin neutral would improve consistency and usability, thus making it easier for users to navigate and interact. Also, displaying the username and timestamp information for newly created comments would allow transparency and accountability in discussions.
Deliverables

  • Add user mentions, i.e. selecting a user or users to "ping" about the current discussion by typing "@" and then selecting a username from the dropdown (T355942)
  • Make sidebar creation more skin-neutral - currently, the "sidebar" in which comments are displayed is created on somewhat of a skin-by-skin basis; it would be good to have the code handle all skins in a standard way, via CSS and/or JavaScript (T355948)
  • Add correct display of username and date/time of posting, on comment creation - currently, these are only displayed correctly for comments created before the page was loaded (T355943)

Possible Mentor(s)
@Yaron_Koren and @Bawolff

Timeline

Community Bouding Period

May 02, 2024 - May 27, 2024Get in touch with mentors,interact with the metors and understand the outcomes and expections of this project. Then focus on understanding the codebase and architecture of inline comments extension.

Coding Period Starts

May 27, 2024 - June 03 , 2024Understand the new features to be developed and decide the strategy and deadlines for each feature for testing and development. Dicuss the deadlines and strategy with mentors as well.
June 03, 2024 - June 10, 2024Setup the development environment and begin the initial implementation of the new features based on the strategy mentioned in the first week.
June 10, 2024 - June 17, 2024Implement the user mentions feature, receive code review feedback from mentors, and make necessary adjustments.
June 17, 2024 - June 24, 2024Test the user mentions feature thoroughly to ensure its functionality and stability without breaking any existing code and also write the first blog post.
June 24, 2024 - July 01, 2024Dicuss the approach with the mentors and start working on the sidebar creation code to ensure consistency across different skins, using CSS and/or JavaScript.
July 01, 2024 - July 08, 2024Test the modified sidebar creation code to ensure functionality and compatibility across different skins.
July 08, 2024 - July 15, 2024Mid-term evaluation with the mentors. Then focus on next feature of ensure that the username and date/time of posting are displayed correctly for comments created after the page is loaded.
July 15, 2024 - July 22, 2024Test the modified code to ensure that the username and date/time of posting are displayed correctly for comments created after the page is loaded.
July 22, 2024 - July 29, 2024Conduct comprehensive testing of all implemented features and gather feedback from mentors for further improvements. Additionally, test the application locally to ensure all features working properly.
July 29, 2024 - August 05, 2024Document all implemented changes complete the pending blog, review the code once again, and work on any remaining ideas or features after dicussion with the mentors.

Final Evaulation.

Overview of possible Approaches for the Deliverables

  • T355942 - I am thinking of Utilizing the "@"-autocompletion feature in the DiscussionTools extension, which relies on VisualEditor. This approach involves integrating DiscussionTools into InlineComments to use its user mention functionality. Users would interact with InlineComments using VisualEditor inputs, which may require adjustments to the user interface.
  • T355948- I am thinking of using a single CSS file instead of having separate CSS files for different skins, can we create a single CSS file that includes styles that work well across all skins.All common styles used across different CSS files and consolidate them into a single file.
  • T355943- Instead of creating a new API module, extend the existing 'inlinecomments-add' module to return the timestamp string along with the response. When a new comment is added, include the timestamp of the comment creation in the response data.

Communication Plan
To ensure smooth communication and collaboration, I will actively chat and share updates on Phabricator and Gerrit. I will be sharing weekly updates with the mentors either through phabricator or through email. Any major issues will be duely informed to the mentors immediately. I will be available during designated times and maintain an open channel for feedback to continuously improve.

About Me

My name is Rohan Volety Currently in my final year of Computer Science and Engineering from KIIT University.I am excited to leverage my technical skills and passion for technology to contribute to Wikimedia. Throughout my academic journey, I have acquired a solid foundation in computer science principles. My coursework has exposed me to various programming languages such as C++, Python, and web development technologies like HTML, CSS, JavaScript , PHP and frameworks like Reactjs,Nodejs.I have completed several projects that involved developing software applications, implementing algorithms, and designing user interfaces.I have done internships at reputed organizations. Previously, I worked with DigiLocker in the backend team,where I developed APIs using Flask and worked on the authentication and authorization of particular APIs using JWT tokens and many other techniques.I have also worked as a full-stack developer Intern at Highradius: In my role as a full-stack developer intern at Highradius, I was responsible for developing a full-stack invoice management application using React.js.

Relevant Skills

  • PHP
  • JQuery
  • JavaScript
  • HTML
  • CSS
  • C++
  • Python
  • Docker
  • Jenkins

How did you hear about this program?
I came across this program while exploring open-source projects on YouTube. My interest in open-source led me to discover this program.

Will you have any other time commitments, such as school work, another job, planned vacation, etc, during the duration of the program?

No, I dont have any other commitments during the duration of the programme.

We advise all candidates eligible for Google Summer of Code and Outreachy to apply for both programs. Are you planning to apply to both programs and, if so, with what organization(s)?

I have applied only for GSOC program.

What does making this project happen mean to you?
Making the InlineComments extension project happen in GSOC means a great deal to me as a developer. It represents an opportunity for me to contribute meaningfully to open-source software and the Wikimedia community while improving my technical skills and gaining valuable real world experience.

How many hours per week can you dedicate to this?
I can contribute 30-40 hours per week and can also increase according to the project requirements.

Past Experience

Please add links to any feature or bug fix you have written for a Wikimedia project during the application phase.
(T355950)- https://gerrit.wikimedia.org/r/c/mediawiki/extensions/InlineComments/+/1008107

Past Projects

  • Expense Tracker Building an expense tracker with the MERN stack has increased my understanding of full-stack development. Utilizing MongoDB for data storage, Express.js for efficient backend API development, React for dynamic frontend UI, and Node.js for server-side logic has provided a insight into creating scalable and feature-rich web applications.
  • URL Shortner I gained a deeper understanding of asynchronous programming and event-driven architecture inherent in Node.js, which is crucial for handling concurrent requests efficiently.Integrating with databases like MongoDB for storing short URL mappings improved my understanding of database interactions and schema design.
  • Contact Form working on this contact form project has provided a solid foundation in both PHP and JavaScript development.