This is a project proposal for T174759: Improvements to Grants review and Wikimania scholarships web apps. Feedback is welcome
Profile Information
Name: Neha Jha
IRC nickname on Freenode: neha
Email: nj4710@gmail.com
Github: https://github.com/nj4710
User Page: https://phabricator.wikimedia.org/p/Nehajha/
Location (country or state): India (New Delhi)
Typical working hours (include your timezone): 3 PM to 5 AM (UTC+ 5:30)
Mentors @bd808 @Niharika
Synopsis
The aim of this project is to make the process of reviewing of scholarship application easier.
Iegreview is a web application that is used to accept and review grant requests. Scholarship is a similar application used to accept scholarship requests for Wikimania. Both applications are PHP (slim) based. The codebases for these apps are outdated. This proposal aims to complete the following:
- Update codebase and required libraries
- Improve backend of application
- Reduce the complexity of existing solutions
- Migration of codebase
- Integrate required APIs such as OAuth, Banana checker etc.
Mentor interaction
I have contacted the mentors and also completed a microtask.
- https://gerrit.wikimedia.org/r/#/c/381638/
- https://phabricator.wikimedia.org/D790 (in review )
- https://phabricator.wikimedia.org/D823 ( in review)
- https://gerrit.wikimedia.org/r/#/c/384662/ ( in review)
Links to microtasks -
- T122903: Make determining the number of valid applications received easier
- T116259: Pagination is not working on Aggregated reports page
- T116260: Total proposals received on Report by reviewer page should exclude abandoned proposals
- T121927: Use banana-checker for wikimedia/wikimania-scholarships
Deliverables
Period | Task |
November 9 | Results announced |
November 10 to November 30 | Community Bonding, Understanding issues/tasks, Study more about slim framework, reading documentation and coding guidelines, getting familiar with the project's codebase |
December 1 to December 3 | Upgrade all the required libraries to their latest stable version, remove the unused ones for scholarship as well as iegreview |
December 4 to December 17 | Work on integration of grantreview codebase with Wikimedia slimapp library T114969 |
December 18 to December 20 | Testing of all the work that has been done so far, report issues if any |
December 21 | For iegreview, Add a confirmation box on removal of reviewers T108597, Testing |
December 22 to January 5 | Read and understand OAuth, Integration with OAuth for both the apps using Mediawiki's Extension for OAuth T119534 T74292 |
January 6 to January 14 | Partial changes can leave the database in an inconsistent state, Figuring out which transactions can be grouped together, optimise the queries if required, Group related database transactions so that changes are not partial T91253 |
January 15 to January 21 | Handle framework exceptions in Wikimania Scholarship app T60070 |
January 22 to January 24 | Integrate banana checker with scholarship app, find areas of improvement in scholarships, solve related issues T121927 |
January 25 to January 26 | Migrate Scholarship app to diffusion T132173 |
January 27 to February 31 | Work on form validation for both the apps, perform integration testing, report all the bugs encountered so far |
February 1 to February 5 | Investigate a little about wiki communities, work on automatically updated list of wiki communities in Scholarship app T155674 |
February 6 to February 13 | Convert scholarship app to log directly to Logstash T86967 |
February 14 to February 23 | CSRF warnings in scholarship app when users take a long time to fill out application T63269 |
February 24 to March 5 | Bug fixes, Documentation, and Testing of all the work that has been done so far |
For iegreview following are the deliverables -
- Upgrade versions of slimapp and other libraries
- Updated codebase to use wikimedia/slimapp library T114969
- Confirmation box on removal of reviewers T108597
- Integration with OAuth T74292
- Grouping related DB transactions T91253
For scholarships, I plan to deliver the following -
- Migration to Differential T132173
- Integration with OAuth T119534
- Automatically updated list of wiki communities T155674
- Integrate banana checker T121927
- Handle framework exceptions T60070
- CSRF Warnings T63269
- Convert scholarship app to log directly on Logstash T86967
Stretch Goals
If we achieve the mentioned goals before time, I would like to take up the following -
- Prevent server-side session clean up if the user takes longer to fill the form T87088
- Convert Ieggrant review to log directly to logstash T86968
- Setup project with translatewiki.net T74291
Participation
- I will use Phabricator for creation/managing of issues.
- I will work on a separate branch of git and upload the code on Gerrit and Diffusion on a regular basis.
- I will be online on IRC during my working hours (3 PM to 5 AM UTC +5:30). Apart from that, I can also be contacted through email.
- Code review will be done as comments on Gerrit and Diffusion.
- I also plan to publish a blog for weekly updates.
- I will communicate with mentors on IRC twice a week.
- I will use test instances of both the apps for sharing my work.
About Me
I pursuing Bachelor of Technology in Computer Science. I am familiar with Version Control System. I have worked with the following:
- Languages - C++, PHP, and Javascript
- Framework - Nodejs, Expressjs, Bootstrap
- Databases - Mysql
- Operating Systems - Linux and Windows
How did you hear about this program?
I came across this article about Outreachy on medium. I was glad to hear that there are people who care about the underrepresented in tech and are taking measures to improve the current scenario.
Will you have any other time commitments, such as school work, another job, planned vacation, etc, during the duration of the program?
As for time commitment, I can commit more than 40 hours a week for the project since I have winter vacations and also I will be taking half the number of credits a typical student takes in our college.
What does making this project happen mean to you?
This project is important to me since it gives me a plethora of learning opportunities like working on a real-world application which is used by hundreds of people, hacking a huge code-base, collaborating with a team. As a student, I have encountered many situations in which I want to attend a conference but can't afford it. Wikimania Scholarship app and Grants review solve this problem for people like me.
Past Experience
I have been a Linux user for 3 years now. I have contributed to the webcompat repo of Mozilla to get familiar with VCS. Here are some of my pull requests -
- https://github.com/webcompat/webcompat.com/pull/1431
- https://github.com/webcompat/webcompat.com/pull/1426
- https://github.com/webcompat/webcompat.com/pull/1417
- https://github.com/webcompat/webcompat.com/pull/1500
In my second year of engineering, I interned with a company in which I learned basic web application development using LAMP stack. I helped in developing an internal tool for the company that improves the process of employee management. It included features like project assignment of every employee, application of leaves, approval, and rejection of leave applications, circulating important notices, performance evaluation etc. During the course of my internship, I learned the following things -
- git and GitHub
- different techniques of requirement gathering of any software
- work actively with a team
- get used to Linux and command line and eventually fell in love with it
- Databases(SQL) along with basic web development using PHP
In my third year, I interned with Tata Consultancy Services. During this internship, I and my teammate developed a web application that helps users to get RSS feeds, display the feed in a user-friendly manner and share it on social media. The backend was built on Nodejs and Expressjs. I have learned the following things -
- getting familiar with Nodejs and Expressjs
- working with npm
- reading and understanding documentation of various libraries and frameworks such as Sequelize, node-feedparser etc
I was a part of Association of Computing Machinery Student Chapter in my college. I have organized coding workshops for people belonging to different age groups with the help of my society.
I am also a code maintainer in AlgoDs repository.