Page MenuHomePhabricator

Outreachy Proposal 24 - Add support for tracking specific namespaces to Programs & Events Dashboard
Open, Needs TriagePublic

Description

Profile Information

Name: Sahethi Depuru Guru
University: VJTI (Veermata Jijabai Technological Institute), Mumbai
Email: sgdepuruguru@ce.vjti.ac.in
GitHub: Sahethi
IRC nickname on libera.chat IRC : sahethidg
Other Contact Methods: Slack, Zulip (Sahethi DG)
LinkedIn: https://www.linkedin.com/in/sahethi-depuru-guru/
Resume: Click Here To View
Location: Mumbai, India
Typical working hours: Between 4pm to 3am UTC +5:30

Synopsis

  • Short summary describing your project and how it will benefit Wikimedia projects
    • The Wiki Education Dashboard is a complex web app for keeping track of contributions to Wikimedia projects. The global Wikimedia community widely uses it for edit-a-thons, classroom wiki writing assignments, and other initiatives.
    • This project aims to add support for program organizer to specify which namespaces they want to count statistics for.
    • This can be tracking statistics for projects that don't care about edits; the Mainspace but do care about edits in one or more other namespaces.
  • Possible Mentor(s) Sage Ross (@Ragesoss )
  • Have you contacted your mentors already?
    • Yes, I have contacted my mentor through Slack and GitHub several times. I started getting myself familiarized with the codebase in the month of January and after getting comfortable with it, I started my contribution in the month of February. With this knowledge, I was able to help other newcomers with setting up their development environment.

Deliverables

Describe the timeline of your work with deadlines and milestones, broken down week by week. Make sure to include the time you are planning to allocate for investigation, coding, deploying, testing and documentation

The project deals with 2 main tasks
Task 1 - Designing and implementing a UI for selecting which namespaces to track

  • So a Wikipedia namespace allows an organization to separate content pages from administration pages. Namespaces separate data into core sets, those intended for public viewing, and those intended for the editing community.
  • So here we have Wikipedia Article as the “mainspace” page.
  • We have User namespace (User:) which would contain User pages and File namespace (File:). Similarly, the user’s talk page would be in User_talk: namespace.
  • Here the UI should allow user to choose namespace(s) to track which can go in either direction according to the which wiki(s) one would like to track.
    • Whether to track Assigned Articles
    • All Edited Articles
  • First I will design the UI for the individual course page and move on to implementing this on the campaign page, profile page, etcetera.

Task 2 - Updating event statistics update process to account for namespace setting

  • On taking look at UpdateProcessStats, we learn it is a service that runs on each course to pull data about edits on Wikipedia.
  • Thus further goes on to calculate updated stats for that course.
  • No we need to account for the namespace setting in the about Update Process
  • On counting the statistics of the namespaces we want to track, I plan to deal with the update process very similar to the way UpdateCourseStats handles Wikidata via UpdateWikidataStats.
  • You can take a look at the Wikidata stats here.
  • Here the database model would need to be changed along with the way the current update process.
