Grants:Programs/Wikimedia Community Fund/Rapid Fund/Wikifile-transfer tool’s bug fixes and feature development (ID: 22458511)/Final Report
Report Status: Accepted
Due date: 30 November 2024
Funding program: Rapid Fund
Report type: Final
This is an automatically generated Meta-Wiki page. The page was copied from Fluxx, the web service of Wikimedia Foundation Funds where the user has submitted their midpoint report. Please do not make any changes to this page because all changes will be removed after the next update. Use the discussion page for your feedback. The page was created by CR-FluxxBot.General information
[edit]- Applicant username: ParasharSarthak
- Organization name: N/A
- Amount awarded: 4960
- Amount spent: 4859.83 USD, 404794.69
Part 1: Project and impact
[edit]1. Describe the implemented activities and results achieved. Additionally, share which approaches were most effective in supporting you to achieve the results. (required)
We successfully accomplished several key objectives: The Wikifile-Transfer v2 project focused on improving technical functionality, user experience, and expanding the tool's capabilities across Wikimedia projects. Below is an overview of the activities and their outcomes:
Implemented Activities Expanded Wiki Support: The tool now supports 340 Wikipedia sites, 171 Wiktionaries, 77 Wikibooks, 74 Wikiquotes, 78 Wikisources, and other Wikimedia projects. This expansion broadens its utility across diverse communities.
Wikimedia Commons Integration: Users can now transfer free-licensed files to Wikimedia Commons, reducing manual work and streamlining processes.
Enhanced File Upload Interface: Redesigned the upload template with an integrated text editor, allowing users to customize template information directly within the tool.
Large File Handling: Implemented background job processing using Celery, enabling smooth transfers of large files without interruptions.
Database Stability Fix: Resolved persistent SQL server errors, enhancing reliability and improving data handling.
Frontend Overhaul in ReactJS: Built the frontend using ReactJS, improving performance, modularity, and maintainability.
Modern UI Design: Introduced a modern, cohesive user interface based on Material Design principles.
Internationalization (i18n) Support: Added multi-language support on the frontend, making the tool accessible to a global audience. Aleady, on-boarded 4 languages.
Backend Refactor and Rewrite: Rewrote the backend to improve efficiency, scalability, and maintainability.
Improved Developer Experience: Integrated Docker to streamline setup and development processes.
Deployment Upgrade: Migrated the tool to Python 3.11 to align with Toolforge's latest standards, improving performance and security.
Results Achieved
Technical Improvements:
A total of 19,987 lines of code were added across the backend and frontend.
The tool now handles large files, resolves database errors, and supports additional media extensions.
Increased Adoption:
The tool now supports over 740 Wikimedia projects, significantly expanding its reach.
As of this report, the tool has 39 unique users actively utilizing its features.
Improved User Experience:
Enhanced UI, i18n support with 4 languages on-boarded already, and automation of repetitive tasks make the tool more user-friendly and efficient.
Community Engagement:
Hosted two community calls to gather feedback and promote the tool:
November 3, 2024: Presented new features and answered community queries.
November 10, 2024: Discussed updates and invited suggestions for future improvements.
Transparency and Documentation:
Shared detailed project updates and documentation on Meta-Wiki, encouraging community collaboration.
Effective Approaches
Community Collaboration:
Feedback from Wikimedia communities, obtained through calls and platforms like Phabricator (example request), ensured the tool met user needs.
Incremental Implementation:
Dividing the project into milestones (e.g., backend rewrite, feature development, and community testing) enabled focused progress and timely delivery.
Use of Modern Tools:
Leveraging Docker, ReactJS, and Python 3.11 improved development efficiency and aligned the tool with modern standards.
Transparent Communication:
Regular updates via Meta-Wiki and GitHub built trust and maintained transparency with the community.
These activities and approaches resulted in a robust, user-friendly, and scalable tool that meets the evolving needs of the Wikimedia community.
2. Documentation of your impact. Please use space below to share links that help tell your story, impact, and evaluation. (required)
Share links to:
- Project page on Meta-Wiki or any other Wikimedia project
- Dashboards and tools that you used to track contributions
- Some photos or videos from your event. Remember to share access.
You can also share links to:
- Important social media posts
- Surveys and their results
- Infographics and sound files
- Examples of content edited on Wikimedia projects
Below are the links and resources documenting the impact of the Wikifile-Transfer v2 project, showcasing its development, usage, and evaluation:
Project links Meta-Wiki: Indic-TechCom/Tools/Wikifile-transfer/v2 Tool link: https://wikifile-transfer.toolforge.org/ GitHub Repo (Source code): https://github.com/indictechcom/wikifile-transfer
Usage by community
The tool has been actively used across multiple Wikimedia projects, contributing significantly to recent changes. Below are links to dashboards showing the activity driven by the tool:
Recent changes on Tamil Wikipedia (ta) Recent changes on Bengali Wikipedia (bn) Recent changes on Telugu Wikipedia (te) Recent changes on Punjabi Wikipedia (pa) Recent changes on Hindi Wikipedia (hi) Currently, we are listing only 5 languages but there could be more wikis, using the tool to transfer the files.
Active users and impact The tool currently has 39 active users (based on the Toolforge database query). These users have made substantial contributions to Wikimedia projects by transferring non-free and free-licensed media files efficiently across wikis. More than 185+ files has been transfer by the tool. The links above show detailed recent changes where the tool has been used to transfer files, tagged with "OAuth CID: 2395 or 10649" (Wikifile-transfer OAuth IDs). This highlights its significant role in supporting multilingual Wikimedia communities in managing media files effectively.
Feedback We hosted two community calls to engage with Wikimedia users and gather valuable feedback on the tool’s features and functionality. The first call focused on presenting the new features of Wikifile-Transfer v2 and addressing user queries, while the second call emphasized resolving reported issues and discussing additional feature requests.
Feedback collected during these sessions was carefully analyzed and implemented to enhance the tool’s performance and usability, ensuring it met the evolving needs of the Wikimedia community. Example:
https://phabricator.wikimedia.org/T379510 https://phabricator.wikimedia.org/T379472 This documentation provides a clear view of the tool's active usage and its direct impact on Wikimedia projects through real contributions.
Additionally, share the materials and resources that you used in the implementation of your project. (required)
For example:
- Training materials and guides
- Presentations and slides
- Work processes and plans
- Any other materials your team has created or adapted and can be shared with others
The successful implementation of the Wikifile-Transfer v2 project relied on a combination of technical frameworks, community feedback, and Wikimedia infrastructure. Below is a detailed list of the materials and resources utilized:
Technical frameworks and tools Python 3.11: Migrated the backend to Python 3.11 for improved performance, security, and compatibility with modern libraries. ReactJS: Used for building the frontend, providing a modular and efficient architecture for a modern user interface. Material design system: Followed Material Design principles to create an intuitive and visually appealing user interface. Docker: Streamlined the development and deployment process, ensuring consistency across environments. Celery: Implemented for background job processing, enabling seamless handling of large file transfers. Wikimedia infrastructure Toolforge: Hosted the tool on Wikimedia’s Toolforge platform, leveraging its robust infrastructure for deployment and maintenance. Wikitech documentation: Followed Toolforge migration guides for updating the tool’s deployment to Python 3.11. OAuth Integration: Utilized Wikimedia OAuth for secure and streamlined user authentication. Tracking and metrics tools Linux commands for usage metrics: Queried Toolforge databases to monitor tool usage and generate usage reports (e.g., `SELECT COUNT(*) FROM user`). Recent Changes Dashboards: Used recent changes pages across multiple wikis (e.g., Recent changes on Tamil Wikipedia) to track contributions made using the tool. These resources collectively ensured a robust technical foundation, seamless implementation, and community-driven enhancements for the project.
3. To what extent do you agree with the following statements regarding the work carried out with this Rapid Fund? You can choose “not applicable” if your work does not relate to these goals. Required. Select one option per question. (required)
A. Bring in participants from underrepresented groups | Not applicable |
B. Create a more inclusive and connected culture in our community | Not applicable |
C. Develop content about underrepresented topics/groups | Agree |
D. Develop content from underrepresented perspectives | Agree |
E. Encourage the retention of editors | Strongly agree |
F. Encourage the retention of organizers | Strongly agree |
G. Increased participants' feelings of belonging and connection to the movement | Not applicable |
F. Other (optional) |
Part 2: Learning
[edit]4. In your application, you outlined some learning questions. What did you learn from these learning questions when you implemented your project? How do you hope to use this learnings in the future? You can recall these learning questions below. (required)
You can recall these learning questions below: This is a technical implementation project. Here, our learning will be high. This project can help us to migrate and set up maintenance for our other tools as well (Listed on the Indic-TechCom page).
We can document the common steps of improvement on Wikitech wiki so that other technical person can follow them to improve their tools. So others can also learn from our project’s documentation.
In our application, we aimed to learn how to migrate and set up maintenance for tools listed on the Indic-TechCom page. The implementation of Wikifile-Transfer v2 provided key insights that will guide future projects.
Migration and Maintenance Framework: Migrating the tool’s backend from Python 3.7 to Python 3.11 and integrating Docker for development helped us establish a clear framework for future tool upgrades. This process demonstrated the importance of planning and using modern tools for seamless transitions.
Documented Improvements: While we have not yet created detailed technical documentation, the refactored repository provides a practical guide for implementing key improvements, such as i18n support, background job handling with Celery, and ReactJS-based frontends. The repository will act as a starting point for developers seeking to improve or maintain other tools.
Feedback-Driven Enhancements: Gathering feedback through community calls enabled us to prioritize critical updates, such as template automation and large file handling. This iterative approach proved highly effective. Regular feedback collection will remain a priority for aligning tool development with community needs.
By leveraging the updated Wikifile-Transfer v2 repository as a practical reference, we hope to provide a base template for migrating, maintaining, and enhancing other tools. Future projects will benefit from the structured practices and features implemented in this project, ensuring tools are robust, modern, and aligned with the Wikimedia community's needs.
5. Did anything unexpected or surprising happen when implementing your activities? This can include both positive and negative situations. What did you learn from those experiences? (required)
The implementation of Wikifile-Transfer v2 presented a few unexpected situations, both positive and challenging, which provided valuable learning opportunities.
Delays due to health reasons One unexpected challenge was a delay in the project timeline due to health-related issues. This required us to adjust our workflow and extend certain milestones.
Surprising feedback from the community During the community feedback phase, we received some insightful and surprising suggestions that highlighted opportunities for further improvement:
Reducing upload steps: Feedback: Users noted that the new version of the tool requires four steps to upload a file, compared to a single step in the previous version. While casual users found this acceptable, regular users who upload 10–20 files at a time found it repetitive and cumbersome. Suggestion: Remove or hide steps 2 behind preference options. For example: Step 2 ("Select Project & Language") could be skipped by setting a default in user preferences. Learning: This feedback emphasized the importance of customizing workflows for power users. We introduced user-configurable preferences to improve usability. Localizing template parameters: Feedback: Users suggested that the "Article" parameter in templates should be replaced with target wiki pages, rather than defaulting to source wiki. Learning: This highlighted the need for greater localization within the tool to accommodate diverse community practices. We incorporated localized settings for template parameters based on the target wiki.
6. What is your plan to share your project learnings and results with other community members? If you have already done it, describe how. (required)
Community calls First community call: This session introduced the new features of tool, addressed user queries, and gathered feedback on further improvements. Second community call: This session focused on resolving reported issues and discussing additional feature requests. It also served as a platform for the community to share their experiences using the tool. Announcements on village pumps We announced the release of the tool on the village pumps of various wikis, reaching a wide range of contributors. The announcements were shared on the following wikis:
Hindi Wikipedia (hi) Bhojpuri Wikipedia (bh) Bengali Wikipedia (bn) Kashmiri Wikipedia (ks) Maithili Wikipedia (mai) Gujarati Wikipedia (gu) Marathi Wikipedia (mr) Punjabi Wikipedia (pa) Sanskrit Wikipedia (sa) Telugu Wikipedia (te)
Part 3: Metrics
[edit]7. Wikimedia Metrics results. (required)
In your application, you set some Wikimedia targets in numbers (Wikimedia metrics). In this section, you will describe the achieved results and provide links to the tools used.
Target | Results | Comments and tools used | |
---|---|---|---|
Number of participants | 15 | 39 | These are users of the tool |
Number of editors | 15 | 39 | These are users of the tool |
Number of organizers | 0 | 1 |
Wikimedia project | Target | Result - Number of created pages | Result - Number of improved pages |
---|---|---|---|
Wikipedia | 0 | ||
Wikimedia Commons | 0 | ||
Wikidata | |||
Wiktionary | |||
Wikisource | |||
Wikimedia Incubator | |||
Translatewiki | |||
MediaWiki | |||
Wikiquote | |||
Wikivoyage | |||
Wikibooks | |||
Wikiversity | |||
Wikinews | |||
Wikispecies | |||
Wikifunctions or Abstract Wikipedia |
8. Other Metrics results.
In your proposal, you could also set Other Metrics targets. Please describe the achieved results and provide links to the tools used if you set Other Metrics in your application.
Other Metrics name | Metrics Description | Target | Result | Tools and comments |
---|---|---|---|---|
Users | This will be the users of the tool | 15 | 39 | These are users of the tool |
9. Did you have any difficulties collecting data to measure your results? (required)
No
9.1. Please state what difficulties you had. How do you hope to overcome these challenges in the future? Do you have any recommendations for the Foundation to support you in addressing these challenges? (required)
Part 4: Financial reporting
[edit]10. Please state the total amount spent in your local currency. (required)
404794.69
11. Please state the total amount spent in US dollars. (required)
4859.83
12. Report the funds spent in the currency of your fund. (required)
Provide the link to the financial report https://docs.google.com/spreadsheets/d/1n1SIFHXr2E3n4kL-e4rlmks0swDNEIvVg6Kvq5smAgs/view#gid=0
12.2. If you have not already done so in your financial spending report, please provide information on changes in the budget in relation to your original proposal. (optional)
13. Do you have any unspent funds from the Fund?
Yes
13.1. Please list the amount and currency you did not use and explain why.
10.17
00.17 USD : Bank charges, this is leftover from bank charges.
10.00 USD : Miscellaneous, only used 2 hours ($40) from it so $10 still remain from $50.
I will wait for instruction from grant admin as this is minor remaining amount.
13.2. What are you planning to do with the underspent funds?
C. I am planning to send them back to the WMF
13.3. Please provide details of hope to spend these funds.
N/A
14.1. Are you in compliance with the terms outlined in the fund agreement?
Yes
14.2. Are you in compliance with all applicable laws and regulations as outlined in the grant agreement?
Yes
14.3. Are you in compliance with provisions of the United States Internal Revenue Code (“Code”), and with relevant tax laws and regulations restricting the use of the Funds as outlined in the grant agreement? In summary, this is to confirm that the funds were used in alignment with the WMF mission and for charitable/nonprofit/educational purposes.
Yes
15. If you have additional recommendations or reflections that don’t fit into the above sections, please write them here. (optional)
Review notes
[edit]Review notes from Program Officer:
N/A
Applicant's response to the review feedback.
N/A