User:Maduranga/A system for reviewing funding requests

A system for reviewing funding requests

 * Public URL: https://www.mediawiki.org/wiki/Google_Summer_of_Code_2014#A_system_for_reviewing_funding_requests
 * Announcement: Wikitech Mailing List - http://lists.wikimedia.org/pipermail/wikitech-l/2014-March/075283.html

Name and contact information

 * Name: Maduranga Siriwardena
 * Email: maduranga.siriwardena@gmail.com
 * IRC: maduranga on Freenode
 * Skype: maduranga.siriwardena
 * Blog : http://madurangasblogs.blogspot.com/
 * LinkedIn : http://www.linkedin.com/in/madurangasiriwardena
 * Git Hub : https://github.com/madurangasiriwardena
 * Location: Colombo, Sri Lanka.
 * Typical working hours: WeekDays: 6 pm - 1 am, Weekends: Full Day

Synopsis
Individual Engagement Grants support Wikimedians to complete projects that benefit the Wikimedia movement. Focus of Wikimedia is on experimentation for online impact.They fund individuals or small teams to organize, build, create, research or facilitate something that enhances the work of Wikimedia’s volunteers.

Individual Engagement Grants review process currently uses an ad hoc scoring system involving Google Forms to collect input from reviewers. User story is basically like this. Administrators of the grant review system create new grant campaigns (defining reviewers, review criteria, data to be reviewed, and data grouping). Then the grant reviewers can score and review the grants based on the criteria defined by the administrator. Finally grant providers can view reports on grant applications in a campaign and decide on the applications to fund.

It is not scalable well as we have more proposals to review. This project is to either create or adapt a free and open source review system for funding requests.

Deliverables
The tool created by the project consist of three main components as it is intended for three main users (This may change while gathering the requirements).

(The above mentioned details may vary according to the results of the requirement gathering phase)
 * 1) Component to create new grant campaigns. This component is mainly intended for Administrators of the system.
 * 2) Component to score and review the grants. This component is mainly intended for grant reviewers and may consist of several sub-components.
 * 3) Component to view grant reports and select the suitable grant applications in a campaign and select suitable application to fund.

Implementation Approach
The implementation approach basically has three main phases.

Phase 1
First phase includes refining user requirements. This phase starts with gathering the details of the user stories of the problem. These user stories have to be gathered through the interviews with the members of IEG team. Then these user stories must be studied to refine the requirements of the project.

Phase 2
Second phase is to decide on to whether to use an existing system and modify it to meet the requirements or build a system from the scratch. In this phase existing systems created for same or equal requirements are taken into consideration and studied in order to decide whether they can be used or modified to meet the requirements.

Phase 3
Third and last phase the actual implementation phase. Working procedure of this phase is decided upon the decision taken in the previous phase. If decided to use an existing product and modify it to meet the requirements this phase includes getting familiar with the code base, decide on the changes needed, and then modifying to meet the requirements. If decided otherwise (to create an application from the scratch), this phase will include the finding libraries or frameworks required and implementing.

Timeline

 * Possible mentors: Siko Bouterse, Bryan Davis, Dan Garry

Participation
Communication can be done using IRC as well as the Skype. In addition to that emailing is also preferred as I have 24*7 access to the emails. During the project I prefer Git Hub to maintain the source code. I can get any help from the wikimedia developer mailing list as well as directly from the mentors.

About you
I’m Maduranga Siriwardena, a 3rd year undergraduate of Department of Computer Science and Engineering from University of Moratuwa Sri Lanka.

More Information : Maduranga

Currently I’m going through my internship period ( which is supposed to finish at the beginning of May) at WSO2. Other than software development, I am interested in other engineering activities such as robotics. I am a quick learner and very much interested in learning new technologies. Most of all I am good team worker.

I got to know about the the GSoC program from my senior students. Actually this program is very much popular in our university. I got to know about more details about the project during a session held in our university to mark the 10th anniversary of GSoC which in conducted by Google. I am very much interested about the open source software development and so I hope to contribute to the MediaWiki community and the rest open source community after the completion of the project.

During the period I have to attend the university lectures which are supposed to start from May. But I can work on the project from 6 p.m. to 1 a.m. on weekdays and full day on weekends.

Past experience
Bugs I have worked on (Mediawiki) :
 * 1) Bug - 46453

As WSO2 is a opensource company, I have hands on experience on open source software development including the open source projects like OpenAz (Standard API for XACML policy engines) and Ubuntu juju.

We worked on implementing an adopter for WSO2 balana which is a XACML 3.0 policy decision engine to be plugged in to the OpenAz API. Code base can be found here. This API acts as a standard API for a PDP (Policy Decision Point). Currently we are working on a component to handle the request coming from Entitlement Mediator (A mediator used in WSO2 Enterprise Service Bus to handle security requirements dealing with XACML) to call to the OpenAz PEP (Policy Enforcement Point) API.

And also we have worked on creating a Ubuntu juju charm to automatically install and configure the WSO2 Identity Server.

Apart from those open source projects, I have worked on many other projects in the university including java (one project can be found here), android (one project can be found here, blog posts regarding the project can be found here and here) and php. And I have experience with many technologies other than the above mentioned in the projects including nodeJs (blog post can be found here ), JavaScript (blog post can be found here), xml and web services (blog post can be found here ).

UI Implementation
Here are the wire frames of some sample pages of the project (These may change according to requirements identified in phase 1).