TimelineWeekDescription
May 20, 2022 - May 30, 2022I’ll interact with my mentor and other contributors. I’ll focus on my implementation plan and discuss it with my mentor.I will make the necessary changes which will help me ease the implementation stage. This period is essential in order to set attainable goals which will help me throughout the coding period and prevent me to go astray.
May 30, 2022 - June 6, 20221Discussion with my mentor is most likely to give me a better idea of how the UI should look, I plan to create mockups for the same using Balsamiq. I will also try to familiarise myself with the backend so I get a better idea of the database models and the pipelining.
June 7, 2022 - June 14, 20222I will start working with the changes in the backend that would be needed to incorporate to add namespace tracking. I’ll be in touch with my mentor to solve any issues that I face.
June 15, 2022 - June 22, 20223Ongoing through the community slack channel, it was mentioned that one of the tasks one could deal with would be dealing with File namespace similar to other namespaces in a generalised way.
June 23, 2022 - June 30, 20224I’ll discuss the changes with my mentor and any concerns regarding the change in UI due to replacement.
July 1, 2022 - July 16, 20225 & 6Start incorporating the changes in UI with the backend. That is first designing and determining the react component.
July 17, 2022 - July 24, 20227I will document in-depth the work done in Readme.md file so that future developers can understand my work.
July 25, 2022 - Aug 1, 20228I will also update event statistics in the update process in other to be in sync with the namespace setting
Aug 2, 2022 - Aug 9, 20229I aim to use this week to complete any backlog work from previous weeks. I’ll finalize all the changes with my mentor because it’s very crucial to do so in order to ensure the proper working of the application. I’ll further use this time to fix bugs in the application and also implement the suggestions I might get.
Aug 10, 2022 - Aug 17, 202210Testing the changes which were made to the website is essential, hence I will do that this week. This includes writing necessary test cases, which can be black box or white box testing, depending on what is needed, hence I will ensure to make the website bug free from all the changes done throughout the summer. I'll use this time to complete the remaining documentation of the work done in the final phase, so that the developers who will extend this project have a better idea.
Aug 18, 2022 - Aug 26, 202211I'll conclude my Outreachy journey with my detailed blog on Medium about my entire experience.

Participation

Describe how you plan to communicate progress and ask for help, where you plan to publish your source code, etc

  • I have joined the Slack group for WikiEduDashboard since January. I am also available through Email and Zulip. I will also be up for a planned video session.
  • I am consistently communicating with my mentor Sage Ross and asking for help as required with regard to my Pull Requests or general questions related to WikiEduDashboard.
  • I have been an active user of Git VCS for 3 years. I initially started off with GitLab and now I’m a proficient user of GitHub and I’m willing to communicate through GitHub and Phabricator as well.
  • I have been following a procedure where I publish my source code on GitHub itself, by creating separate feature branches and uploading the code consistently. And then creating pull requests for the same and I plan to continue this practice.
  • I plan to blog about my experience on a weekly basis and post on my Medium.
  • I am open to helping new contributors to get started and review pull requests wherever I can.

About Me

Tell us about a few:

  • Your education (completed or in progress)

I’m a pre-final year student pursuing B-Tech in Computer Science Engineering from Veermata Jijabai Technological Institute (VJTI), Mumbai. My course spans four years i.e. 8 semesters, I’m currently in my 6th semester.

  • How did you hear about this program?

I heard about this program through a committee that I’m a part of in my college called SRA (Society of Robotics and Automation). It consists of a few students who have participated in this program before and they had shared their experiences. It was through them that I really got interested in the concept of open source and I believe this will be a great opportunity for me to be a part of this community by actively contributing.

  • Will you have any other time commitments, such as school work, another job, planned vacation, etc, during the duration of the program?

I have my exams till May 20, 2022 after that I will be readily available. I'll be able to give 40 hours or more per week till August 19, 2022. After this date, my exams will start but the majority of the work will be done hence I will be able to manage.

  • 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)?

I’m eligible for GSoC and Outreachy and I’m applying under the same organization. In the case of GSoC, I’m applying for GSoC 2022 under Wikimedia itself where my project is to Modernize JavaScript build process and dependencies for Wiki Education Dashboard under the mentor Sage Ross (@Ragesoss). I really hope that I'll be able to start my journey with open source and be a part of this community.

  • What does making this project happen mean to you?

I initially used to be quite intimidated by the idea of open-source contributions, it felt like something beyond my reach. This is the first time I have ever experienced the world of open-source and I can’t be more grateful for the help I received and the constant guidance from the community which kept my spirits high. When I first approached this project WikiEduDashboard it definitely took a while to understand the complexity of the project at the same time learning technologies I wasn’t familiar with before. Even though I ran into a lot of errors while setting up the development environment and had a hard time understanding the code base, I felt an attachment towards the cause of the project which is to bring free educational content to the world hence making me determined to submit my first Pull Request. And after that, it felt like with every PR merge, you get a hit of dopamine. Making this project happen would not only mean that I would be an integral part of this community but also get the opportunity to interact with exceptional people who are contributing to a noble cause that is globally benefitting millions of us who rely on these wikis.

