GSoC 2018 Question tool – Report

I would like to thank my mentors Ellen Popko and Justin Clark for constantly supporting me, guiding me and reviewing my code during the GSoC project. This post is a summary of work done by me on Question Tool as a part of Google Summer of Code 2018 with Berkman Klein Center.


Question Tool is a free, open source discussion tool which can be used either during a class/lecture or during an online discussion.

Gene Koo, Fellow at the Berkman Center, said, “It’s an effective way to keep feedback focused, direct speakers to audience interests, and potentially prevent the mic from being hijacked by that weirdo.”

The participants can add their instances to start a discussion or they can reply to or upvote a question which they want to get answered. It’s a great tool to be used for an online lecture where the online audience can post questions in the tool and the speaker can address them. The most important questions are sorted towards the top.

Project Description

GitHub Repository –…

During the summer I worked on solving bugs in the tool and adding some new features to it.

Question div UI

Changes were made to the question card’s UI. The upvote button was been given a separate div on the left side to prevent any confusion, flags were changed, share icons moved to a single option and ‘show x replies’ and ‘reply’ are now two similar buttons beside each other.

Editing Advanced features for admins and moderators

Each instance has its advanced features like maximum response length, social media sharing and so on which were decided when the instance was getting set up and remained the same throughout. I implemented an additional tab where the admins/mods can change the advanced options anytime.

Revert Upvote

Right now there is no option for users to cancel their upvotes. Once upvoted, on clicking again they get an error message saying ‘already upvoted’. This was solved by showing a pop up when the user clicks on an already upvoted question which acts as a confirmation for canceling the upvote by asking the user yes/no

Admin Interface bugs

Solved bugs present in the admin interface. Proper checks were implemented when adding a moderator. Earlier it was possible to add more than the maximum number (four) of moderators if the user presses the done button instead of plus. This and other minor errors in the admin interface were solved.

A Bug in the Presentation Mode

This was a small issue but an important one. This solves the error of hidden questions being visible in the presentation mode. Presentation mode is likely to be used in a projector screen so it was important to hide the hidden questions (visible to admins and moderators) once admin/mods enter to presentation mode.

Change Password

Added the ability for users to changes their passwords.

Future work

The PRs for some of the above tasks are still not merged. Firstly I’ll finish the unmerged changes. Then I plan to make changes based on the reviews I get from users using the new version of the tool. Apart from that, there are two major things which can be added to the tool in future.

Side div

Currently, when opening the ‘show reply’ box, the popover template covers the full screen and hides other questions but after this functionality, the user can easily view one question’s replies and all other questions simultaneously as shown in the screenshot below since the reply box will be moved to a separate div on the right side of the screen.

Increased functionality to Revert Upvote

After the addition of revert upvote functionality, there arises a single issue which needs to be solved to avoid any misuse of it. This is not a present problem but there can be some cases where users may try to change the ranking of questions through their ability to un-upvote. To prevent that we can add a time limit for the users to be able to cancel their upvotes which will serve the sole purpose of canceling accidental upvotes.


This summer has been a great learning experience for me. I have learned a lot from my mentors while working on the project.

I am very grateful to my mentors Ellen Popko and Justin Clark, and the entire Berkman Klein community for giving me this wonderful opportunity.

Thank you