Page MenuHomePhabricator

Proposal - Usage Stats Page Revamp
Closed, DeclinedPublic

Assigned To
Authored By
Va404
Apr 4 2023, 2:17 PM
Referenced Files
F36939390: word_cloud.png
Apr 4 2023, 3:33 PM
F36939388: articles.png
Apr 4 2023, 3:33 PM
F36939386: camp_prog.png
Apr 4 2023, 3:33 PM
F36939382: yearly_stats.png
Apr 4 2023, 3:33 PM
F36939377: over-the-time.png
Apr 4 2023, 3:33 PM

Description

Profile Information

Name: Vaidehi Atpadkar
Web Profile: https://github.com/vaidehi44
Location: Pune, India
Typical working hours: 2:00 pm IST – 2:00 am IST (UTC + 5:30)

Synopsis

Wiki Education Dashboard is a complex web app for keeping track of contributions to Wikimedia projects. It's widely used by the global Wikimedia community for edit-a-thons, classroom wiki writing assignments, and a variety of other initiatives.

Dashboard currently has a Usage Stats page whose purpose is to provide summary and exploratory information about how the dashboard is being used. It keeps track of the usage trends over the time. It is also used for explaining how important the dashboard is for the Wikimedia community by focusing on how many users use it, events happening yearly across different wikis and languages, etc.

However, the current look and design of this page is not very interesting and it is written in plain Ruby + JS library. Hence, this important component of the dashboard could be redesigned in a more elegant way, by replacing with a more standard React frontend that calls specific endpoints on the server side to get data for each visualization, and the perhaps doing it with VegaJS (which already gets used in React components elsewhere).

Possible Mentor(s)

Sage Ross (@Ragesoss)

Have you contacted your mentors already?

Yes

Deliverables

Mid Term Evaluation
  • Consult with the mentor, Wiki Education staff members for user research.
  • Finalize the new UI designs.
  • Start building the React components, using VegaJS (with dummy data).
Final Evaluation
  • Write APIs on the server-side to compute most active campaigns and articles (do the necessary caching and background work required for performance maintenance).
  • Build frontend APIs to get the actual data from server-side.
  • Integrate the actual analytics data with frontend components.
  • Side-by-Side write tests for each component and feature.

Timeline

April 5 - May 28 (Before internship starts)

  • Keep contributing to the dashboard codebase and working on the issues.
  • Learn about useful data analytics and visualization tools and methods.
  • Discuss with the mentor about the possible additions/updates to the proposal idea.

May 29 - June 15

  • Do some user research with the people concerned with the Usage Stats page.
  • Design the initial wireframes for changes/additions in the UI.
  • Get feedback on the designs, do the required changes and get them approved for the first iteration.

June 16 - July 2

  • Build the new React Redux components on the frontend-side for the Usage Stats page.
  • Integrate the VegaJS library (or similar kind of react library) for executing the visualization part.
  • Check the working of UI UX initially with dummy data and get feedback for the same.

July 3 - July 16

  • Understand the already implemented mechanism to compute most active courses.
  • Design the APIs to compute highly active campaigns and articles.

August 17 - August 23

  • Create APIs on the client-side to call for and get the analytical/visualization data from the backend.

July 24 - August 6

  • Integrate the actual visualization and statistical data with UI components.
  • Check for any inconsistencies or discrepancies.
  • Write all the necessary tests for frontend and backend, for all the functionalities and features.

August 7 - August 28

  • Look for corrections or updates to the existing work.
  • Redesign and rebuild the dashboard homepage by incorporating certain UI components from the Usage Stats page.
  • Think of and implement additional functionalities if required and/or possible to execute (for example I have some ideas related to data visualization which would look cool and attractive; like choropleth maps, word clouds, etc).

August 29 - September 4

  • Complete any pending tasks/issues/PRs, fix bugs, more testing, etc.
  • Get final feedback and do the changes/corrections accordingly.
  • Complete documentation of all that has been done during the course of the project.
  • Deploy the code.

Participation

I stay active on the community's slack channel and emails for project related communications. I also prefer to discuss relevant ideas and code reviews on Github’s comment section. I would take my mentor’s feedback and guidance consistently through these means.

About Me

Education

I am pursuing my B.Tech (Bachelor of Technology) degree from Indian Institute of Technology Mandi, with my major being Engineering Physics. I am currently in the last (8th) semester of my program.

How did you hear about this program?

