Public Lab Research note

Omniauth and Gamification of contributing to Public Lab

by vaibhavgeek | March 28, 2017 19:03 28 Mar 19:03 | #14066 | #14066


Proposal for Google Summer of Code 2017**

Personal Information


Name: Vaibhav Maheshwari


Education: Integrated Master of science(MSc) in Maths(2015-20),

Sardar Vallabhbhai National Institute of Technology, Surat


Time Zone: Indian Standard Time (GMT +5:30)





About Me


I am passionate about programming and have been programming since I was 14 years old. I have tried to build 2 startups in last 5 years and they have won few awards. I have been developing in Ruby on Rails for last 2 years now.

Previous Projects

I've done some long-term projects with my time.

  • Edunova is a social, game based and community based learning platform which enables student to connect with each other and learn through games. It uses Machine Learning to personalize the learner's experience. This application was built on Ruby on Rails and Bootstrap.
  • Friendyoke was a social networking website which enabled people to connect with each other. I made this website in the year 2008, at that time in India, facebook was still gaining traction and other social networking websites were not even known. This website was built on top of ASP.NET, C# and Telerik Tools.

  • This project was about using smart contracts and blockchain to create a research journal instead of traditional system of publishing of research papers. (Link to Blog post)

More projects can be viewed on my github profile mentioned above.**

Project Description


There are multiple themes I would like to explore with my project. They are as followed.

  1. Facebook, Google, Twitter Omniauth Login.
    This would enable users to sign in and sign-up with single click and would save them the trouble of typing the username and passwords every time. I have had some experience with omniauth and login with social networks feature in website. jIbhH.png

This approach is clumsy and is most commonly used everywhere. I allows direct access to user with username and password. Below is an image on how I would implement it. CHsIH.png

This is an ideal approach that's how I would like to proceed with the problem.

2. I would also like to work on Gamification of contributing answers, comments to the publiclab. It would be deeply integrated with the profile of the person. Each person would receive medals based on

  • the number of likes on each answer authored by the user
  • number of answers written by the user
  • number of likes on a question asked by the user
  • number of questions asked by the user
  • number of comments by the user.
  • other contributions to the website by the user.

The criteria for receiving the medals would be clearly listed on the webpage. This would enable further engaged contribution. Top contributors can be listed on the home page with something known as "hall of fame". (debatable) **

Why do I want to do this project?


I have been involved in creating social platforms and working on educational platforms for the people. One of the most important things that I have realized is that any platform thrives only because of active engagement of people. I have closely studied tactics applied by different organizations to retain users on their own websites. PublicLab has the benefit of organizing physical meetups which thus enables PublicLab to create a curated and exclusive set of people enthusiastic about serving a cause. My aim of doing this project to enable a proper channel of communication on this curated platform.

My previous projects may have gained some popularity in startup expos but failed miserably to gain traction real-time. Working on a project which has community building based on ground traveling and creating an architecture for them which would be used by loads of people is something that excites me a lot.



I plan to allocate at least 40 hours per week on this project and share weekly progress updates with the community.

Pre SOC period: I would work on understanding authlogic and omniauth and thus improving some of the features on the website. I plan to create omniauth social login along with authlogic.

May 5 -- May 30: I plan to allocate most of the time understanding the architecture, and working on improving the personal profile page of the user such as edit profile, completion of user profile and forgot password scenario if the user has signed up using a social network.

May 30 -- June 30: I plan to allocate at least 40 hours per week on this project and share weekly progress updates with the community. This would include start working on gamification of contribution system.

July 1 -- July 24: I plan to allocate at least 40 hours per week on this project and share weekly progress updates with the community.

July 24 -- August 21: Completing the gamification of contributions by the users on the profile of the person.

August 21 -- September 5: Adding the final documentation and tests, and cleaning the code. Looking into the community feedback and make sure everything is in place and is working. Preparing for End-term evaluation.


Do you have any other commitments during the summer of code period (i.e. between June and August)?

No, I don't have any commitments between 23 May, 2016 to 30 Aug, 2016.

Abstract/summary (<20 words):


