This proposal is still in draft mode.
===Profile Information
**Name**: Neha Jha
**IRC nickname on Freenode**: Neha16
**Email**: nj4710@gmail.com
**Web Profile**: 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)
===Synopsis
- Short summary describing your project and how it will benefit Wikimedia projects
This project is about improving the webservice command used by toolforge to start and stop web services. It involves solving bugs and adding features to the webservice command such as - improving the status output, limit webservice manifest starts, adding memory limit configurations etc.
- Possible Mentor(s)
- Have you contacted your mentors already?
Yes. I have completed a microtask. Link to the microtask -
https://gerrit.wikimedia.org/r/#/c/420238/
===Deliverables
| **Period** | **Task** |
| April 23 | Results Announced |
| April 24 - April 30 | Community bonding period, get familiar with the codebase of webservices, read the documentation, try to start coding by solving easy tasks |
| May 1 - May 13| Understand the tasks that will be fixed during the internship, start fixing small bug/issues |
| May 14 - May 18 | Official coding period starts, Work on T158244, discuss the issue with the mentors and decide the approach |
| May 19 - May 25 | Make webservice command read default cli arguments from ~/.webservicerc T148872 |
| May 26 - June 2 | webservice and webservice-runner have no man pages T95097 |
| June 3 to June 10 | discuss more about this issue - Make webservice backend default to kubernetes T154504 and decide a solution for this problem |
| June 11 | Phase 1 evaluation starts |
| June 11 to June 21 | Make tools-webservice use the official kubernetes python client rather than pykube T159892 |
| June 22 to June 23 | Testing, documentation and report any encountered issues|
| June 23 to July 1 | `webservice restart` does not always wait for service to stop before trying to start again T140415|
| July 2 to July 12 | k8s webservice restart failure with `ValueError: get() more than one object; use filter` T156626, discuss more about this issue, study the patches that have already done for this bug and then try to decide one approach|
| July 13 | Phase 2 evaluation starts |
| July 13 to July 20 | Make it less cumbersome to bootstrap and update python webservices T174769|
| July 21 to July 30 | Run non-interactive commands on labs kubernetes webservices T169695|
| July 31 to August 6 | Possible race condition in webservice HSET/HDEL T122515 |
| August 6 to August 14| Add memory limit configuration for Kubernetes pods T183436, documentation, rigorous testing, report any encountered issues |
===Participation
- I will use phabricator to create or manage issues.
- I will hang out more on #wikimedia-cloud.
- I will communicate with mentors and ask my doubts on IRC, phabricator and emails.
- I will upload my code on Gerrit on a regular basis.
- Code review will be done as comments on Gerrit.
===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, Python and Javascript
- Framework - Nodejs, Expressjs, Django
- Databases - Mysql
- Operating Systems - Linux and Windows
=== How did you hear about this program?
I heard about this program from a friend who was a GSoC intern in 2017.
=== Will you have any other time commitments, such as school work, another job, planned vacation, etc, during the duration of the program?
I have proposed exams from May 26 to June 6, 2018. Apart from that, I am not pursuing anything else. I can commit more than 40 hours a week for the project.
=== 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 applying only to Google Summer of Code because I have already interned in Outreachy 15 with Wikimedia.
=== What does making this project happen mean to you?
My motivation is to work on a tool that will be used by hundreds of people. I would love to see my patches going live. I also hope to improve my python and web service skills from this project.
===Past Experience
I have interned with Wikimedia and worked on two applications -
- [[ https://phabricator.wikimedia.org/project/profile/740/ | Scholarships ]]
- [[ https://phabricator.wikimedia.org/project/profile/815/ | IEG Review Grants ]]
This internship has taught me a lot of things such as working with virtual machines, the importance of clear communication in remote work and the privilege of having mentors. I have learned how Wikimedia functions as an organisation. I have explored a lot of different projects too and met some of the most amazing people here. Even as a volunteer developer, there is a lot to learn here.
Few features/bugs that I have worked on -
- [[ https://phabricator.wikimedia.org/rWWSC418be055da63ffbe0d557824b7745e1851218b37 | Added Mediawiki OAuth for applicants ]]
- [[ https://phabricator.wikimedia.org/rWSLI8cab68bc953fa23afaab913aaf631fc4d9019b0b | Added methods for starting, committing and rolling back transactions ]]
- [[ https://phabricator.wikimedia.org/D894 | Updating iegreview codebase to use wikimedia slimapp library ]]
- [[ https://phabricator.wikimedia.org/D947 | Added banana checker and missing documentation for i18n messages ]]
- [[ https://phabricator.wikimedia.org/D968 | Ping the server periodically to prevent session timeouts ]]
- [[ https://phabricator.wikimedia.org/D937 | OAuth for IEG Grants app ]]
My Gerrit user page: https://gerrit.wikimedia.org/r/#/q/owner:+Nehajha
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 -
- LAMP stack
- Working within a team
- getting used to command line
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 -
- Familiarity with Nodejs and Expressjs
- Working with APIs and npm packages
- importance of documentation and user experience