Profile:
Name: Sulagna Saha
Linkedin : https://www.linkedin.com/in/sulagna-saha/
Web Profile: https://saha23s.github.io/website/ [In Progress]
Current Location: South Hadley, MA [International Student at Mount Holyoke College]
Home Location: Faridpur, Dhaka, Bangladesh
Typical working hours (include your timezone): 5 PM UTC to 1 AM UTC [1 PM EST to 9 PM EST]
Summary:
The Wiki Education Dashboard allows instructors and students to track their contributions to Wikipedia articles, monitor their progress, and receive feedback and support from Wiki Education staff.
This summer, I will focus on the “Write a Ruby gem for analyzing Wikidata edits” project. By integrating this gem into the Wiki Education Dashboard, instructors and program leaders can get more insights into the quality and quantity of contributions made by students, as well as identify areas for improvement in their assignments. They will be able to generate more detailed reports and statistics about the Wikidata edits made by students, which can be used to evaluate the success of their programs and identify areas for improvement.
The Ruby library (gem) parses differences between Wikidata revisions and extracts statistics about what changed. The technical approach involves fetching JSON representations of a Wikidata item and isolating the differences. I will explore a diverse set of example edits to represent different kinds of changes. I will create methods to generate statistics and a suite of tests will be written to ensure edits are processed correctly. Finally, I will publish the gem with the help of mentors.
Possible Mentors:
@Ragesoss
Have you contacted your mentors?
Yes
Participation:
I expect to spend 4.5 hours every day including weekends during the internship period. I plan to use the slack public channel to ask about my confusion and questions. I have forked the repo and set up the development environment. I will push commits to my forked project repository and make Pull Requests as and when required. I am flexible in changing my participation ways depending on suggestions from my mentor.
Timeline and Deliverables:
March 8 - April 3:
I have never worked with a big project like Wikimedia. So, I took time to get on board to understand the codebase and set up the development environment.
April 3 - May 4:
As I set up the development environment already, I would like to be more comfortable with the codebase in this period: knowing more about Wikidata and writing ruby code. I have seen some current open issues about Wikidata, I would like to dig into those such as
starting with new-comer issues related to Wikidata:
https://github.com/WikiEducationFoundation/WikiEduDashboard/issues/4940https://github.com/WikiEducationFoundation/WikiEduDashboard/issues/2491
[I won’t be able to work from May 1-10]
May 4 - May 29:
After getting comfortable with new-comer issues with Wikidata, I will approach complicated issues like this https://github.com/WikiEducationFoundation/WikiEduDashboard/issues/4283
so that I have a better idea of how I will approach the real project during the internship period.
[I won’t be able to work from May 15- May 20]
May 29 - June 4:
(Week 1 & Week 2)
I will start working directly on this issue: https://github.com/WikiEducationFoundation/WikiEduDashboard/issues/4999
With the help of the mentor, I will clearly define the small actionable steps I should take in the first two weeks such as
- Choosing the right API and beginning writing code to fetch JSON representations of a Wikidata item and isolate the differences.
June 5- June 18:
(Week 2 & Week 3)
- Continue writing code to fetch JSON representations of a Wikidata item and isolate the differences.
- Write tests to ensure the code works as expected.
- Explore Wikidata to find a diverse set of example edits representing different kinds of changes.
June 19- July 2:
(Week 4 & Week 5)
- Analyze the example edits to determine what statistics can be extracted.
- Write methods to generate these statistics.
- Write tests to ensure the statistics are calculated correctly.
June 3 - July 16:
(Week 6 & Week 7)
- Add methods to efficiently fetch and analyze large batches of Wikidata edits at once.
- Write tests to ensure the code works as expected.
- Work with your mentor to review the code and provide feedback.
July 17 - July 30:
(Week 8 & Week 9)
- Refine the code and add any necessary features.
- Write documentation and create an API for the gem.
- Write tests to ensure the code works as expected.
July 31 - August 13:
(Week 10 & Week 11)
- Coordinate with your mentor(s) to publish the gem.
- Write a README and documentation for the gem.
- Publish the gem to RubyGems.
August 14 - August 25:
(Week 12 & Week 13)
- Work on stretch goal: Integrate the gem into Wiki Education Dashboard.
- Write tests to ensure the integration works as expected.
- Write documentation for the integration.
My motivation:
I am a big advocate of teaching and contributing to education. I had struggled with tech education in my country and Wikipedia was my biggest helping hand to learn about the world. If I can contribute to the Wiki Education Dashboard, it helps a lot of students and teachers who will be actively editing things in the Dashboard.
Another big motivation from my side is to develop my tech knowledge and resilience to contribute to open source. I really want to contribute to the codebase so that thousands of students and teachers can use it. Contributing to open source gives me the opportunity to see the impact of the work sooner.
About me:
I am currently a sophomore at Mount Holyoke College, South Hadley, MA, USA. I am pursuing a B.A in Computer Science(major) and Philosophy(minor). I decided to major in computer science because I love spending time in coding and debugging, more importantly, the collaborative side of it. I am currently a teaching assistant in my college for Data Structures as well as I actively lead technical workshops at Girls Who Code MHC College loop.
Will you have any other time commitments, such as school work, another job, planned vacation, etc, during the duration of the program?
I am available to work for 30-35 hours per week during the internship period. I currently don’t have another job or school work or planned vacation during the internship period, but I will be preparing for technical interviews which might take 10 hours per week.
Past Experience:
This is a project where I learned about Ruby On Rails Framework. My main contribution to this project was writing ruby code to manage data from MySQL database and shows the data on the front end in the .erb files in the views directory.
This is the deployed website: https://valetbikes.herokuapp.com/
This is a personal project I am currently working on. This is my attempt to use React and Ruby on Rails in a project from scratch. I am working to build a course rating website where people can rate the courses instead of professors.
My current pull requests:
https://github.com/WikiEducationFoundation/WikiEduDashboard/pull/5327
https://github.com/WikiEducationFoundation/WikiEduDashboard/pull/5325
https://github.com/WikiEducationFoundation/WikiEduDashboard/pull/5291