Page MenuHomePhabricator

Proposal for Project "Improve Programs & Events Dashboard UX for Article Scoped Programs"
Closed, DeclinedPublic

Description

Profile Information

Name: Lavish
GitHub: lavish123409
Resume (optional): NA
Location (country or state): India
TimeZone: IST (UTC+5:30)
Typical working hours (include your timezone): [10am to 12pm] And [4pm to 2am]

Synopsis

The Wiki Education Dashboard is a web application that gathers information regarding edits that users have made and the articles which have been edited under a program and create a dashboard for the same. It supports Wikipedia education assignments, edit-a-thons, and other editing initiatives.

Users can use the Programs and Events Dashboard to define the scope of articles they want to track edits to by enabling the 'Article Scoped Program,' which provides a robust set of features, such as assignments, categories, templates, PetScan, and PagePile. These features simplify categorizing and tracking articles based on a single criterion, significantly decreasing the work required to follow related or comparable articles.

However, these features are not very intuitive or discoverable, and the goal of this project is to include these features in the program while it is getting created, along with some new features making them simpler to find and update easily.

Possible Mentor(s): @Ragesoss
Have you contacted your mentors already?

Yes, I am in contact with the mentor through Slack.

Deliverables

I am thinking of adding just a button to make the program an 'Article Scoped Program' in the program creation modal, and if the user clicks on it, then presents him/her all the features which he/she can use to define its scope, in another ‘Defining Scope’ modal.

Mid-Term Evaluation
  • Do necessary user research for the interface/functionality
  • Add the button in the program creation modal
  • Build a UI prototype for the 'Defining scope' modal
  • Make the required APIs and implement the functionalities on the backend
  • Build the blueprint of other features obtained from user research
  • Write tests for all the code written for the above features
Final Evaluations
  • Improve the UI for defining scopes in the Articles tab
  • Implement changing scope settings inside the program page
  • Write tests for all the code written for the above features
  • Document all the code written during this period
Timeline
Community bonding period

To become more acquainted with the entire code base, communicating with my mentor will be the main goal for this period. Also, this time would be completely devoted to user research because this project's main focus is to improve the user experience of the Programs and Events Dashboard, and knowledge regarding the use of different scopes by the user and their functionalities is crucial for the project.

  • How many organizers use article scoping, and what is their preferred method of scoping? (So that we can focus more on those areas)
  • What extra features are needed and desired by the instructors/organizers the most?
  • How many organizers know these functionalities, and how do they use them?
  • Is there any common pattern in the queries written for PetScan and PagePile-based scoping?

The answers to these questions from different organizers would greatly change the UI and workflow for the project with which we have to proceed forward.

May 29 - June 12

The primary focus during this period would be to complete the UI(proposed) blueprint on the frontend part, which would include adding the button to the program creation modal to select the program as an 'Article Scoped Program.' If the organizer selects that option, he/she will be presented with the 'Defining Scope' modal to select from the various functionalities like templates, PetScan, and PagePile method to define the scope of the articles for their program. The 'Defining Scope' modal would most probably include all the scoping methods like assignments, categories, templates, PetScan, and PagePile, which the organiser can select based on his/her requirements.

Although the proposed UI would be changed by a huge margin after the user research, I would try to complete most of the UI and frontend part in this period only.

June 13 - June 20

In this period, I would implement the filtering functionality on the backend and connect the front-end and back-end parts using APIs. The core functionality to implement the features should be completed by the end of this period.

June 21 - June 28

On doing user research, I can get plenty of other features to implement which can boost productivity and enhance the user experience. I am unsure what features I would have to implement, so I am designating this period of time to implement those features. I would try to implement those features on both the front-end and back-end parts and try to complete any unfinished work, if any.

June 29 - July 5

Write unit tests for the features implemented so far and try to correct any errors. Also, I would try to collect user reviews for the same.

July 6 - July 14(mid-term evaluation)

During this period, I would try to collect feedback and improve the condition based on that. I would also try to fix the bugs and address any other issues that might have arisen during this time.

July 15 - July 28

Now coming to the case when the user has not selected the 'Article Scoped Program' option during the program creation or for the programs which are already not selected under that category. I am thinking of making changes in the Home tab on the program page to put an option to change the type of program to 'Article Scoped Program.' On choosing that option, the organizer would be presented with the same 'Defining scope' modal to choose any scoping method. I might have to change all the plans based on the user review I would get during user research, but any changes made in the blueprint would also be implemented in this period.

29 July - August 4

To change the scope settings of the program, I am thinking of including a section in the Articles tab to show the current scope settings and a button to edit those settings. We can use some components from the 'Defining scope' modal to edit the current scope settings and select another setting with its properties. It should include mostly the front-end work, as most of the functionalities would have already been implemented in the back-end, and also the APIs to access those functionalities.