What problem does your project solve?


Break your project up into small projects -- one per week!


What resources will you need: people, documentation, literature, sample data, hardware if applicable


Have you forked the relevant codebases? Installed them in a dev environment such as Need help doing so? Please provide a link to each of the above.


Tell us how you've learned about writing software; what languages you've been learning, if you've worked on other projects, links to GitHub or other code repositories or samples.

Have you looked over our welcome page and are you familiar with how to make your first contribution? Have you already?


Describe teams you've worked with before, whether open or closed source, and in what capacity you participated. Cite examples of how you were self-motivated and self-sufficient.


What about our projects, and Public Lab, interests you? What are you passionate about? Open science, environmental justice?


Whom do you want your work to help? We especially appreciate proposals which make technologies and techniques more welcoming and friendly to those who've often been excluded.


Do you understand this is a serious commitment, equivalent to a full-time summer job? Tell us how you'll structure your schedule from day to day!


Hi, @vaibhavgeek - thanks for your proposal; can you articulate the benefit of your proposed alternative OAuth architecture? I'm not that familiar with it, so what are the pros and cons?

As for the gamification, there are some powerful ideas there. One thing we've noticed is that different kinds of people prefer different types of value systems, and we've specifically chosen Barnstars and likes as a way to give credit and appreciation.

I'd like to be careful about what's called gamification. I think that we are definitely looking to get people to sign up to answer each others' questions, and to try to break up and work on pieces of each others' projects. But I wonder if we need to look carefully at some of the geographic features as a place to innovate, rather than badging -- for example, how could we best show people who's nearby, and what projects they might be able to get involved in? How could we help people quantify and understand their own level of involvement and set of accomplishments?

These are broad questions, but I think the best way to engage with them is to look at some of the ideas we've posted on our ideas page and to see how those systems overlap with the kinds of incentive structures you're interested in. Does that make sense? Thank you so much for your proposal!

Is this a question? Click here to post it to the Questions page.

Reply to this comment...


Omniauth structure.

Older structure => It creates new user when a person registers (using traditional methods) and the authentication model has no role to play in it. When the user signs up from social netwroking websites, it goes to authentication model which confirms and then communicates with the user model. So there are two models in which one of them is completely unnecessary.

Structure that I propose => As you may have guessed, the username and password also goes to the same authentication model and so does the authentication token from the social networking websites. It makes the traditional username and password act as a provider just like facebook-omniauth and twitter-omniauth.

This approach is used by omniauth-identity gem which has been explained Ryan Bates on this video here,

From the end-user point of view there is no difference at all. It is completely the same experience.

Reply to this comment...

Hello @warren,

What I mean by gamification of contribution process is that, contributors tend to be more active when they have points to achieve. The idea is to move to one level, then to next level and thus increasing the enthusiasm of contributors. Websites like stackoverflow and quora keep awarding points on the basis of vertical system rather than a more horizontal one. What I mean to say is that as the user bags more points he tends to move up in reputation and is given more exclusive access. The score can be incremented in multiple plays such as asking the right question or giving the right answer. Nevertheless, there is a central reputation system to maintain which is the score of that person.

Currently barnsters are medals which are basically more horizontal way of doing things that is each of your action on the website would get you a particular barnster.

It can be very well debated which of the methods is better - whether to have a central tendency and have a more competitive environment or to have a more horizontal environment which means all the badges have equal value and there are some for all. I would like to hear your opinion on which one is better?

Is this a question? Click here to post it to the Questions page.

Reply to this comment...

" how could we best show people who's nearby, and what projects they might be able to get involved in? How could we help people quantify and understand their own level of involvement and set of accomplishments? "

These are some very powerful questions that you posted and it gives me a better sense of what Public Lab as an organization is trying to accomplish. I apologize in advance if I was little naive in my proposal I posted above.

To be honest, I think the omniauth authentication would not take complete time for my GSOC project and I would like to do something creative and new also. I would reply to you after having a proper thought on a project apart from omniauth authentication.


Is this a question? Click here to post it to the Questions page.

Reply to this comment...

Login to comment.