User:Kushal124/A system for reviewing funding requests GSOC

A system for reviewing funding requests
Project Idea
 * Public URL: https://www.mediawiki.org/wiki/User:Kushal124/A_system_for_reviewing_funding_requests_GSOC

https://meta.wikimedia.org/wiki/Grants:IdeaLab/Application_scoring_system
 * Announcement: http://lists.wikimedia.org/pipermail/wikitech-l/2014-March/075396.html

Name and contact information

 * Name: Kushal Khandelwal
 * Email: kushal124@gmail.com
 * IRC or IM networks/handle(s): kushalk124, kushal124 , kushalkhandelwal
 * Web Page / Blog / Microblog / Portfolio: http://kushalkhandelwal.com, http://kushal124.wordpress.com
 * Twitter:@kushal124
 * Facebook:https://facebook.com/kushalkhandelwal
 * GTalk	:kushal124
 * Github	:https://www.github.com/kushal124
 * Skype	:kushalkhandelwal
 * Resume : https://www.mediawiki.org/wiki/File:Kushal_Khandelwal_Resume.pdf
 * Location: Goa, India GMT +5:30
 * Typical working hours: 9AM -12, 2PM-5PM , 8-10PM , 11PM-2AM ( All in GMT +5:30 )

Synopsis
Individual Engagement Grants support Wikimedians to complete projects that benefit the Wikimedia movement. This project aims at making the review process for Grant Campaigns a bliss for administrators.

Probelm trying to solve ?
Individual Engagement Grants review process currently uses an ad hoc scoring system involving Google Forms to collect input from reviewers. It is unwieldy and won't scale well as we have more proposals to review. This system is not very efficient and user friendly.

Findings from initial investigations into alternative solutions:
 * The movement has demonstrated a need for scoring tools - many other programs across the Wikimedia movement are also using Google Forms to score applications for things like scholarships.
 * Outside of our movement, other grant programs that use group review processes on large numbers of applications often do so in-person - applications are physically scored and marked.
 * Wikimania scholarships rely on a scoring system that is hosted by WMF. This system appears to have functionality that could meet needs for IEG and other programs where scoring is needed, but the current application is not flexible enough to be extended for uses beyond Wikimania scholarships. A new application could be built off of this existing code base, if necessary.

Benefit to Mediawiki
This project would solve a major issue faced when reviewing application for Grants. It would establish an unified Application Review system which can be used by other wikimedia programs.

Goals for Project

 * Develop a standalone application for IEG Grant campaign management. This application should have modules for Campaign Creation, Proposal Review , Campaign Statistics.
 * Extend this application to adapt to needs of other programs like Travel Grants, Project Grants etc.
 * Create a Reviewer Dashboard

Possible mentors
Siko Bouterse (Grantmaking), Bryan Davis (Platform Engineering), Dan Garry (Product/Platform Engineering)

Deliverables
Please describe the details and the timeline of the work you plan to accomplish on the project you are most interested in (discuss these first with the mentor of the project):

User Roles
To understand this problem we need to first look at the users and their roles. ( Initial data from )

If in the application we do not want to provide interface for Call for Application ( Grant Application ) then for the reviewer we can list all the pending applications from Idea lab on their dashboard for review.

Dashboards

 * 1) First dashboard will show the Active and past grant campaigns. This page would have links to campaign page, propsals.
 * 2) Second dashboard would be an Administrator dashboard where is the administrator can manage entire campaign variables ( set reviewers, decide review criteria , mark applications as spam , Set total grant budget etc)
 * 3) Third dashboard : Reviewer dashboard. On this page the reviewer can see proposal pending for review. Each proposal would be presented with criteria for review. The reviewer can score the applications on the given criteria and can leave feedback. Also the reviewer can mark applications as ineligible or as spam.

Modules
Module 1 - Administration Module

*Create a new campaign. * Set Campaign Review criteria. * Set campaign details like Name, Start and End Date * Add/Delete users * Add Reviewers

Module 2 - Reviewer Module * Score application based on review criteria. * Leave feedback note * Mark application as eligible/ineligible * Mark application as spam * View applicant details * View proposal details

Module 3 - Reportting * Aggregate reviewer feedback and scores. * Show final rating for each proposal in a campaign * Campaign allotted budget. * Gather Stats about users.

Milestones
Here we list the major milestones to track the progress of the project. Need to define final milestones before start of project.

During GSOC Period
An estimated timeline for the project

Participation

 * Working on open source software and collaborating is always challenging. So to adjust with time zone differences I generally tend to work in 3 shifts ( 9AM -12, 2-7 , 10PM-2AM all GMT +5:30 ). I love to always work on new methods and try to approach problems in all possible ways. I am very well acquainted with open source collaborations and working in teams.


 * For this project I would request for a git Repository on mediawiki servers. This would enable wider community participation and visibility of project. Also code reviews would be very easy. Once we have a working git repo and a project with mediawiki, I can have all features required as bugs in bugzilla. All the listed bugs/enhancements can be tabulated as project milestones. This would ensure timely development and easy management of the project. I would also open a tracking bug on bugzilla.

