Page MenuHomePhabricator

GSOC'17 Proposal for Single Image Batch Upload
Closed, DuplicatePublic


Name : Kamakshi Suri
Time zone : Kolkata,INDIA, UTC+5:30
Email :
IRC username : kamsuri
Location : Delhi, India
Working hours : 07:00pm to 01:00am(workdays) and 12:00pm to 10:00pm(weekends ) [Indian Standard Time]

The main objective of this project is to ease out the workflow required to upload images released by GLAMs to Wikimedia: Commons. It also aims at overcoming the problem of batch upload due to which multiple irrelevent images gets uploaded, as user does not intend to do manual uploading of each image. This project aims at building a platform from where users can upload a single or a small set of images at the same time to Wikimedia: Commons through a well structured process and in minimum possible time. This project will also deliver a robust set of APIs to support integration on GLAM’s end.

Mentor: Basvb
Co-mentor(s) : Tom29739, zhuyifei1999


  • Designing a precise frontend and backend design.
  • Set up front end for the platform
  • Coding upload script
  • Setting up a structure on wikimedia: commons
  • Designing of metadata-mappings
  • Working on date parsing, feedback, file title generator and a few more functionalities.
  • Connecting with communities.
  • Writing user documentation
  • Deployment of framework on Toollabs


May 4, 2017 – May 30, 2017

This pahse will include community bonding along with investigation and finalizing tool design.

  • Study the requirements of the project to more depth to have a more clear scenario and discuss them with mentors.
  • Study already existing tools for uploading images to Wikimedia: Commons which will allow to compare different techniques and methods to achieve same goal.
  • Getting Toollabs access and trying it a bit to understand its working properly which will help in deployment.
  • Learning more about metadata fields and various techniques to fetch them.
  • More Investigation on the needs of GLAMs to design our tool accordingly.
  • Preparing Phabricator tasks and categorizing the project into multiple phases.
  • Design proper workflow along with finalizing precise design for frontend and backend.

Minimum Viable Product(MVP)
The minimum viable project aims at completing the following tasks before the end of June. The following are the tasks:-

  • Designing simple UI of the platform.
  • Tool to generate template for upload file using metadata mapping of selected GLAM.
  • Coding an upload script in a proper working condition.

Week 1 (June 1 – June 7)
In the initial week, i will be focusing on the working of the following functionalities:-

  • Setup a quick and simple UI
  • Identify selected GLAM from the hash table
  • Call to GLAM’s API and getting API key

Week 2 (June 8 - June 14)
This week will include dealing with following aspects:-

  • Selection of image(s)
  • Dealing with Licenses
  • Writing user documentation and testing the code designed.

Week 3 (June 15 – June 21)
This week will focus on the following:-

  • Getting URL of image
  • Download image and check if it already exists
  • Collecting tags and generating filename for the image.
  • Build final template to upload from metadata mappings

Week 4(June 22 -June 28) - Week 5(June 29 -July 4)
This would be the final phase of coding upload script.

  • Upload file using Oauth permissions.
  • Testing and documenting of upload script.
  • Deployment of MVP on Toollabs
  • Writing user documentation and testing the MVP.

By the end of June, Minimum Viable Product is completed and is tested.

Week 6(July 5 -July 11) - Week 7(July 12 -July 18)
From July onwards i will start working on Core extensions

  • Setting up a structure on wikimedia: commons, creating some categories and sending proposals to a few communities.
  • Designing a few mappings along with default functionalities
  • Testing those mappings with our upload script

Week 8(July 19 -July 25)

  • Connecting with communities who seems interested.
  • Working on feedback to add something more to default functionalities.

Week 9(July 26 -Aug 1) - Week 10(Aug 2- Aug 8)

  • Designing a few more mappings along with default functionalities.
  • Testing those mappings with our upload script.
  • Working on improving the front end.

Week 11(Aug 9 -Aug 15)

  • Completing user documentation.

Week 12(Aug 16 -Aug 22) - Week 13(Aug 23- Aug 30)

  • This phase will involve rigorous testing and making the required changes. And fix subsequent bugs encountered.
  • At the end of the internship program the Final report is submitted for evaluation.
