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