Profile Information
Name: Hussein Mmbaga
IRC nickname: ssein
Web Profile: https://husseinmmbaga.com
Wikipedia profile: https://sw.wikipedia.org/wiki/Mtumiaji:Hussein_m_mmbaga
Location: Arusha, Tanzania
Typical working hours: 9:00 AM - 5:00 PM (UTC+3),
Monday to Friday, 25 hours per week
Synopsis
Wikisource is an online wiki-based digital library operated by the Wikimedia Foundation where volunteers transcribe old books and documents. The Bulk OCR feature allows volunteers to OCR multiple pages of a book at once instead of doing it page by page manually. However the current implementation has several critical issues that reduce productivity and cause poor quality text being saved to wiki pages. This will directly benefit thousands of Wikisource volunteers worldwide who transcribe historical documents daily making their work faster more accurate and more enjoyable.
Mentors: (@theprotonade), (@SGill)
Have you contacted your mentors already?
Yes. I have commented on T415145 introducing myself and describing my contributions. I have also subscribed to the task and am following all discussions actively.
Deliverables
Planned project timeline: A flexible guide that I will update based on your feedback and our weekly meetings
| General Activity Name | Timeline | Specific Activities | Status | |
|---|---|---|---|---|
| Community Bonding & Preparation | May 1 - May 24 | Set up full working development environment | Done | |
| Study the entire BulkOcrWidget.js and related files deeply | Done | |||
| Read all existing patches on Gerrit for this project | Done | |||
| Study the Wikimedia OCR tool API | Done | |||
| Study OOUI Dialog, SelectWidget and other components needed | Done | |||
| Review T359703 and the legacy user script | Done | |||
| Study the merged patch in Gerrit | Done | |||
| Discuss implementation approach with mentors (@theprotonade & @SGill) | Done | |||
| Finalize weekly communication schedule with mentors | Done | |||
| Identify any additional tasks or requirements suggested by mentors | Done | |||
| Milestone | Full working environment, deep codebase knowledge, and mentor-approved implementation plan ready before coding starts. Report link | |||
| Week 1-2 — Bug Fixes and Microtasks | May 25 - June 10 | T411157: Fix success message shown with errors | Done awaiting review | |
| Submit patch to Gerrit and address review comments | Done awaiting feedback | |||
| Resolving Merge Conflicts and Addressing Persistent Notification Feedback | Done | |||
| T413556: Add rotate option to OCR tool | Done | |||
| Fix any additional reported bugs | Done | |||
| Write tests for all bug fixes | Done | |||
| Initial Internship Report period | Initial Report Initial Report | |||
| Milestone | All microtasks fixed, waiting for patches reviewed and merged. Week 2 Report, Week 1 Report | |||
| Week 3-5 — User Group Restrictions | June 11 - June 30 | Study how MediaWiki user group permissions work | done | |
| Review the current code that restricts Bulk OCR to authorized users to verify it works as intended | done | |||
| Refine Feedback Design: Evaluate the provided feedback model design and incorporate improvements based on my suggestions and mentor input. | Done | |||
| Milestone | Verified security of existing access controls and approval of refinements for the feedback system design.. | |||
| Week 6 — OCR Configuration UI | July 1 - July 7 | Verify and test existing engine and language selection | Done | |
| Ensure engine and language selections work correctly end to end | Done | |||
| Write tests for engine and language selection | Done | |||
| Milestone | Engine and language selection fully tested and working correctly. | |||
| Week 7-8 — Feedback Modal Design | July 8 - July 18 | Study and learn OOUI Dialog component | Done | |
| Design feedback modal structure and layout | Done | |||
| Implement feedback modal using OOUI Dialog | Done | |||
| Show OCR text preview for each page after OCR processing | Done | |||
| Allow user to edit OCR text directly in modal | inprogress | |||
| Add approve and reject buttons per individual page | Done | |||
| Milestone | Working feedback modal with per-page approve and reject functionality. | |||
| Week 9 -10 — Feedback Modal Completion | July 19 - July 25 | Add approve all and reject all for entire batch | Done | |
| Connect modal approval to save Ocr Results | Done | |||
| Handle edge cases: empty OCR text, network failures | inprogress | |||
| Milestone | Complete feedback loop working. Users can preview, edit, approve or reject before saving. | |||
| Week 11-12 — Testing | July 26- August 8 | Fix any bugs found during testing | inprogress | |
| Address all pending reviewer feedback from Gerrit | inprogress | |||
| Milestone | Full test coverage for all new features. | |||
| Week 13-14 — Documentation | August 9 - August 23 | Update existing documentation and submit final work product | ||
| Write new documentation for the feedback workflow | ||||
| Write user guide for engine and language selection | ||||
| Write configuration guide for user group restrictions | ||||
| Final code cleanup and respond to all review comments | ||||
| Milestone | All patches merged or ready to merge. Documentation complete 350 hours of quality work delivered for Wikisource community | |||
Past Experience
Open Source Contributions (Wikisource Bulk OCR Improvements):
- Active Swahili Wikipedia administrator reviewing edits, mentoring new contributors and improving Swahili content quality. Profile:https://sw.wikipedia.org/wiki/Mtumiaji:Hussein_m_mmbaga
- Set up full MediaWiki 1.46-alpha development environment locally on Linux with Docker, studying the codebase and learning mediawiki.
- T411157: Fix success message shown when there are errors Patch: https://gerrit.wikimedia.org/r/c/mediawiki/extensions/Wikisource/+/1252657. Fixed BulkOcrWidget.js to pass failedPages to event handler and show correct notification type based on failure count.
Relevant Projects:
- Built and maintained multiple PHP and Laravel web applications. Gained deep experience with JavaScript event systems, API integration and responsive UI development.
Participation
Communication:
- Zulip: Daily presence in GSoC and Wikisource streams
- Phabricator: Weekly updates on T415145 task comments
- Gerrit: Regular patch submissions and responding to reviews
- Email: Available for urgent mentor communication
Source Code:
All code will be submitted via Gerrit at:https://gerrit.wikimedia.org/r/mediawiki/extensions/Wikisource
Asking for Help:
- First I will read existing documentation and code
- Then search Phabricator for related tasks and discussions
- Then ask specific questions on Zulip with full context
- Finally discuss with mentors during scheduled check-ins
About Me
Education:
I hold a Diploma in Information and Communication Technology. I have been doing web and mobile development starting with WordPress and Joomla, then moving to custom PHP, JavaScript, Flutter, Dart, CSS, HTML and MySQL.
How did I hear about this program?
I am a Swahili Wikipedia administrator and active Wikimedia community member. I discovered GSoC through the Wikimedia technical community while looking for ways to contribute more deeply to Wikimedia projects.
Other time commitments:
I have no other major commitments during the GSoC period. I am a freelance developer so I can fully control my schedule and dedicate 25 hours per week to this project consistently.
Applying to both GSoC and Outreachy?
I am applying only to GSoC 2026 with Wikimedia Foundation for this project.
What does making this project happen mean to me?
As a Swahili Wikipedia administrator I see every day how important it is for volunteers to have good tools. Many historical Swahili and African documents exist only as scanned images. Improving Bulk OCR means these documents can be transcribed faster and made available to the world. This is deeply personal to me I want to help preserve African knowledge and history through better Wikisource tools.
Any Other Info
Related References:
- Wikisource extension: https://www.mediawiki.org/wiki/Extension:Wikisource
- Wikimedia OCR tool: https://ocr.wmcloud.org
- Wikimedia OCR source: https://github.com/wikimedia/wikimedia-ocr
- Wikimedia OCR documentation: https://www.mediawiki.org/wiki/Help:Extension:Wikisource/Wikimedia_OCR
- Merged bulk OCR patch: https://gerrit.wikimedia.org/r/c/mediawiki/extensions/Wikisource/+/1153779
- Legacy bulk OCR user script: https://en.wikisource.org/wiki/User:Kirtisikka972/common.js
- T359703: Related bulk OCR task