Page MenuHomePhabricator

GSoC 2019 Proposal: Page Forms - add an editable calendar interface
Closed, ResolvedPublic


Profile Information

Name: Priyanshu Varshney
Github Profile:
Institute: Indian Institute of Technology Indore
Location: Indore, India
Time Zone : UTC +05:30
Typical Working Hours : [4 pm to 9 pm], [10 pm to 1 am] UTC +5:30


The Forms made using the Page Forms extension for MediaWiki can be used to add and edit template calls in the pages. This project aims to add a calendar interface that allows creation and editing for pages that call templates that contain one or more date/ datetime fields. This interface will be built with the FullCalendar JavaScript library.
Mentors: @Yaron_Koren Erik Biegert @yashdeep97

Why Wikimedia?
I was introduced to Wikimedia last year by my college senior and I got to know about its effort to share information and knowledge with the world. I started looking deeper into MediaWiki and started writing code for which I had an incredible time working on the micro tasks and received a lot of guidance and feedback on my work from the mentors, and it was a great learning experience. Contributing to this project would be a great opportunity for me to be a part of this amazing community and develop features that will possibly be used by millions of people.

Features and Implementation

1. Allows users to edit multiple template calls simultaneously using a spreadsheet-like interface
Create a special page that will allow a user to edit all the calls to a particular template with date fields. This Calendar interface will contain dates and each cell corresponds to various template calls for various events.

2. Get ideal input type for each parameter
Add support to get the input type for each template parameter(date, date-time) and display it accordingly in the calendar interface.
3. Provide support for renaming pages
Explore the page moving mechanism used in MediaWiki either by using functions from Special: MovePage or API: Move.
4. Develop similar interface for Coordinates fields which will allow users to create and drag around markers on a map


PeriodAssignment or Task to solve
May 6 - May 26Community bonding period. Get more familiar with the code base by fixing other issues in Page Forms. Become more active on IRC, Phabricator, and Gerrit, communicate with mentors, community members, and other participants and get to know more about their projects.
May 27 - June 13Create Special Page for Calendar Interface to edit template calls: Develop code to include FullCalendarJS library and integrate it into the codebase. It would be named as PF_FullCalendar.js
June 14 - June 23Develop code for a popup form for the events which would be similar to the single instance of the multiple instance template. Get ideal input type for the popup form
June 24 - June 28Phase I Evaluations
June 29 - July 3Improve Interface: Check for scalability and implement for a larger number of events. Implement Drag-N-Drop logic for the events on the calendar
July 4 - July 15Develop logic for adding new events: Write code to add Resizing logic for the events through the month and Time Grids. Testing the new UI and fix bugs.
July 16 - July 26Functionality to add support for Token and Combobox input types: Fix bugs. Simultaneously develop the functionality to rename the new or existing events
July 22 - July 26Phase II Evaluations
August 1 - August 13Build the code and submit regular patches on the Gerrit. Improve the date and datetime handling logic
July 27 - August 25Buffer time: Fix any issues left and make sure the documentation for code written is thorough. Improve the code structure and get rid of redundancy in the code
August 17 - August 25Buffer time: Fix any issues left and make sure the documentation for code written is thorough. Improve the code structure and get rid of redundancy in the code. Try to add support for other input types like -rating, tree etc
August 25 - September 2Mentors submit final student evaluations
September 3Final results of Google Summer of Code 2019 announced


I’ll use GitHub to publish my source code. I’ll communicate my weekly progress with my mentors via email. In case I get stuck, I’ll reach out to them via email, IRC and hangout.

About Me

Tell us about a few:
I am an undergraduate, third-year student, pursuing a Bachelor of Technology in Electrical Engineering from Indian Institute of Technology, Indore. Despite my circuital branch, my huge interest in programming allowed me to take online programming courses in OOPS, Web-Development, Machine learning. I have participated in various hackathons bagging good ranks in all of them.

Past Experience

My GitHub link is this. Some of my major projects are:

  1. Videofy It's a tool that takes an image based content article and automatically generates a motion video out of it. This was made in WittyHacks hackathon organized by WittyFeed. My team secured the first rank in this hackathon.
  2. Crop I made a Mozilla/chrome extension for the The Telangana Building & Other Construction Workers Welfare Board that takes the image from the webcam that is used to fill their registration forms. The webcam opens and takes the picture and I provided the feature of cropping the images as per the user requirement.

Contributions to MediaWiki:

  1. T188414 : Replace Dynatree JS library with Fancytree in Page Forms
  2. T217518: Page Forms: Fix "tree" input type for Foreground skin
  3. Rating type for Cargo Extension (To be updated, still in progress) Link : here

Any Other Info

Mockups to be updates

Event Timeline

@Zoranzoki21: It's either for Outreachy or Google Summer of Code, I guess. :)

@priyanshu_varshney: Could you click "Edit Task" and enter an actual task summary please, plus clarify? Thanks.

@Aklapper @Zoranzoki21 Yes, It is for Google Summer of Code. Actually, I am still working on it and it will definitely take much time. I thought that it will be my private page for the time being. I think editing the Title and summary will do for the time? Otherwise, I will consider removing the page.

priyanshu_varshney renamed this task from Insert project title here to Improve the interface of Special:ViewData in the Cargo extension.Mar 2 2019, 10:13 PM
priyanshu_varshney updated the task description. (Show Details)
priyanshu_varshney renamed this task from Improve the interface of Special:ViewData in the Cargo extension to GSoC 2019 Proposal: Page Forms - add an editable calendar interface.Mar 20 2019, 1:58 PM
priyanshu_varshney updated the task description. (Show Details)

If you would like us to consider your proposal for review, please move it to the submitted column on Google-Summer-of-Code (2019) board.

@srishakatux Yes ma'am, I have moved my Proposal to the Submitted board.

Change 518403 had a related patch set uploaded (by Priyanshu varshney; owner: Priyanshu varshney):
[mediawiki/extensions/PageForms@master] Add a calendar interface to add and edit events using the FullCalendarJS Library.

Change 518403 merged by jenkins-bot:
[mediawiki/extensions/PageForms@master] Add a calendar interface to add and edit events using the FullCalendar JS library

Congratulations on completing the project! If there isn't anything remaining in your proposal to address, feel free to close this task. Before you do so, make sure your project is listed here and has the following information: Student name, Mentors, Relevant links and Outcomes (in not more than two lines).