Project Title
Wikifile-Transfer: Batch Upload, History, Metadata Extraction & Testing
Brief Summary
Wikifile-Transfer is a Toolforge web application that helps Wikimedia contributors transfer media files (especially non-free/fair-use images) between different wiki projects. This project aims to enhance the tool by adding batch upload capability, implementing an upload history system, improving metadata extraction with category localization, and adding comprehensive test coverage to ensure code quality and reliability.
Expected Outcomes
- Users can transfer multiple files in a single batch operation instead of one-by-one
- Complete upload history dashboard with retry functionality for failed transfers
- Automatic category localization during file transfer (not just templates)
- 80%+ backend test coverage with pytest and E2E tests with Cypress
- CI/CD pipeline with GitHub Actions for automated testing
Background
The tool was created in 2019 and upgraded to v2 in November 2024. It currently:
- Supports multiple Wikimedia sister projects
- Provides UI in 30+ languages (via i18n)
- Automatically localizes licensing templates during transfer
- Reduces manual transfer time from minutes to seconds
Technical Stack
| Component | Technology |
| Backend | Python 3.11, Flask, SQLAlchemy |
| Frontend | React 18, Material-UI 6 |
| Database | MySQL |
| Task Queue | Celery + Redis |
| Testing | pytest, Cypress |
| CI/CD | GitHub Actions |
Skills Required/Preferred
Required:
- Python (Flask, SQLAlchemy, Celery)
- JavaScript/React (functional components, hooks)
- SQL basics (MySQL)
- Git version control
- Docker
- Redis
Preferred:
- MediaWiki API
- Cypress testing framework
Phabricator Project Tags: Indic-TechCom
Possible Mentors
Expected Size of the Project
350 hours
Rating
Medium
Additional Information for Contributors
Getting Started:
- Try using the live tool at https://wikifile-transfer.toolforge.org/
- Set up local development environment using Docker
- Read the codebase
Why Are You Proposing This Project?
This project is proposed to address real needs identified by the Wikimedia community, particularly Indian language wiki contributors.
Problems we're solving:
- Repetitive manual work: Contributors transferring multiple files must repeat the entire process for each file, wasting significant time
- No transfer tracking: Users have no way to see their past uploads or retry failed transfers
- Lost metadata: When files are transferred, categories are lost or remain in the source language, requiring manual fixes
- Code maintainability: Zero test coverage makes it risky to add new features or fix bugs
Who benefits:
- Indic language wiki communities (Hindi, Tamil, Bengali, etc.)
- Any Wikimedia contributor working with non-free media across projects
- Tool maintainers who need reliable, tested code
What Is the Expected Impact?
Success looks like:
- Contributors can transfer 10-50 files in the time it currently takes to transfer 1 file
- Failed transfers can be retried with one click instead of starting over
- Categories are automatically localized, reducing manual post-transfer cleanup by 80%
- New features can be added confidently with test coverage preventing regressions
Community impact:
- Reduces barrier for non-English wiki contributors
- Saves hundreds of volunteer hours annually
- Makes the tool more reliable and maintainable for future development
Microtasks
This task is part of Google Summer of Code 2026. Please do not claim, self-assign, or start working on this task before the official GSoC contribution timeline.
- Implement Error Handling in backend - T415715: Wikifile-Transfer: Implement Error Handling in backend
- Temporary files in temp_images directory are never cleaned up after upload or on failure - T415717: Wikifile-Transfer: Temp File Cleanup
References
Tool & Documentation:
- Tool URL: https://wikifile-transfer.toolforge.org/
- Meta Page: https://meta.wikimedia.org/wiki/Indic-TechCom/Tools/Wikifile-transfer
- Source Code: https://github.com/indictechcom/wikifile-transfer
MediaWiki API:
- MediaWiki API Documentation: https://www.mediawiki.org/wiki/API:Main_page
- Language Links API: https://www.mediawiki.org/wiki/API:Langlinks
- Category API: https://www.mediawiki.org/wiki/API:Categories
- File Upload API: https://www.mediawiki.org/wiki/API:Upload
Testing Frameworks:
- pytest Documentation: https://docs.pytest.org/
- Cypress Documentation: https://docs.cypress.io/
Related Tools: