==Profile==
**Name** : Siddhartha Sarkar
**Time zone** : UTC +5:30
**Email** : sid.nitdurgapur@gmail.com
**IRC nick** : infobliss
**github** : https://github.com/infobliss
**Location** : India
**Working hours** : 1:00 pm to 9:00 pm UTC +5:30
=Synopsis=
Th project aims to create a tool that uploads images from a GLAM to Wikimedia Commons with the following objectives.
* To minimize the number of steps.
* To make the process of uploading easier for the non-technical users by mapping GLAM's metadata to the Commons metadata.
* To be able to choose a set of relevant images from a GLAM site and upload them thus avoiding uploading unnecessary images and minimizing processing time.
Our Flask app uses OAuth for authenticating the Commons user. In addition we would like to do some metadata mapping for some of the GLAMs. In summary we intend to provide a tool to the users to upload images from a GLAM to Wikimedia Commons most efficiently.
**Mentors**: @Basvb, @zhuyifei1999, @tom29739
=Timeline=
| **Period** | **Task** |
|------------ |-----------|
|May 4 to May 29|**Community bonding period**. Studying existing tools for uploading media to commons. Studying the Commons metadata fields in depth. Planning the design of the tool including both the frontend and the backend. Compiling a list of GLAMs. Adding and structuring the corresponding task in Phabricator. Requesting access to Tool Labs.|
|May 30 to June 5|Designing the basic UI templates for the FLASK app. Study the API of a number of GLAMs to decide what metadata suits the best for writing a generic file title generator module based on the metadata extracted from the GLAM API. Write the relevant code.|
|June 6 to June 18|Design the core elements of the FLASK app including the modules for license checking, metadata mapping and batch upload. Learn how to do the OAuth authentication using Wikimedia Commons login credentials and integrate that into the tool.|
|June 19 to June 21| Contacting with a GLAM to consider the viability of having a "Upload to Wikimedia Commons" button on their image collection site. Design an action plan based on the output of this communication.|
|June 22 to June 26| Testing Round 1: Sanity Testing and documentation. |
|June 26 to June 30|**Phase I evaluation**|
|June 30 to July 5| Work to make the tool have the ability to provide the flexibilty of choosing a number of desired files (may be by providing checkboxes against the image thumbnails) and quickly upload them to Commons (may be by a single click button)|
|July 6 to July 10| Design a template for the metadata mappings and easy way to update/edit them.|
|July 11 to July 16|Take input from all the stakeholders including the GLAMs regarding the UI and work on the UI part extensively.|
|July 16 to July 20|Receive feedback and do changes if necessary.|
|July 21 to July 27|Testing Round 2: Exploratory testing and bug fixes and documentation.|
|July 28|**Phase II evaluation**|
|July 29 to August 7|To give the option to search for images based on a searchstring across the selected GLAMs and upload the desired ones.|
|August 8 to August 15|Write metadata mapping for a number of GLAMs.|
|August 16 to August 20| Testing Round 3: testing the robustness of the app with the new metadata mappings already created and bug fixes.|
|August 21 to August 28|Freeze the code. Create a page in the Wikimedia Commons on the tool where people can suggest new GLAMs and posible changes for metadata mapping. Announce the tool on https://tools.wmflabs.org/.|
|August 29 to September 5 |Mentors submit final student evaluations.|
|September 6|**Final results of Google Summer of Code 2017 announced**|
|--------------|-------------------|
=Deliverables=
- Early and robust design of the tool.
- Creation of the UI templates.
- Writing a generic file title generator module.
- Design the FLASK app backend.
- Providing OAuth authentication with Wikimedia Commons.
**Phase I evaluation**
- Providing search option across selected GLAMs for uploading.
- Improving the app based on feedback.
**Phase II evaluation**
- Designing a template for the metadata mappings.
- Writing metadata mapping for a number of GLAMs.
- Writing easy-to-read documentation and user guide of the tool.
- Write documentation and update guides.
- Hosting the tool to https://tools.wmflabs.org/.
**Final evaluation**
=Participation=
- I will work on a separate branch on git and upload code to the forked repo periodically.
- I will be online on IRC in my working hours ( 1:00 pm to 9:00 pm UTC +5:30) to collaborate with the mentors.
- I will use Phabricator for managing bugs and subtasks.
- I will be available in gmail to be contacted when needed in the non-working hours.
=About me=
Currently I am pursuing MS in Computer Science in the Indian Institute of Technology, Delhi. I am a patient learner and like to work in collaboration. To me dedication to one's work is the primary ingredient of satisfaction. This is my first participation in GSoC.
I have been contributing to Wikipedia as a translator for some time now. I am inspired and thrilled by the vision of wikipedia of making contents available in every natural language. I think contributing to wikimedia will impact the world in a very positive manner. At the same time for me it will push the horizon even farther by letting me collaborate with the excellent wikimedia community members. Most importantly I will be making something that will make the world's largest free encyclopedia, among other wikimedia sites, richer in content and organization.
=Past Experience=
I have experience in working with C++, Java, Python, HTML, CSS, PHP among others. Among databases I mostly worked on mysql, Oracle DB and among VCS I worked with Tortoise SVN.
I maintained and enhanced a video server website in IIT Delhi for streaming recorded lecture videos to the IIT Delhi community.
At IIT Delhi I have made several contributions such as configuring and incorporating a captcha to Moodle, an open source course management system.
Earlier I had also worked for improving the features of a proprietary software as well.
**Microtasks completed**
- T161332: Flask Backend for Single Image Batch Upload
- https://github.com/infobliss/Flask-Backend-for-Single-Image-Batch-Upload