Page MenuHomePhabricator

Proposal : Add For User Badges (GSOC 2024)
Open, Needs TriagePublic



Name : Hasan Imam
Email :
Twitter / X :
Portfolio :
Github :
Location : India (UTC +5:30)
Typical working hours : Between 9 am to 5 pm UTC +5:30


Addition of user badges to the Wikipedia dashboard will help in recognizing the contributions of users and incentivize them to contribute more. The badges can be awarded based on the number of articles edited, the quality of edits, the number of articles created, the number of references added, etc. The badges can be displayed on the user's profile similar to Stack Overflow or Github. These buttons can be made using either PHP or JavaScript which can be dynamically updated based on the user's contributions.

Mentors : @Jdrewniak, @bwang

Timeline Roadmap

  • May 4 to May 26: Community bonding period. Getting to know other contributors and mentors, Understanding codebase and documentation and discussing the changes to be made while structuring a roadmap for development.
  • May 27 to July 8: Official Coding period. Starting the project of Dynamic User Badges, In this period I will be making a working prototype under the guidance of my mentors. In this time period I wish to complete the project prototype with defined levels of different User Badges having different designs. All the changes made to the project would be done on a new git branch up-to-date with current codebase.
  • July 12 to August 19: Post Midterm Work period. In this period under the guidance of my mentors I will be finalizing and completing the project of developing User Badges. The aim for this period is to convert the prototype to a fully functional production ready piece of code, this will include bug fixes, writing documentation and testing.
  • August 19 to August 26: GSOC24 contributors code submission and final mentor evaluations.
  • August 26 to September 2: Mentors submit final GSoC contributor evaluations.
  • September 3: Results of Google Summer of Code 2024 announced.


  • Prototype of User Badges with different levels of badges.
  • Dynamic User Badges based on user contributions.
  • Each Badge containing different designs based on the number of tasks done.

Phase I evaluation

  • Finalize the prototype of User Badges with different levels of badges.
  • Implement the dynamic User Badges based on user contributions.
  • Finalizing the designs of the badges based on the number of tasks done with feedbacks from our mentors.
  • Write tests for the implemented features.

Phase II evaluation

  • Convert the prototype to a fully functional production ready piece of code.
  • Bug fixes and writing documentation.
  • Testing the implemented features.
  • Final evaluation of the project.

Final evaluation

  • This would include final testing of the code and cross reading the documentation by the mentors for any minor changes


  • I will be working on a separate branch on git and pushing the code to the forked repo regularly, and I will be creating pull requests when the complete feature is done.
  • I will be online and connected to any communication channel like Zulip Chat, Slack, Discord, Phabricator, etc. during my working hours.
  • I will be updating my mentors on the progress of the project on a daily basis or when required.
  • I will possibly be making a short youtube video on the project and how it works.

About me

I am Hasan, a passionate self learned programmer with my constant eagerness to learn and make new things.
My love for coding and problem solving started when I was merely 6 years old as I grew up watching my father fix and repair computers and
electronic devices.

In 7th grade, my dedication to coding led me to achieve an International Rank of 230 and the Top 1 City Rank in the SOF Cyber Olympiads. This International Cyber Olympiad tested student’s knowledge of basics of coding with pseudo code, JavaScript and intermediate knowledge of computer hardware

In 2019, This love of coding excelled as I joined Harvard’s CS50 Web free online course where I got hands on experience on Python 3, Flask, Django, Git, JavaScript, ReactJs and Supporting Tools like Selenium, Sass, Docker, Bootstrap and other Web Development & Automation Tools.

During the lockdown in 2020-2021, I decided to put these skills to work and I started to make Youtube Videos of Python Tutorials and Projects which accumulated over 100,000 views with just a couple of videos.

From early 2022 to May 2023 I took a break from making videos and big coding projects to prepare for my High School’s Final Exams.
While from May 2023 till now I am spending my full time learning new coding tools [Ruby, PHP and MERN] and working for open source projects.

I have recently redesigned and rebuilt the entire landing page of an open source API handler called "Tweepy", while I have also made some
small but impactful changes in couple other open source organizations as well most of them being UI UX improvemnts.

Past Experience

I have worked on several open source projects in the past, some of them are:

  • Redesigned and rebuilt the entire landing page of an open source API handler called "Tweepy" (hosted at )
  • Built a production ready Travel Agent website with python flask , jinja2 and postgreSQL.
  • Built a courses website (like Udemy, Couresra) with python flask, nodejs, reactjs and postgreSQL. (hosted at )