If the above is not possible, I would host all my code on Github.


 * I would also be writing a weekly blog post describing my progress on projects and defining tasks for upcoming weeks. Also in the blogpost I would like to share my experience working on this project, discussing potential pitfalls and the development cycle.


 * Also for the community to keep track of the progress, I would be maintaining a WIP(Work In Progress) table in a wiki like the one is milestones which would indicate current milestone and track the status of the project.


 * For communication with mentors I would mostly prefer discussing the project on Wikitech Mailing lists and project talk page. However, I would love to keep most of the discussions on the mailing list as it would give the project exposure to a wider audience and wider feedback.


 * To make sure that we are able to complete this project on time I would prefer to work with weekly deadlines and at least biweekly reviews. Weekends can be used for code sprints to catch on any pending weekly targets. I think this would ensure timely completion.


 * If stuck at some point I would first refer to available resource ( Stackoverflow, Google, Documentation ) and then take help from mentors and community.

Input From Mentors

 * Help in prioritizing work.
 * Overlooking the entire project progress
 * Providing feedback and discussing features

About Me

 * Education completed or in progress: In Progress. Currently in 4th year of undergraduate degree at BITS Pilani Goa campus.

Google open source blog.
 * How did you hear about this program?

No commitments during the project timeline. Next semester of college would start from 11th August 2014.
 * Will you have any other time commitments, such as school work, another job, planned vacation, etc., during the duration of the program?


 * We advise all candidates eligible to Google Summer of Code and FOSS Outreach Program for Women to apply for both programs. Are you planning to apply to both programs and, if so, with what organization(s)?

Applying only for GSOC.


 * Hi, My name is Kushal Khandelwal. I am currently pursuing B.E in Electronics and Instrumentation with Msc.(Hons) Chemistry under the dual degree scheme of BITS Pilani KK Birla Goa Campus. This is my 4th year of the 5 year course in college.


 * I am very much interested in employing machine learning techniques in various fields like Computational Medicine, Business Analytics and others. Also I am quite interested in Image Processing applications and recently have been working on Image Processing and Machine learning.


 * I am currently studying Electronics and Instrumentation at my university. Over the course of time I have developed interest in fields of Machine Learning ,Image processing and Web Development. I love teaching my juniors. I sometimes organize lectures on image processing and machine learning for juniors. Also I plan to write content for Wikibooks on these topics.


 * I am an open source enthusiast. I am currently a contributor to Fedora Project. 2 years back I completely switched to linux. On my current machine I am running Fedora 20. For all my development and college purposes I try to use open source applications. In my free time you can find me idling on some open source communities IRC channels or learning some courses in Coursera and Udacity.


 * I am an open source enthusiast who loves to share his knowledge. Wikimedia foundation has made sharing of knowledge easy and accessible to all. This is what makes me love wikipedia more. I think everyone has a right to education and open access to world information and this is what Wikimedia foundation is doing.


 * I recently got introduced to Individual Engagement Grants program at Wikimedia. After learning more about this program I felt the urge to propose a project on Machine Translation using wikipedia. Although it is too late for me to apply I would still give it a try. Making the review process easy and comfortable for such grants would help Wikimedia Foundation Employees and reviewers an easy task. This should help the give more time on assessing all crucial aspects of the project with ease and have a solid scoring system. I think this project would be very beneficial and thus I would like to contribute to this project

Technical Skills
Web Development Skills : HTML, CSS, PHP, Javascript,MySql, MongoDB, Jquery, Django Framework

Languages Known :	Python, Ruby, C

Others: System admin tasks, Hadoop, MPI

Interests

 * Web App Development
 * Data Mining, Analysis and Visualization
 * Machine Learning, Natural Language Processing
 * Image Processing
 * Computational Chemistry
 * Applications of ML in biology.

Past Project

 * Design and Development of Rajasthan Government’s Web Portal ( Mock website during my internship
 * Design Mockups in Photoshop, HTML and CSS frontend. Backend PHP and Mysql.


 * Applications of Machine learning in Computational biology to find protein binding sites.
 * Project developed using Python and scikit-learn library.


 * Design and Deployment of LDAP based user authentication model for all Student Hostels at BITS Pilani, Goa.


 * Image Processing based OMR and Text scanner
 * Python and scikit-image

Development Environment

 * Running Fedora 20 on a Lenovo Machine
 * Text Editors used : vim, Sublime Text 2

Past experience
I have used various FOSS Projects like scikit-image, scikit-learn, Fedora. Currently I am learning to package for Fedora. Attending weekly meeting at Fedora has given me a good experience on collaborating on open source projects.
 * Please describe your experience with any other FOSS projects as a user and as a contributor:

Also I have been a contributor to a project called Phenotips. Working on this project has taught me how to file bugs and write patches.

Phenotips. I have solved a few bugs for Phenotips project. Link : https://github.com/phenotips/phenotips/commits?author=kushal124
 * Please describe any relevant projects that you have worked on previously and what knowledge you gained from working on them (include links):


 * What project(s) are you interested in (these can be in the same or different organizations)?

Bug Fixes Bug: 62464 Bug: 62963 Bug: 61665

Optional Modules
These modules may be built in the application at a later time to extend its utility.

Module - Applicant Module (Optional)
 * Apply for Grant
 * Check Status of Grant Application
 * Provide with Idea proposal
 * Edit previously submitted application