IMPORTANT: Make sure to read the [Outreachy participant instructions](https://www.mediawiki.org/wiki/Outreachy/Participants) and [communication guidelines](https://www.mediawiki.org/wiki/New_Developers/Communication_tips) thoroughly before commenting on this task. This space is for project-specific questions, so avoid asking questions about getting started, setting up Gerrit, etc. When in doubt, ask your question on [Zulip](https://www.mediawiki.org/wiki/Outreach_programs/Zulip) first!
===Brief summary
[[https://commons.wikimedia.org/wiki/Main_Page|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 [[https://meta.wikimedia.org/wiki/Wikimedia_projects|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 [[https://meta.wikimedia.org/wiki/Indic-TechCom|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 [[http://imagebulk.toolforge.org|Imagebulk]] tool. It saves community members' time, for example, when trying to download a Wikimedia's events photos.
[[http://imagebulk.toolforge.org|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 [[https://wikitech.wikimedia.org/wiki/Toolforge|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 [[https://wikitech.wikimedia.org/wiki/Portal:Cloud_VPS|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)
- @Jayprakash12345
- @SGautam_WMF
===Microtasks
Task 1:
* Review current app UI at [[http://imagebulk.toolforge.org|Toolforge]].
* Create new UI wireframe for webapp interface showing how user will go and interact to UI to get download the images in bulk.