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.
As a part of [[https://meta.wikimedia.org/wiki/Indic-TechCom|Indic-TechCom]] initiative to provide technical support to Indic community, we regularly gets feedback from community. In one of such feedback, they ask us to develop such tool that can download images from Wikimedia Commons at once. So we worked on [[http://imagebulk.toolforge.org|Imagebulk]] tool.
[[http://imagebulk.toolforge.org|Imagebulk]] is a tool that allow user to download Wikimedia Commons file in bulk as ZIP. Through this tool, users are downloading media files in zip by providing URL list of file's page or category. Since we don't have access to Wikimedia Commons's filesystem so tool downloads files over HTTP, and then compress to make zip file. Due to this, users is allowed to download only 50 files at once. Last year, I added Celery worker to scale up but this does not work well on [[https://wikitech.wikimedia.org/wiki/Toolforge|toolforge]]. Now, this project has following aspect
- Design UI of the tool
- Based on design, write frontend code in Vue.js
- Validation on the user input list and showing the thumbnails of the list on frontend
- Convert backend into API model
- Improve Celery implementation to handle large request
- Allow user to download media from other Wikimedia project
- 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
- TBD
===Microtasks
TBD