Page MenuHomePhabricator

GSoC Proposal : Extension for page creating/editing notification
Closed, ResolvedPublic

Description

Profile

Full name : Abhinand N
Time zone : UTC +5:30
Email : abhinand4858@gmail.com
Blog : abhilovesto.wordpress.com
IRC username : abhinand_
Gerrit: Gerrit_abhinand_
Location : Kerala, India
Typical working hours : 5:00pm to 10:00pm( workdays ) and 11:00am to 9:00pm( weekends )
Mentors : @Yaron_Koren, @tosfos

Synopsis

This project aims in developing a MediaWiki extension that provides a greater range of notification options related to page creation and editing. Existing features such as Watchlist, Semantic Watchlist and PageCreationNotif covers only small subsets of all page related notification that could be done within a wiki.

Following are the features of MediaWiki which are already existing :

  1. Watchlist: This is a display for tracking changes such as recent changes to all pages, the revision history, all changes made to one page, the contributions of one specific user, newly created pages. It is limited in showing changes only across users set of "watched" pages.
  2. Page creation notification: A subset of the Watchlist. This extension enables email notifications for users on creation of new pages. The user can specify to whether receive emails or not in preferences.
  3. Semantic Watchlist: The Semantic Watchlist extension (abbreviated as SWL) enables users to monitor changes in properties defined by the Semantic MediaWiki extension. Looks for template field changes and changes to values.
  4. Echo extension: It provides notifications to users of various events related to their account, including new talk page messages, edit reverts, mentions, or links. These notifications can help users become more aware of events that relate to them and take quick action if they want to.

I propose to develop a unified extension that helps to manage all the above extensions at one place.

Deliverables

At a broader level, the main functionalities of the notification could be for the following events:

  1. Creation of new pages
  2. Edits to existing pages
  3. Changes in a specific template field
  4. Changes of a specific template field to a specific value

To begin with, I would like to consider a specified list of pages in one or more category or namespace. Also, users in one or more user groups within a pre-specified list are notified. It could also be done in such a way that users who signed to be notified are classified as a separate group who will be notified.

I propose a feature to allow all the notifications to be configurable. Also the pages or namespaces to be tracked should also be configurable.

User can choose a namespace, category or a list of pages. If a page in the namespace / category / list of pages is changed the user gets the notification.

The configurable parameters are Email, Special page, Echo notification, and calling another extension using hooks. The user is given the option to select and deselect the ways in which the notification should be done.

Following are some details about how the new extension could be implemented

  1. An automated email: Email notification feature exists already in MediaWiki. When a new page is created or edited, the new extension would trigger the existing email notification system to send the email.
  2. Echo Extension: The functionality of Echo extension which provide a flyout listing the recent changes can be used as another way of displaying notification to one or more users.
  3. A Special Page listing the recent changes: Special page (like watchlist and recent changes) which would track the needed events, listing it for the users can be implemented.

Timeline

Tasks to be completed Timeline
Community bonding period, contribute more by submitting and fixing bugs and understand existing notification systems22 April to 23 May 2016
Raw creation of the extension, adding in basic features, and plan for the notification framework24 May to 31 May 2016
Implement notification on 'Creation of new pages'1 June to 8 June 2016
Implement notification on 'Edits to existing pages'9 June to 16 June 2016
Make sure the notification mix well with Echo, email notifs17 June to 20 June 2016
Mid Term Evaluation21 June 2016
Implement notification on 'Changes in a specific template field'22 June to 28 June 2016
Implement notification on 'Changes of a specific template field to a specific value'29 June to 6 July 2016
Allow all the notifications to be configurable7 July to 14 July 2016
Writing Documentation, Deployment15 July to 22 July 2016
Final Report Submission23 July to 29 July 2016
Final evaluation22 August 2016

About Me

I am a 1st year Bachelor of Computer Science and Engineering student from Amrita University, Kerala, India. I am an active member of FOSS community in the college - FOSS@Amrita for the past 8 months. I was introduced to MediaWiki via the FOSS club. I have been contributing to MediaWiki since August 2015. I have got few patch-sets merged to the code base.
I enjoy working with open source and love to contribute and make software better.

