Page MenuHomePhabricator

GSOC 22 — Proposal for the "Edit Request Wizard" project
Closed, DeclinedPublic

Description

Profile Information

Name: Anirudh Mishra
IRC nickname on libera.chat IRC: anirudhgray
Github: https://github.com/anirudhgray
Wikipedia User Page: https://en.wikipedia.org/wiki/User:Kaladinesque
Personal Page: https://anirudhmishra.netlify.app/
Location: New Delhi, India
Time Zone: IST (UTC+05:30)
Typical working hours: UTC 04:30 to 08:30 and UTC 16:30 to 20:30. Might be occupied between UTC 02:30 and 14:00 on some days because of college.

Synopsis

  • This project aims to create a step by step, easy-to-use form/wizard for submitting edit requests, since the current process is somewhat convoluted and inaccessible for beginners wishing to contribute properly formatted and constructed edits to articles.
  • Possible Mentors: @Enterprisey, @Firefly, @SD0001
  • Have you contacted your mentors already? Yes.

Timeline

PeriodTask
May 20 - June 12Community Bonding Period
June 13 - June 28Designing the UI and flow of the form, and deciding the essential components and logic.
June 28 - July 8Implement the static UI on the frontend.
July 8 - July 20Add basic client side functionality like simple input validation for quotes, grammar/format checking etc
July 20 - July 25Testing out the frontend and fixing bugs
July 25Phase 1 Evaluation
July 25 - August 5Implement the Python backend for source input validation
August 5 - August 20Work on hooking up the frontend to the backend and write documentation.
August 20 - Sept 5Deal with user errors and returning feedback, fix bugs.
Sept 5 - Sept 12Final Week
Sept 12 - Sept 19Final Evaluation

Deliverables

  • Designing an intuitive UI for the Edit Request Wizard, conforming to Wikipedia's current design language — or deviating from it, and going for something fresh, like the the User Scripts Tutorial.
  • Implementing the UI on the frontend, keeping in mind the different essential components:
    • Source Input (with a multiple source option)
    • Quotation Input
    • "Type of Edit" Input
    • An easy interface to integrate accepted changes into the article.
  • Phase 1 Evaluation
  • Implement the backend for source URL/ISBN/other validation:
    • Give feedback in case of invalid or untrustworthy sources like search page results or social media.
    • Perhaps return a small preview of the URL being referenced, to show to the editor.
    • If inputting an ISBN code, check for a book matching it and return it to the editor if one exists.
  • Add further functionality to the frontend:
    • A formatting checker for the request text.
    • A basic grammar check for the above.
    • Quotation validity check.
  • Work on setting parameters for valid behaviour with respect to the above checks, and providing relevant and easy to understand feedback to the editor making the request.
  • Write docs for this project.
  • Final Evaluation
  • Expected final result: a PR adding a full edit request wizard with all necessary forms, field and validation along with some minor changes outside of the wizard.

Participation

  • I will push all my work to a GitHub repository accessible to the mentors at least daily, with commit messages explaining exactly what I have worked on and why.
  • Apart from the above, I will also publish status updates on the Phabricator Task/My User Page as and when required.
  • I would also be writing blogposts about this project and my progress on Medium, and will communicate the links to the same.
  • I can be contacted at any time via Wikimedia's Zulip server.

About Me

Hi! I'm an 18-year-old Computer Science and Engineering undergrad studying at Vellore Institute of Technology, Vellore, India (I'm a freshman!). I'm something of a web developer myself, and like to read high fantasy and play Minecraft in my free time. I'm a first time applicant to GSOC, and feel that my skillset — frontend dev with JS, Vue and React, and backend experience with Python (Django and FastAPI) — make me a good fit for this project.

I will have some other time commitment relating to college exams and such:

  • I will have end-semester exams starting on June 13th (they last roughly a week or so).
  • However, I will then have a summer break of about a month, and will be able to put in more hours (up to 40/week) before the phase 1 evaluation and catch up during that time.
  • In the second phase, there will be a period of about a week in which I will be less active because of mid semester exams.

Wikipedia is known for its democratisation of knowledge — and that includes not only access to read and understand the information, but also to add to it. Edit Requests are a vital part of this process, and the process to create them needs to be made more accessible to the average user browsing Wikipedia and wishing to contribute. This project will enable that to happen.

Past Experience

  • I have created a Pastebin Client Web App, available at https://anibin.netlify.app/ (source code at https://github.com/anirudhgray/anibin). It allows users to create shareable pastes of rich text or code snippets, and also create quick multi-option polls. This was created using ReactJS and Express, and is fully responsive.
  • I have created a frontend for querying NASA and other space-related APIs, and storing them on your profile page. I implemented token-based authentication in this project, built using Django and Vue.js. The live site is hosted at http://spacequery.netlify.app/, and the source code is available at https://github.com/anirudhgray/spaceQuery.
  • I have recently started working with Blender 3D Graphics, and implementing them on the web using Three.js.
  • I also have some experience in working with Machine Learning libraries like scikit-learn. When it comes to databases I have worked with PostgreSQL and MongoDB.
  • I have participated in, and won, Hackathons as a web developer.
  • I have some minor amount of experience with working on Open Source Projects, and contributing to public GitHub repos since I participated in Hacktoberfest 2021.

Microtasks

  • Microtask 1: I have written about my thoughts on the existing edit request process and mechanisms in this link
  • Microtask 2: I have designed a basic form field for submitting sources for edit requests, in URL and ISBN format. This was built using HTML, vanilla CSS and vanilla JS. I do have experience with UI and CSS libraries, and JS Frameworks, however I felt they were not needed in this case. Further, I have linked the URL submission to my backend API created for Microtask 4 (see below). I.e, you will get some actual rudimentary feedback with respect to URL validation. Finally, I added a light/dark theme toggle because I felt like it. This Microtask is hosted at https://wikimedia-source-field.netlify.app/ and the source code is available at https://github.com/anirudhgray/wikimedia-microtasks-2

microtask2.png (756×1 px, 227 KB)

  • Microtask 4: I have implemented a backend API for source url validation using Python and FastAPI. It is hosted at https://wikimedia-url-validation.herokuapp.com/. Source code and example usage is available at https://github.com/anirudhgray/wikimedia-microtask-4. Note that you need to query the API from the Microtask 2 frontend, or from a desktop API client like Postman. This currently checks if the URL is a search engine's result page (Google, DuckDuckGo and Bing), if it is a link to another Wikipedia article, or if the domain name is in a "Blocked List", and returns an appropriate JSON response.

Related Objects

Event Timeline

Hi! I am Srishti, one of the org admins - it's great to see your interest in applying to GSoC 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/Google_Summer_of_Code/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!

And, if you are applying to Outreachy too, remember to follow the guidelines here https://www.mediawiki.org/wiki/Outreachy/Participants.

As the GSoC deadline is soon approaching in less than 24 hours (April 19, 2022, 18:00 UTC), please ensure that the information in your proposal on Phabricator is complete and you have already submitted it on the Google's program website in the recommended format. When you have done so, please move your proposal here on the Phabricator workboard https://phabricator.wikimedia.org/project/board/5716/ from "Proposals in Progress" to the "Proposals Submitted' column by simply dragging it. Let us know if you have any questions.

Gopavasanth subscribed.

@Kaladinesque 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 75 quality applications, and we could only accept 10 students. 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 students who we did not accept in 2021 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