Page MenuHomePhabricator

Outreachy Internship (May - Aug 2023): Write a Ruby Gem for Wiki Data Edits
Closed, DeclinedPublic

Description

Profile Information

Name: Sharon Kessio
Username: Kessio sharon
Web Profile (Github): sharon Kessio
LinkedIn: sharon kessio
Resume (optional): Resume
Location (country or state): Nairobi, Kenya
Typical working hours (include your timezone): 3:00 p.m. - 11:00 p.m. (UTC+3) Open to flexible hours in order to improve communication with the mentors.

Synopsis

The goal of this project is to develop a Ruby gem that can analyze Wikidata edits and extract statistics about what changed. Currently, there are no tools available to accurately determine the number of qualifiers added, the number of references added, and other such statistics. This library will be used to improve Wikidata statistics on Wiki Education Dashboard and Programs & Events Dashboard, and can also have other applications.
The proposed solution involves writing code to fetch JSON representations of a Wikidata item and isolate the differences between revisions. A diverse set of example edits representing different kinds of changes will be explored to research the statistics that can be extracted from the JSON differences. Methods will be created to generate these statistics and a suite of tests will be written to demonstrate that the example edits are processed correctly.
The project will be coordinated with mentor(s) to publish the gem, with a stretch goal of integrating it into Wiki Education Dashboard. The library will be useful for researchers and data analysts who want to extract valuable insights from Wikidata edits.

  • Possible Mentor(s):

Sage Ross

  • Have you contacted your mentors already? :

Yes

Deliverables

Timeline

May 29 - June 4
  • Orientation and onboarding
  • Get familiar with Wikidata and its API documentation.
  • Research existing tools and libraries for parsing Wikidata revisions
June 5 (Feedback 1)
  • Discuss progress made and any challenges faced
  • Receive feedback from mentor(s) on approach and plan for next steps
June 6 - June 18
  • Write code to fetch JSON representations of a Wikidata item and isolate the differences
  • Test code with a small set of example edits to ensure accuracy
June 19 - June 25
  • Research various kinds of changes that can be made to a Wikidata item
  • Compile a diverse set of example edits representing different kinds of changes
June 26 - July 2
  • Research what statistics can be extracted via JSON differences and create methods for generating these statistics
  • Start writing tests to ensure that the statistics generated are accurate
July 3 (Feedback 2)
  • Discuss progress made and any challenges faced
  • Receive feedback from mentor on the code, tests, and plan for the next steps
July 4 - July 16
  • Continue writing tests to ensure that the code works as expected
  • Refine code and methods based on feedback from mentor
July 17 - July 23
  • Add methods to efficiently fetch and analyze large batches of Wikidata edits at once
  • Test these methods on a small batch of Wikidata edits to ensure accuracy
July 24 (Feedback 3)
  • Discuss progress made and any challenges faced
  • Receive feedback from mentor on the efficiency of the code and plan for the next steps
July 25 - August 6
  • Continue testing and refining the code and methods based on feedback from mentor(s)
  • Prepare documentation and examples to help users understand and utilize the gem
August 7 - August 20
  • Coordinate with mentor to publish the gem and integrate it into Wikidata or Wiki Education Dashboard
  • Write a blog post or tutorial explaining the features and functionality of the gem
August 21 (Feedback 4)
  • Discuss progress made and any final adjustments needed before the end of the internship
  • Receive feedback from mentor on the final deliverables
August 22 - August 25
  • Make final adjustments and wrap up loose ends
  • Submit final changes
Conclusions

Overall, the development of the Wikidata gem is a valuable contribution to the Wikidata community, providing users with a powerful tool for analyzing Wikidata edits and extracting detailed statistics. The effort and dedication put into this project will result in a reliable and efficient gem that has the potential to benefit a wide range of users.

Participation

I have forked and made contributions to the WikiEduDashboard Repository on GitHub
I'm currently a member of the Wiki Edu Dashboard slack channel where I have been communicating during the application process and intend to use it during the internship

About Me

Education:

Completed Formal Education:
Machakos University
Bsc. Information Technology (2015 - 2019)

Microverse: Remote Full Stack Web Development Program (June 2022 - March 2023)
Spent 8hrs a day mastering algorithms, data structures, and full-stack development while simultaneously developing projects with JavaScript, React, Redux, Ruby, and Ruby on Rails.

