Brief summary
Wikimedia Commons is a media file repository making available public domain and freely licensed educational media content (images, sound, and video clips) to everyone. It acts as a common media repository for the various projects of the Wikimedia Foundation.
In Wikimedia Commons, there is no file download button at all. Even for a file, you have to open the file and save it by right-clicking manually. As a part of the Indic-TechCom initiative to provide technical support to the Indic community, we regularly get feedback from the community. In one such feedback, they asked us to develop a tool that can download multiple images from Wikimedia Commons. So we created the Imagebulk tool. It saves community members' time, for example, when trying to download a Wikimedia's events photos.
Imagebulk is a tool that allows users to download Wikimedia Commons files in bulk as ZIP. Through this tool, users download media files in a zip by providing a URL list of the file's page or category. Since we don't have access to Wikimedia Commons's filesystem, the tool downloads file over HTTP and then compresses them to make a ZIP file. Due to this, users are allowed to download only 50 files at once. Last year, I added a Celery worker to scale up, but this does not work well on toolforge. Now, this project has the following aspect:
- Design UI of the tool
- Based on the design, write frontend code in Vue.js
- Validation of the user input list and showing the thumbnails of the list on frontend
- Convert backend into API model
- Improve Celery implementation to handle the large request
- Allow users to download media from other Wikimedia projects
- Deploy the app on CloudVPS (Debian Linux) instead of Toolforge
Skills required
- HTML & CSS
- Intermediate JavaScript & Python
- Flask with asynchronous programming
- Celery worker queue
- Vue.js, with Vuetify and Vuex
- Cloud deployment
Repository
https://github.com/indictechcom/imagebulk
Possible mentor(s)
Microtasks
Task 1:
- Review current app UI at Toolforge.
- Create new UI wireframe for webapp interface showing how user will go and interact to UI to get download the images in bulk.
- Share UI wireframe to Jayprakash12345 and SGautam_WMF on the Zulip