I got to know about the open source programs like Outreachy, GSoC from my college seniors. Then, after I was quite comfortable with web development, I first participated in the Outreachy program in 2022. As the Wikimedia organization has been an active participant in FOSS, I decided to check out its projects beforehand. I found the Wiki Education Dashboard project really interesting and the community very helpful. Hence, I decided to submit my proposal here.

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

My college ends by the end of May and the internship period starts around the same time. During this time, I don’t have any other commitments. I will have to travel and take up my job in the month of October, but that is much later than the end of the internship period. Hence, I can assure that I will manage to complete all the internship tasks responsibly in the given period.

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 am not applying for Outreachy as I have already completed my outreachy internship last year.

What does making this project happen mean to you?

Working in open source and making valuable contributions has always fascinated me since I got to know about it. I feel that it is a great opportunity to learn and build something which really matters and impacts people’s lives.
Wikimedia is doing a great job by bestowing knowledge to the people across the globe and WikiEducation dashboard is an important medium serving the same purpose. Hence, working on this particular project would mean enhancing the capability to track the dashboard’s usage or contribution in Wikimedia’s mission. It also provides me an opportunity to learn about interesting data analysis and visualization techniques and building the captivating user interfaces. So, I see a lot of satisfaction and learnings in this project :).

Past Experience

WikiEducation Dashboard Contributions

I have been a contributor to the dashboard’s codebase since last year. These are some of my important contributions.

Pull RequestTitle
#5318Check and notify the spikes in pageviews of articles courses
#5075Add service to update namespace stats
#5064Frontend changes for showing tabbed course overview stats
#4913Course approval UI for admins
#4797Make week numbers in milestone and timeline sections same

Here is the list of all the PRs made by me so far.

Internships
  • Full Stack Developer | Outreachy 2022
    • I interned with Wiki Education Dashboard as a part of the Outreachy program last year. During this time, I have worked on both - the React Redux frontend as well as the Rails backend. My primary goal was to add a new functionality which would allow tracking and displaying statistical information specific to wiki namespaces.
  • Frontend Engineer | ODE Holdings Inc.
    • During this internship, I primarily worked on mobile app development using flutter framework. It also involved exploring the API documentations of third party applications for integrating user specific data. I also developed an independent web app for admin specific usage - allowing them to manage the content on mobile app through the AWS database.
Other Projects
  • I worked on our institute's website revamp project. I used my knowledge to code as well as mentor my juniors in this project.
  • During the initial days of my journey, I contributed to an educational startup's codebase. It is a startup run by some of my seniors. It helped me to get familiarized with version control, React and Django frameworks.

UI Wireframes

Following are some designs which I wish to propose.

  1. Introduction of basic UI blocks for generic stats and a charts section which can be used to visualize various trends over the period of time or in yearly fashion.

over-the-time.png (6×9 px, 1 MB)

yearly_stats.png (6×9 px, 1 MB)

  1. Introduction of specific stats sections - campaigns, programs and articles stats.

camp_prog.png (7×9 px, 1 MB)

articles.png (6×9 px, 1 MB)

  1. Creating a word cloud for specific components.

word_cloud.png (12×9 px, 2 MB)

Event Timeline

Va404 added a subscriber: Ragesoss.

@Ragesoss, I have created a task for my proposal. Kindly have a look and let me know your feedback.

Hi! GSoC application deadline has passed. If you have submitted this proposal on the GSoC program website and would like your proposal to be considered for review, please move it from the "Proposals in Progress" to the "Proposals Submitted" column by clicking and dragging it on the workboard:
https://phabricator.wikimedia.org/project/view/6344/. TY!

Gopavasanth subscribed.

@Va404 We are sorry to say that we could not allocate a slot for you this time. Please do not consider the rejection to be an assessment of your proposal. We received over 100 quality applications, and we could only accept 9 applicants. We were not able to give all applicants a slot that would have deserved one, and these were some very tough decisions to make. Please know that you are still a valued member of our community and we by no means want to exclude you. Many applicants who we did not accept in previous rounds have become Wikimedia maintainers, contractors and even GSoC students and mentors this year!

Your ideas and contributions to our projects are still welcome! As a next step, you could consider finishing up any pending pull requests or inform us that someone has to take them over. Here is the recommended place for you to get started as a newcomer: https://www.mediawiki.org/wiki/New_Developers.

If you would still be eligible for GSoC next year, we look forward to your participation!

Gopavasanth changed the task status from Invalid to Declined.May 7 2023, 8:28 AM