How did you hear about this program?
One of my connections on Linkedin posted about it on her page.

Will you have any other time commitments, such as school work, another job, planned vacation, etc, during the duration of the program?
No! I will be fully available for this internship

We advise all candidates eligible for Google Summer of Code and Outreachy to apply for both programs. Are you planning to apply to both programs and, if so, with what organization(s)?

No, I have only applied for Outreachy

What does making this project happen mean to you?

This is my first time participating in and contributing to an open-source project. At first, it looked challenging to me, as I was stepping out of my comfort zone. However, once I successfully ran the WikiEduDashboard codebase on my machine and wrote my first pull request, I felt thrilled and motivated to continue making more contributions. As a recent Bootcamp graduate, I believe that participating and contributing to the open-source community is the best way to gain real-life experience.

The amount of time and effort that will go into making this project happen will broaden my knowledge, improve my software development skills, and act as a launchpad for my career as a software engineer. Like many others in the world, I have been a user of Wikimedia services, and it will be an honor and a great achievement to be among the people developing and improving Wikimedia projects.

Past Experience

My Achievements
I run a blog on medium where I talk about Technology

Partcipant of OpenGenus :I'm a participant of OpenGenus, an opensource organization where we research and write articles explaining various programming concepts along with codebases.

I run juniordev_ke : tiktok account where I give advice, tips and resources to aspiring software developers in Kenya. I vlogged about Outreachy internship the video got over 225k views.

Please add links to any feature or bug fix you have written for a Wikimedia project during the application phase.

  • https://github.com/WikiEducationFoundation/WikiEduDashboard/pull/5337 [Merged] - I discovered a bug in the search results query for campaigns while exploring the WikiEduDahsboard project code base. When no campaigns were searched or there were zero campaigns in the database, users would see the message "No results found for '[missing "%query" value]'." Because this technical error message was confusing and unhelpful to users, I contacted the project mentor to discuss a possible solution for the bug. I was able to track down the source of the bug and develop a solution. I modified the query to check for empty search results or a lack of campaigns in the database which also updated the message displayed to users accordingly. After testing my fix thoroughly, I submitted a pull request and it was approved and merged into the codebase.
  • https://github.com/WikiEducationFoundation/WikiEduDashboard/pull/5334 [Open] I worked on enabling the Rspec/MultipleDescribe Rubocop rule for the WikiEduDashboard folder, which helps to improve the code quality and maintainability of the project. This rule checks for multiple top-level 'describe'. They should be nested if it is for the same class or module or separated into different files, which makes the code more organized and easier to read. I carefully reviewed all the files in the WikiEduDashboard folder and fixed any violations of this rule. This involved reorganizing and restructuring the code in some cases with no functionality changes made. This resulted in cleaner, more readable, and maintainable code. Throughout the project, I had the pleasure to work with the mentor and the Wiki Ed community on the Slack channel. I believe their guidance and advice were invaluable in helping me understand the project codebase and navigate any challenges that arose.
  • Describe any relevant projects that you've worked on previously and what knowledge you gained from working on them

Budget App Rails - Code - This is a mobile web application that allows users to add and keep track of their spendings. This project was made using ruby on rails and bootstrap for styling.

Skills

Event Timeline

kessio updated the task description. (Show Details)
kessio updated the task description. (Show Details)
kessio updated the task description. (Show Details)
kessio updated the task description. (Show Details)
kessio updated the task description. (Show Details)
kessio updated the task description. (Show Details)
kessio updated the task description. (Show Details)
kessio updated the task description. (Show Details)
kessio updated the task description. (Show Details)
kessio renamed this task from Outreach Internship (May - Aug 2023): Write a Ruby Gem for Wiki Data Edits to Outreachy Internship (May - Aug 2023): Write a Ruby Gem for Wiki Data Edits.Apr 1 2023, 12:06 PM
kessio updated the task description. (Show Details)
Aklapper changed the subtype of this task from "Design" to "Task".
Aklapper removed a subscriber: Outreachy.
Aklapper added a subscriber: Ragesoss.
kessio updated the task description. (Show Details)

Outreachy results are out! Declining this task as the proposal was not selected. You could consider finishing up any pending pull requests or tasks remaining from the contribution period. Your ideas and contributions to Wikimedia projects are still welcome. If you would still be eligible for the next round of Outreachy, we look forward to your participation!