Past Experience

  • Please add links to any feature or bug fix you have written for a Wikimedia project during the application phase.
  • Describe any relevant projects that you've worked on previously and what knowledge you gained from working on them.
  • Describe any open source projects you have contributed to as a user and contributor (include links).

I have been passionate about programming since my second year of my Associate’s in Computer Engineering (2018). And have developed a fanaticism towards data structures and Java in particular. I, later on, started experimenting with Web Development and found it quite engrossing. I always wanted my code to be a part of something bigger and have an effect on a daily user's experience. I only recently found out about the open-source community. I have tried to get my hands dirty in the same, I appreciate the guidance I got through my mentor while contributing, which allowed me to write clean code and detailed Pull Requests which is very important in any organization.

Technical Skills

  • Languages: Java (Core, Advanced, Swing), C, C++, HTML/CSS, SCSS, JavaScript, jQuery, NodeJS, Python, Kotlin
  • Database: MySQL, SQLite, MongoDB, Microsoft SQL Server
  • Developer Tools: Visual Studio Code, Sublime Text 3.1.1, Adobe Photoshop, Adobe XD, XAMPP 3.2.2, NetBeans IDE 8.2, Android Studio
  • Technologies/Frameworks: Git, GitHub, ReactJS, Express, Mongoose, Heruko, MongoDB Atlas, NPM, Linux, ROS, Gazebo
  • Concepts: OOPs, RESTful API and MVC

Among Operating Systems I majorly work with Ubuntu (Pop!_OS 20.04 LTS) or Windows 10 and I’m very comfortable with the Git Version Control System and have been actively using it in my projects for the past 3 years.

Relevant Projects

  • Phila Tour Website
    • A personal project to develop a web application for a touring website in order to better grasp module blunder. The main focus of this project was to learn how to automate different components of the application using GulpJS and understand the npm package manager of NodeJS.
    • I had actually implemented this project in order to better understand my GSoC project as it uses the same technology as Webpack and because it’s a small project, I have integrated GulpJS into it.
    • Repo - https://github.com/Sahethi/phila-tours
  • Weather App
    • Developed a weather forecasting application from scratch using jQuery.
    • Used Open Weather Map API to fetch the JSON data and display it on my web application accordingly.
    • Processed user-inputted data which would be the city for which the forecast is requested.
    • Repo - https://gitlab.com/dgsahethi/weather-app
  • Get It Done
    • Collaborative project on an application that allows you to prioritize your tasks and perform basic functionalities like creating and deleting task cards which is also available in dark and light modes.
    • Processed user-inputted information in the local database of the app to dynamically create cards of tasks and set its mentioned priority and sort it accordingly.
    • Repo - https://github.com/Sahethi/Get-it-done/tree/master
  • Yelp Camp
    • Worked on creating a camping website in a Yelp Style format. Here the user is allowed to log in, register and perform CRUD operations by posting reviews/comments, and editing the same. Designed and implemented the project with the help of MongoDB to store reviews, comments, data and user credentials along with the camp information.
    • Repo - https://github.com/Sahethi/yelp-camp

Pull Requests

Issues

Any Other Info

Add any other relevant information such as UI mockups, references to related projects, a link to your proof of concept code, etc

Mockup.png (586×888 px, 75 KB)

Event Timeline

srishakatux added a subscriber: srishakatux.

@dgsahethi Hi! I am Srishti, one of the org admins - it's great to see your interest in applying to Outreachy with Wikimedia! You can safely ignore this message if you have already followed our participants' guide. As you develop your proposal, we want to ensure that you follow the application process steps: https://www.mediawiki.org/wiki/Outreachy/Participants#Application_process_steps, primarily communicate with project mentors, integrate their feedback in your proposal, adhere to the guidelines around proposal submission, contribute to microtasks, etc. Let us know if there are any questions!