Page MenuHomePhabricator

Proposal : Adding Custom features while upgrading and updating Quiz extension - Gsoc17
Closed, ResolvedPublic



Name : Harjot Singh Bhatia
Time zone : UTC +5:30
Email :
Website :
IRC username : harjotsingh
Gerrit : Gerrit-Harjot
Location : Delhi, India
Working hours : 7:00pm to 12:00pm( workdays ) and 11:00am to 9:00pm( weekends )


The project aims to update and upgrade MediaWiki Quiz extension while adding new features and removing legacy code.
Quiz extension is currently used on several WMF projects, such as Wikiversity but has lot of bugs and limited features for users.

The project will also work on the following :

  1. Importing bugs from wiki and resolving them
  2. Provide Unit Tests for the extension making it fault tolerant.
  3. Updating source code to current MediaWiki standards
  4. Provide Custom CSS classes

Benefits of this project include stability and functionality to the extension and comprehensive features for users of various Wikis.

Mentors: @Mvolz, @Reedy


  1. Importing and Resolving current bugs in the extension
    • Importing known bugs from Wiki page to Phabricatior
    • Resolving all bugs for the extensison
  2. Upgrading the code to MediaWiki standards
    • Current code used by extension is outdated and deprecated by the standards.
    • This deliverable will require the use of mediawiki standards such ResoureLoader instead of legacy code.
    • The extension has lot of hard coded Css which needs to be moved.
  3. Writing required tests for the extension
    • The tests for the extension will be needed to be modified after upgrading the code of the extension.
    • New features and function would require new tests in order to ensure proper functionality.
  4. Adding Custom Css feature and improving design
    • This deliverable would require modification to css design and adding another quiz parameter.
    • Few known bugs are related to design of the extension, most of them will be handled while resolving bugs and new features will have interactive design.
  5. Updating User Documentation
    • The user documentation would be updated after the code is upgraded and new features are added to the extension.


Tasks to be completed Timeline
Community bonding period, contribute more by submitting and fixing bugs and understand existing code5 May to 30 May 2017
Importing and Resolving all bugs related to the extension30 May to 6 June 2017
Upgrading Code while removing legacy code7 June to 14 June 2017
Improving design, adding interactive javascript and improving code quality15 June to 23 June 2017
1st Term Evaluation26 June 2017
Learning phpunit and writing unit tests for the extension to provide reliable code and tolerance27 June to 13 July 2017
Adding Flexible CSS and class attribute to the extension14 July to 22 July 2017
2nd Term Evaluation24 July 2017
Making different classes for css and adding related logic to backend25 July to 6 August 2017
Writing User Documentation7 August to 12 August 2017
Final Report Submission14 August 2017
Final evaluation21 August 2017

Other Commitments : The work is more spaced out before the 1st Term Evaluation due to the university exams which will be over by 20th June.After the exams I can devote more time as I have holidays till end of July .


As MediaWiki uses Phabricator which is an set of powerful tools used for managing bugs and task, I also intend to use it for tracking bugs, features.It is also helpful for getting feedback from people part of the organisation.All bugs and features will have tasks linking to the project, it will allow easy tracking and monitoring.

The code base also uses Gerrit for reviewing and managing workflow.I'm comfortable with using gerrit for project development and management.

I can be contacted on email or IRC also I intend on using my outdated blog for sharing my experience while working on the project.I will try to weekly update my blog by writing new posts.

I believe IRC and Mailing lists are great place to seek help.It would also be great to get in touch directly with my mentors via email if possible.

About Me

I'm 21 year old Student from Guru Gobind Singh Indraprastha University pursuing Bachelor in Information Technology and Computer Sciences.
I've been part of MediaWiki since May 2015.I enjoy working on open source technologies and love to contribute.
It been a learning experience to understand practical development at large scale.I also enjoy working on competitive programming problems and learning algorithms.


  1. Micro-Task : T40372, T161318
  2. Worked as PHP developer at Daphnis Labs for 6 months.

    Projects :
  3. Worked as Full stack developer intern for Ruk Solutions LLP for developing Feecount
  4. Academic Courses : Object oriented programming, Algorithm Desgin, Operating systems, Web technologies
  5. Other Resolved Tasks :
  6. Other merged patches : Patches

Other Info


-Programming Languages : C++, PHP, Javascript, HTML
-Frameworks and Libraries: CodeIgniter, jQuery, AngularJS, Bootstrap, PHPUnit
-Operating Systems: Linux, Windows
-Tools: Git, Gerrit, Latex, Gimp, Adobe Photoshop
-Database : MySql, SQL*plus

Related Objects


Event Timeline

I made the proposal early in order to get feedback.It would be nice if the mentors can review the proposal and share advice.
Suggestions and ideas would be appreciated and welcomed.
Thanks !

Harjotsingh renamed this task from Proposal : Adding Data storage feature and upgrading Quiz extension - Gsoc17 to Proposal : Adding Custom CSS feature while upgrading and updating Quiz extension - Gsoc17.Jul 23 2017, 3:40 PM
Harjotsingh updated the task description. (Show Details)
Harjotsingh renamed this task from Proposal : Adding Custom CSS feature while upgrading and updating Quiz extension - Gsoc17 to Proposal : Adding Custom features while upgrading and updating Quiz extension - Gsoc17.Aug 27 2017, 12:57 PM

Summary -

Importing and solving bugs : Earlier Wikipages were used to report and discuss bugs/features for the extension.All of these were imported to phabricator and each of these were resolved.
Removing legacy code and upgrading to MediaWiki standards: This task was majorly to refactor the code of the extension and use template parser to generate HTML.Static HTML code was removed.Using Template parser upgrades the extension to Mediawiki standards.
Providing Unit tests for the extension: Unit tests using PhpUnit were provided to the extension.Quiz extension has 2 Classes: Question and Quiz.Unit tests were added for both these classes providing functional coverage.
Adding required features : Various custom features were added to extension as discussed with the community.These involved changing feedback behaviour, shuffling scheme etc.

@Harjotsingh Thank you very much for the fixes and enhancements you did as part of this project.

Thanks to the Wikimedia Community and my mentors for helping me out for this Amazing project :)

Hi! Is there anything remaining in this task before it can be resolved? thank you!