Page MenuHomePhabricator

Allow contributors to update their own details in tech metrics directly
Closed, InvalidPublic

Description

Name and contact information

'''Name:'''
:
: Sarvesh Gupta
'''Email:'''
:
: sarvesh.onlyme@gmail.com(primary), sarveshgpt1991@yahoo.com
'''IRC or IM networks/handle(s):'''
:
: s1991
'''Location:'''
:
: Roorkee, India
'''Timezone:'''
:
: Kolkata, INDIA, UTC+5:30
'''Typical working hours:'''
:
: 1pm to 2am untill 20th July, 5pm to 2am after 20th July

Synopsis

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.
Possible mentor

Deliverables

The main deliverable will be a working web application for contributors to manage community identity.

Required Deliverables
  • 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.
Optional Deliverables
  • An admin dashboard, so that admin can manage/control contributor's activity.

Schedule

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
Mid-term evaluation
  • 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.
  • This will require use of python, Ajax and javascript.
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
  • Testing
    • Further unit and integration testing
    • Conduct several rounds of testing for real-world users.
  • Documentation
    • Write approach program and functional descriptions
    • Document deployment and testing.
Pencil Down
  • August 17: Soft Pencil down - A weak for final polishing
  • August 21: Firm Pencil down
  • '''Submission to Google'''

Participation

'''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
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.

About you

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 love coding and experienced with python, Django, php, javascript, jQuery, mysql, coffescript, MVC architectures and I always do keep working on some project, here's my [http://github.com/sarvesh-onlyme Github] profile.

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.

Past experience

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.

Links

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.
-->

Event Timeline

Sarvesh.onlyme claimed this task.
Sarvesh.onlyme raised the priority of this task from to Medium.
Sarvesh.onlyme updated the task description. (Show Details)
Sarvesh.onlyme closed this task as Invalid.Mar 25 2015, 8:12 PM
Sarvesh.onlyme set Security to None.
Qgil added a subscriber: Qgil.Mar 26 2015, 8:53 AM

(Why did you delete this task and create another one? Note that the description and other fields are editable.)

Sorry for that, I was not able to figured out how to put this task to the "Proposal Submitted" Column.

Qgil added a comment.Mar 26 2015, 10:43 AM

Next time you can just drag the card corresponding to the task from one column to another.