Page MenuHomePhabricator

Add user badges
Open, Needs TriagePublic


Adding User Badges to Wikimedia Platforms

  1. Profile

• Name:
• First name:
• Email:
• Linkedin:
• Location:
• Typical working hours: 8am to 10pm (UTC +1)

  1. Synopsis

Implementing a user badge system on Wikimedia platforms, similar to Stack Overflow, will improve user engagement, encourage positive contributions, and recognize users for their expertise and contributions. This feature will add a gamification aspect to the platform, making it more interactive and rewarding for users.

  1. Benefits for the Community

• Increased engagement: Badges encourage users to contribute more and become more invested in the community.
• Recognition of contributions: Badges valorise user expertise and work.
• Gamification: The playful aspect of badges makes the user experience more interactive and rewarding.
• Improved quality of contributions: Badges can encourage users to produce higher quality contributions.

  1. Originality and Innovation:

• Customized badge system: The system will be designed considering the specific needs of Wikimedia platforms and its users.
• Transparent attribution process: A clear and transparent process will be put in place to ensure fairness in badge attribution.
• Integration with existing tools: The badge system will be integrated with existing tools and features of Wikimedia platforms.

  1. Timeline

Phase 1: Research and analysis (2 weeks / 20 hours)

  • Period Task

May 27th - June 2nd Study of existing user badge systems on platforms like Stack Overflow, etc. (5 hours)
May 27th - June 2nd Identification of user needs and expectations (10 hours)
May 27th - June 2nd Definition of a set of relevant and meaningful badges (5 hours)
June 3rd - 9th Writing the research and analysis report (10 hours)
June 3rd - 9th Discussion of the report with mentors and the Wikimedia community (5 hours)
Phase 2: Development (8 weeks / 100 hours)

  • Period Task

June 10th - 30th Implementation of the badge system (60 hours)
June 10th - 30th Integration of the system into existing Wikimedia platforms (20 hours)
June 10th - 30th Setting up a badge attribution process (10 hours)
July 1st - 15th Testing and validation of the system with a group of users (30 hours)
July 1st - 15th Gathering user feedback and suggestions (10 hours)
July 1st - 15th Making necessary changes to the system (20 hours)
Phase 3: Launch and promotion (2 weeks / 20 hours)

  • Period Task

July 16th - 22nd Launch of the badge system to all users (10 hours)
July 16th - 22nd Writing blog posts and tutorials on the badge system (5 hours)
July 16th - 22nd Promoting the system on social media (5 hours)
July 23rd - 29th Monitoring and analyzing the use of the badge system (5 hours)
July 23rd - 29th Writing the final report (10 hours)
July 23rd - 29th Presenting the project to the Wikimedia community (5 hours)

  1. Deliverables

• Initial design of the badge system: Development of a robust design for the badge system, including the definition of badge types and criteria for earning them.
• Creation of tasks in Phabricator: Defining specific tasks needed to develop and implement the badge system.
• Creation of user interface mockups: Designing the user interface elements to display badges on user profiles.
• Development of the badge system backend: Writing the PHP and JS code necessary to award badges to users based on their contributions.
Phase 1: Research and Analysis (2 weeks)
• Study existing user badge systems on platforms like Stack Overflow, Mozilla, and Khan Academy.
• Identify the needs and expectations of Wikimedia users regarding badges.
• Define a set of relevant and meaningful badges for Wikimedia platforms, considering different levels of expertise and contribution.
Phase 2: Development (8 weeks)
• Implement the badge system in PHP and JS.
• Integrate the badge system with existing Wikimedia platforms, ensuring a smooth user experience.
• Set up a transparent and fair badge attribution process.
Phase 3: Testing and Validation (4 weeks)
• Test the badge system with a group of volunteer users.
• Collect user feedback and suggestions to improve the system.
• Make necessary changes to the system based on the feedback received.
Phase 4: Launch and Promotion (2 weeks)
• Launch the badge system to all Wikimedia users.
• Promote the badge system to users through blog posts, tutorials, and social media posts.
Project Evaluation:
• Phase 1 evaluation: Validation of the research and analysis report
• Phase 2 evaluation: Validation of the functional prototype and test plan
• Final evaluation: Validation of the final report and the impact of the system

  1. Contributions Tasks to be completed:

• Create a table to store badge information (name, description, image, points required).
• Create a table to link badges to users.
PHP Development:
• Define the logic for awarding points to users for different actions.
• Develop the function to display badges on the user profile and next to their contributions.
• Create the badges page and display the list of available badges and the conditions for obtaining them.
• Integrate the badge system with existing features.
Javascript Development:
• Manage the dynamic display of badges on the user page and on other pages of the site.
• Develop animations and interactions for badges.
Testing and Validation:
• Test the badge system to ensure it works properly.
• Validate the attribution of points and the display of badges.
• Write clear and concise documentation for users and developers.

	Working Environment:

• Git: I will work on a separate branch of the project's Github repository.
• Code download: I will upload the code to the Github repository almost daily.
• Pull requests: I will create pull requests as each feature is completed.

	Communication and Collaboration:

Communication platforms: I will be available on Slack, Microsoft Teams, Google Meet or Zoom during my working hours (08h to 22h UTC +1) to collaborate with mentors and the community.
Task tracking: I will use Phabricator to manage bugs and subtasks of the project.
Progress reports: I will publish weekly reports on my Meta-Wiki user page to share my progress and results.

	Availability and Commitment:

I will be available during my working hours to answer questions and comments. Outside of these hours, I can be reached by email via Gmail. I will strive to communicate and collaborate effectively with mentors and the Wikimedia community. I am committed to successfully completing the project and making a significant contribution to the Wikimedia community.

  1. About Me

I am currently in my second year of a Bachelor's degree in Information Technology Management at the Institut Universitaire de Technologie (IUT) of the University of Parakou. In addition to my studies, I am also a web developer. I developed an interest in web development in high school, where I learned the basics of HTML, CSS, and JavaScript. During my first year at IUT, I deepened my knowledge of web programming by taking courses on PHP, MySQL, and popular frameworks like Laravel. I have also completed several personal and professional web projects, including an e-commerce website and a blog and web platform.

  1. Motivation for GSoC:

I was drawn to the Google Summer of Code (GSoC) program because it offers a unique opportunity for students to contribute to important open source projects and collaborate with experienced mentors. I am confident that GSoC will allow me to acquire new skills, broaden my knowledge, and make a real difference in the world. I am particularly interested in the "User Badge System for Wikimedia Platforms" project. I believe that this project is very important because it will reward users for their contributions to Wikimedia platforms and encourage them to continue to participate. I am confident that my web development skills and my enthusiasm for collaborative work would make me a valuable asset to this project.

  1. Past Experiences

As a passionate and versatile junior web developer, I am looking for new challenges to put my skills to good use and contribute to ambitious projects.
My Achievements:
• Creation of personal websites to explore different languages and frameworks.
• Development of a web application for managing financial statements for a departmental directorate in my country using PHP, MySQL, and JavaScript during my first-year internship.
• Creation of a blog to share my knowledge and passions.
• Participation in hackathons.
• Contribution to team web development projects.
My Skills:
• Programming languages: PHP, JavaScript, HTML, CSS
• Frameworks: Laravel, React js
• Databases: MySQL, PostgreSQL
• Tools: Git, GitHub