Name and contact information
: Sarvesh Gupta
: firstname.lastname@example.org(primary), email@example.com
'''IRC or IM networks/handle(s):'''
: Roorkee, India
: Kolkata, INDIA, UTC+5:30
'''Typical working hours:'''
: 1pm to 2am untill 20th July, 5pm to 2am after 20th July
This project was thought up for providing a way to contributors to manage their identities, update or make possible for users to change their information by providing a web interface above korma technology. For now contributor of MediaWiki has to go through a process which consumes more time in updating information to database for updating their profile due to unavailability of web interface, so it is a kind of necessary for contributors to have a web interface which facilitates them to have an easy access to their profile. Moreover, sortingHat is required to implement a proper and more precise method for identity matching, so this project also aims to improve as well as implement the sortingHat to interface.
What it means to accomplish?
Extends the functionality of [http://korma.wmflabs.org/browser/ MediaWiki-Dashboard]
'''Step 1:''' Develop an angularJS based UI providing contributors with authentication access to deal with their identities, affiliation.
'''Step 2: '''Presenting information to the users i.e. identities, affiliation or organizations.
'''Step 3:''' Allowing users to update their information, add new identities and so on.
'''Step 4:''' Allow contributors to search for their profile using some sort of identity and to perform actions like sync or merge with their existing multiple identities which will be handled by sortingHat.
'''Step 5:''' Work on [https://github.com/MetricsGrimoire/sortinghat/ SortingHat] so that it fulfill the requirement of our project.
How it will benefit MediaWiki or Wikimedia projects such as [https://www.mediawiki.org/wiki/Community_metrics Mediawiki Community Metrics]?
- It will help improving the information about Contributor's activity in tech Community metrics for example [http://korma.wmflabs.org/browser/top-contributors.html here].
- It make less cumbersome for contributors for submitting and editing their data by providing a web interface.
- It'll provide an search method for identities to further sync contributor's account.
- [https://www.mediawiki.org/wiki/User:AlvaroDelCastillo Alvaro del Castillo]
- [[User:Dicortazar|Daniel Izquierdo]]
The main deliverable will be a working web application for contributors to manage community identity.
- The angularJS technology based web interface of each and every page of the web application required ('''milestone 1''')
- Flask (python based web-framework) based back-end part with implementation of templates(front-end) part to it ('''milestone 2''')
- Optimized search facility with autocomplete feature. User can search and filter the data or information ('''milestone 3''')
- Working and modeling SortingHat so that our project can took full advantage of SortingHat ('''milestone 4''')
- Implementation of Authentication techniques to our project (probably [http://keystone.openstack.org openstack-Keystone]). ('''milestone 5''')
- Testing and Documentation.
- An admin dashboard, so that admin can manage/control contributor's activity.
Envisioning phase (May 5 - May 24)
- Remain in constant touch with my mentor(s) and community.
- Getting myself familiarize with community and development environment.
- Getting myself familiarize with working of Flask.
- Study required docs.
- Fix some bugs along the way and get my hands dirty.
Community bonding period(1 weeks, May 25 - May 31)
- Further discussion with my mentor(s) and my community about the prototype and its implementation.
- Make a Roadmap or workflow for development phase
Front-end part (2 weeks, June 1 - June 14) - <u>Milestone-1</u>
- Design UI, which will be implemented as templates in Flask framework.
- Login page, work on authentication at last.
- Contributor's profile page
- Page to list the identities, affiliation, etc
- Prototypical implementation of search tools
- This will require use of angularJS or may be Ajax
Back-end part (2 weeks, June 15 - June 28) - <u>Milestone-2</u>
- Getting myself familiarize with Flask (already familiar with Django, so won't take too much time)
- Setting up Flask project
- Implement the back-end
- Contributors to view her/his profile
- Updating information and identities.
- List identities, affiliation
- In parallel to above step, syncing angularJS templates to Flask
- This will require use of Flask framework, python, angularJS
- For mid-term, I will be submitting the working model up-till now.
Implement search and filter (1 week, June 29 - July 5) - <u>Milestone-3</u>
- Investigating search options
- Discussing with mentor about search techniques that can be implemented, such as Flask libraries aiding to search techniques such as Woosh or Haytack.
- Understanding the library that needs to be implement.
- Script for search and filter implementation in which contributor can search for his/her other existing identities.
- Syncing it with front-end.
Research Period (1 week, July 6 - July 12)
- Getting my self familiar with working of sortingHat.
- Discuss with mentor(s) with the future work on sortingHat related milestone.
Implementing sortingHat (2 weeks, July 13 - July 26) - <u>Milestone-4</u>
- Improving the sortingHat heuristics, so that it can be implemented to our project.
- (Not so sure about milestone for now, need to figure out in Research Period)
Implementing Authentication Technique (1 week, July 27 - Aug 2) - <u>Milestone-5</u>
- Discuss with mentor about existing techniques for authentication (probably openstack-keyston).
- Getting myself familiar with finalized technique
- Implementing the technique to project.
Deploying phase (2 weeks, Aug 3 - August 16)
- Code Review
- Conduct code review by myself, then mentor(s)
- Inact information gained by code review
- Further unit and integration testing
- Conduct several rounds of testing for real-world users.
- Write approach program and functional descriptions
- Document deployment and testing.
- August 17: Soft Pencil down - A weak for final polishing
- August 21: Firm Pencil down
- '''Submission to Google'''
'''Communication of progress'''
- '''IRC channel''': I'll stay online on IRC at #metrics-grimoire in freenode, in my working hours.
- '''Email''': I will make several check points (within 24 hours) for reading emails and replying as soon as possible.
- '''Mailing list''': [https://lists.libresoft.es/listinfo/metrics-grimoire metrics-grimoire] will be used to communicate progress
- '''Blog''': Though I've need started blogging, I would surely try to maintain a blog throughout the project.
Publishing Source code
- [http://github.com/sarvesh-onlyme Github]
Where I would turn for help?
- '''Solve by myself:''' Read documentation, search online, etc
- '''Seek helps from community:''' Discuss on IRC, mailing list or mentor(s).
- '''Seek helps from outside the community:''' My work has a lot to do with Flask, authentication techniques, so can turn to different communities for help.
'''Amenities:''' I understand, there have been power and internet issues with students from India in past. I've a stable and always-on internet connection and live in a housing society with 24-hours power backup, so that will not be a problem.
I'm Sarvesh Gupta, third year student at [https://en.wikipedia.org/wiki/IIT_Roorkee Indian Institute of Technology - Roorkee] with major Computer Science. I enjoy trying out and learning new things related to web technology.
I want to go for organisation which is mostly used by people. Also I would feel better is my project could work beyond GSoC and used by as many users as possible.
Lastly, I promise to work for at least 40 hr. per week. No other obligations interfere throughout GSoC project.
I’ve worked for Oregon State University Open Source Organization in last summer during GSoC-14, [http://www.google-melange.com/gsoc/project/details/google/gsoc2014/sarveshgpt1991/5766466041282560 here] is the link of abstract of work done to last year’s GSoC.
My github link can be found [http://github.com/sarvesh-onlyme here].
Wikimedia will be my third encounter with Open Source. I've fix some bugs([https://bugzilla.mozilla.org/show_bug.cgi?id=965354 #1], [https://bugzilla.mozilla.org/show_bug.cgi?id=965342 #2], [https://bugzilla.mozilla.org/show_bug.cgi?id=909368 #3]) for Mozilla organization related to Automation and Tools. My commits can be seen [http://hg.mozilla.org/automation/orangefactor/ here] with username 'sarvesh-onlyme'.
For now, I'm planning to contribute for MediaWiki through GSoC.
Do you have any past experience working in open source projects (MediaWiki or otherwise)? If so, tell us about it! If you have already written a feature or bugfix in a Wikimedia technology such as MediaWiki, '''link to it here'''; we will give strong preference to candidates who have done so.
Please add any other relevant information -- UI mockups, references to related projects, a link to your proof of concept code, whatever. There are no specific requirements, but we love to see people who love what they're doing. Show us you're excited about this project and have an interest in the background and are considering how best to make your idea work.