Microtasks

As a part of preparing for this project I have worked on the microtask T125350

Skills

  • Web Development: PHP, HTML/CSS, JavaScript, MySQL
  • Operating Systems: GNU/Linux, Windows
  • Version Control System: Git, Gerrit
  • Frameworks: Bootstrap

Experience

  1. Open Source Contribution to MediaWiki: Fixed the below bugs in MediaWiki
  1. codecademy.com: Completed full course on HTML, CSS, Javascript, PHP and 62 % of Python. Codeacademy profile
  2. codechef.com: This is an online platform to improve problem solving skills and I have completed 22 challenges using C++. My CodeChef Profile
  3. Shopping Cart: Implemented a shopping cart using PHP, MySQL, HTML and CSS.
  4. Attended workshop on building web applications using Node.js
  5. Academic: Practical: C programming exercises, Linux, (link) and MIT Scratch Theory: Computational Thinking, Computer Essentials

Related Objects

Event Timeline

Abhinand created this task.Mar 25 2016, 1:45 PM
01tonythomas renamed this task from Abhinand GSoC Proposal : Extension for page creating/editing notification to GSoC Proposal : Extension for page creating/editing notification.Mar 25 2016, 2:31 PM

Please add in an 'About me' section too, with your past contributions and microtasks worked on.

Abhinand renamed this task from GSoC Proposal : Extension for page creating/editing notification to Abhinand GSoC Proposal : Extension for page creating/editing notification.Mar 25 2016, 2:34 PM
Abhinand updated the task description. (Show Details)
01tonythomas renamed this task from Abhinand GSoC Proposal : Extension for page creating/editing notification to GSoC Proposal : Extension for page creating/editing notification.Mar 25 2016, 2:35 PM
Abhinand updated the task description. (Show Details)Mar 25 2016, 2:37 PM

Also a detailed project timeline would be helpful.

Abhinand updated the task description. (Show Details)Mar 25 2016, 3:23 PM
Abhinand updated the task description. (Show Details)Mar 25 2016, 3:59 PM
Sumit added a subscriber: Sumit.Apr 22 2016, 7:49 PM

Congratulations @Abhinand for getting selected for this project in GSoC 2016! Wish you a good luck with it. You can start discussing ideas and get to speed with the project as the Community Bonding period has started.

Thanks @Sumit , I feel good to be selected as the candidate for this project. I am very much exited to work on the project and I have started to create an extension which make use of Echo so as to understand the working of the notification system. I am looking forward to be a part of MediaWiki. Thanks !

Welcome to Google-Summer-of-Code (2016) and to the Community Bonding period! Happy to have you here, and this should be crucial time to create important decisions regarding how your project should take shape during this two month internship period. You can find information about Community bonding period, from our Life of successful doc here. To make sure everything go as per planned, please follow the instructions in T133647 and create the 'Community Bonding Evaluation for $project' task as a subtask of your proposal task. Please note that all further tasks you create for evaluation and GSoC organization purpose should be subtasks of your proposal, and not the parent task - lets reduce the notification count. In case you are stuck, feel free to comment below T133647 or open up a conpherence task with the mentors and org admins. You can find example tasks in the task description of T133647

Niharika removed a subscriber: Niharika.Apr 27 2016, 2:05 PM

Saw your email here in https://lists.wikimedia.org/pipermail/mediawiki-l/2016-May/045533.html. Please make sure you add that to your community bonding period report too! Good one!

Ljonka added a subscriber: Ljonka.Jun 17 2016, 11:00 AM
01tonythomas closed this task as Resolved.Sep 14 2016, 6:45 AM

End of project timeline. Closing it down. Thank you for all the efforts, see you as a mentor for Google Code in 2016 at g.co/gci.

Outcome of this 2016 round projects at https://www.mediawiki.org/wiki/Google_Summer_of_Code_past_projects#2016