Tasks to be completedTimeline
Community Bonding Period, get better understanding of the project, exploring existing tools, get familiarized with Toollabs and get its access , prepare workflow and precise design layout for frontend and backend.04/05/17-30/05/17
Setting up a simple UI along with Coding upload script in a proper workable condition01/06/17-28/06/17
Testing MVP and deployment of MVP on Toollabs (Phase 1 evaluation)28/06/17-04/07/17
Setting up structure on Commons, Designing metadata mappings along with default functionalities.05/07/17-18/07/17
Connecting with communities and working on feedback19/07/17-25/07/17
Designing a few more mappings and improve the front end. (Phase 2 evaluation)31/07/17-08/08/17
Completing user documentation09/08/17-15/08/17
Testing and updating Deployment16/08/17-22/08/17
Final Report Submission (Final evaluation)23/08/17-30/08/17

As MediaWiki uses Phabricator which is a set of powerful tools used for managing bugs and tasks, I also intend to use it for tracking bugs, features. It is also helpful for getting feedback from people who are a part of the organisation.All bugs and features will have tasks linking to the project, which will allow easy tracking and monitoring.
The code base will also use Git for reviewing and managing workflow.I'm comfortable with using Git for project development and management.
I can be contacted on email or IRC, also I intend on using my new blog for sharing my experience while working on the project.I will try to weekly update my blog by writing new posts.
I believe IRC and Mailing lists are great place to seek help.It would also be great to get in touch directly with my mentors via email if possible.

About Me

  • I'm 19 year old Junior student from Netaji Subhas Institute Of Technology pursuing Bachelor of Engineering in Computer Sciences.
  • I enjoy working on open source technologies and love to contribute.
  • I like to work with new technologies and explore new areas. I have a good experience of working in teams.
  • It is always a learning experience to understand practical development at large scale. I also enjoy working on competitive programming problems and learning algorithms.


  1. Micro-Task : T161328, Upload on commons
  2. Works as Director Of Web Operations at CSI NSIT.
  3. Worked as Front end designer at
  4. Academic Courses : Object oriented programming, Algorithm Design, Operating systems, Web technologies

Online-Treasure-Hunt is a web app for online treasure hunt.
Worked on developing Webserver and dashboard for a disasater management android app called Survive.
Face-Recognition Tool is a simple python script which detects faces in an image.
Hospital-Hacks is an interface made to reduce the gap between hospitals and the patients.

-Programming Languages : C++, PHP, Javascript, HTML, Python, CSS
-Frameworks and Libraries: jQuery, Bootstrap
-Operating Systems: Linux, Windows
-Tools: Git, Adobe Photoshop
-Database : MySql

Event Timeline

Kamsuri5 created this task.Mar 30 2017, 7:29 AM
Kamsuri5 updated the task description. (Show Details)Mar 30 2017, 7:35 AM

@Basvb kindly review this proposal as well which is for GSOC'17. I have proposed this keeping all my mistakes in the outreachy proposal. Hope to have your feedback on this. I have included the link to my commons but they have deleted my all the earlier images under Copyrights Act and warned me. I will study their terms and conditions and then will try to upload more.

Basvb added a comment.Mar 30 2017, 9:27 AM

Hi Kamsuri,

Good to see the updates to the proposal.

  1. You wrote: "This project aims at building a platform from where GLAMs can upload a single or a small set of images at the same time to Wikimedia", however the tool is ment for individual users to upload images from the GLAM, everybody with an account on Commons can use it.
  2. Minor: at deliverables you state what you will do, but deliverables are more concrete results so "Writing user documentation" should be changed to "User documentation" as an example (a bit more information on what it entails is welcome), this holds for all of the points under deliverables.
  3. I will look at the images a bit later. That something went wrong with uploading them and licensing is no problem but a good opportunity to learn something about open license requirements.

Looks good now.

Kamsuri5 updated the task description. (Show Details)Mar 30 2017, 9:42 AM

@Basvb Actually i was about to write GLAM users, i have changed it. In deliverables i have written the tasks involved basically to categorize the project, so should i change its heading or keep it deliverables and change the content because i have already mentioned detailed information of each task in the weekly schedule, so it will be repetition. Yes, i am going through licensing terms and conditions.

Basvb moved this task from Backlog to Done on the glam2commons board.May 7 2017, 1:06 PM