Allowing Contributors to Update their own details in Tech Metrics/Report

Work Done / Lessons Learnt

 * Got myself familiarize with the working of Flask
 * Got myself comfortable with the combined working environment of Flask and AngularJS.
 * Working of virtual environment is python
 * Setup a working environment on my desktop for angularJS and Bootstrap from a git based repo ngbp

Minimum Viable product for the project decided

 * The angularJS based interface of web application.
 * Implementation of Flask to empower the application with RESTful behavior.
 * A search tool for our application to search for various identities.
 * Make sortingHat work with our application.
 * Finally integrating Authentication techniques to this project.

Changes to the original plan

 * In a broad sense it will be as our proposal in https://phabricator.wikimedia.org/T60585, though small details tends to change as we go through.

Problem faced

 * Choosing an authentication techniques is very important for this application which previously we settled for openstack-keystone
 * Another problem in future could be understanding working of sortingHat, but we have provided enough time to make sure I understand that before we actually start working with it.

Communication plan with mentor

 * Check in with my mentor everyday on IRC at #metrics-grimoire.
 * In case of urgency email or may be Hangouts would be fine.

Phabricator Ticket
T98045

Week 1: 25th May - 31st May

 * Created a minimal angularJS, bootatrap based interface to list user's information like username, organization, country, date etc.
 * Interfaced the techniques for user to update their information.
 * Github repo can be found here

Phabricator Ticket
T101134

Week 2: 1st Jun - 7th Jun

 * Added sign-in/sign-up page along with contributors account page.
 * Implemented search, to filter the contributors list
 * Github repo can be found here

Week 3: 8th Jun - 14th Jun

 * Setup Flask repo for rest api implementation
 * Created backend support for previously created templates
 * Implemented Ajax calls from angular templates to rest api.
 * Git repo can be found here

Week 4: 15th Jun - 21st Jun

 * Implemented method to list contributors information
 * Added prototypical implementation of sign-in for contributors
 * Added filter methods for list
 * Implemented method to list countries and organization's information

Week 5: 22nd Jun - 26th Jun

 * Implemented edit and delete features for contributors, organization and country list
 * Implemented add feature to country and organization