5 August - August 18

During this time period, I would try to write the feature tests for all the functionalities and UI made after the mid-term evaluation. I would also try to fix the bugs and complete any unfinished work made along the way.

19 August - August 25

Document all the code written for this project. I would also try to refine the code based on the mentor's and users' feedback.

26 August - September 4(Final Evaluation)

I would try to fix all the bugs and enhancements I got from the feedback and would also try to finish the report documenting all my GSOC work for the period of approximately 2-3 months.

Participation

I would use Slack as the major communication medium and would also be available through Gmail. To evaluate my code and have discussions about it, I'll use GitHub. I intend to meet with my mentor on a regular basis to talk about my development and get his or her opinion on the work I have already completed.

About Me

Your education (completed or in progress)

I am currently in my final year of pursuing a Bachelor of Technology with the specialization in Computer Science and Engineering from the Indian Institute of Technology, Bhilai. It will be completed by the end of April month.

How did you hear about this program?

I heard about this program from the seniors of my college.

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

I will be joining a full-time role from the 3rd of July, so I have kept most of the hectic work at the start of my timeline, although it should not affect my working hours much. For the rest of my time, I would be having the summer break in which I can work at my full potential. If there would be any issues with the timing, I would just let it know beforehand.

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

Currently, I am only planning to apply for the Google Summer of Code program with the Wikimedia organization.

What does making this project happen mean to you?

I have completed multiple projects in the past to gain knowledge and enhance my skills. But, mostly, I have done projects on a small scale that do not impact the daily lives of users. Through this project, I can get a chance to achieve the previously mentioned things. Moreover, this project will challenge me to think critically, work collaboratively, and continuously learn and improve my skills. It will also require me to understand the needs and preferences of users and develop solutions that meet their needs while remaining scalable and efficient.

Past Experience

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

My open-source journey basically started by contributing to the Wikimedia organization. I have made the following contributions to the organization recently.

ContributionDescription
PR #5292Replaced the javascript confirm() instance with Confirm component, initiateConfirm()
Issue #924After starting working on it, realized that it has already been completed, thereby resulting in the closing of issue
Describe any relevant projects that you've worked on previously and what knowledge you gained from working on them.

I have worked on a number of projects, but the following are the most significant ones that are connected to this project:

Ask-IT

It is the biggest project which I have individually made in order to get acquainted with React. It is a web application aimed at having Question and Answer discussions among users. The questions and answers can be upvoted or downvoted to depict people's interests and trends. I have used Firebase platform for the database and authentication service. I gained a lot of knowledge in React, like routing and state management, which I can use while building this project. I completely used vanilla CSS in this project.

Quizz-App

It is another big web project which I made during the FOSS overflow event at my college. FOSS Overflow is a program by OpenLake and GDSC IIT Bhilai that helps students to get started with the world of open source by helping them build real world open sourced projects under guidance of awesome mentors. It is a time-bounded quizzing platform with real-time leaderboards and a store of past quizzes and results. I made thus project using MERN stack along with Material UI for styling. I learned all the basic web stuff from this project, like authentication using JWT tokens and also tried to deploy it on the web, which I had never done before.

Electronic Health Record

It is a project which I made along with the team of my seniors. It is a platform for Medical Data Collection, Inference, and Verification by doctors (preserves privacy) with the aim to be used in the Health Centre of IIT Bhilai. I was working on its front-end part in React. The most important aspect which I learned through this project is communication. During team meetings, we would discuss our progress, share ideas, and delegate tasks based on each member's strengths and skills, making me a collaborative team player.

VideoChat App

It was the first project which I made to learn React. It is a small web application to have a peer-to-peer call between the users. I learnt about WebSockets, to make a connection between two nodes, first time in this project.

Describe any open source projects you have contributed to as a user and contributor (include links).
  • Activity Tracker: A cross-platform solution to discover how you spend your digital life. 🕵️‍♂️⌛

Event Timeline

Hi @Surge261, as the deadline for GSoC is quickly approaching in less than 48 hours (April 4th, 2023, 18:00 UTC), it's crucial that you submit your proposal on Phabricator and Google's program website in the recommended format as soon as possible. To avoid any potential last-minute rushes or server failures, we highly recommend that you submit your proposal early and keep updating it as needed before the deadline. Once you have submitted your proposal, please move it from the "Proposals in Progress" column to the "Proposals Submitted" column on the Phabricator workboard by simply dragging it. If you have any inquiries, please do not hesitate to ask. Good luck with your application!

How can I submit this proposal on Phabricator? I am not aware of its process and if you can guide me through this then it would be very helpful.
Thanks

@Surge261: Hi, this task is the proposal. Please ask general questions in Zulip instead. Thanks!

@Surge261 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!