Page MenuHomePhabricator

GSoC 2026: Montage improvements
Open, Needs TriagePublic

Description

Project title: Montage

Brief summary:

Montage is a photo evaluation tool for and by Wiki Loves competitions. It offers a flexible round-based workflow that is configurable to contests of all sizes, and is suited for evaluation of 10-1000s images. For the scope of GSoC, the proposal is to make multiple improvements to improve the workflows, solve existing bugs, and overall improve the experience of users (campaign organizers and jury) using the tool. Source code: https://github.com/hatnote/montage

Expected outcomes:
The overall goal is to improve the tool by identifying open issues that address the needs of campaign organizers and jurors.

  • Find and fix probable vulnerabilities: Input validation, Error handling, Test coverage, API contract definition: these would resolve the problem leads to null values sent to the backend which ends up returning and 500 POST error (for example, the round creation bug)
  • Ability to read author and upload date from the first version of the file (issues/155)
  • Fix voting statistics display issue (issue/325)
  • Improve edit votes loading/display issue (issues/322)
  • Resolve type error when voting too fast (issues/206)

Skills required/preferred:

Possible mentors:

Expected size of the project: 350 hours

Rating: medium

Microtasks:
Inspect the codebase and write a report detailing key stability issues that could be improved. Some areas to look into are

  • Input validation: check for forms / inputs that don't have validation
  • Error handling: check for API endpoints or UI components where error handling could be improved
  • Test coverage: Critical paths that have tests missing
  • API contract def: Check for endpoints with unclear contracts with frontend and backend.

These are starting pointers, and of course, if you find some other areas of improvement definitely include them. It can be a Google Doc or Markdown file at a publicly viewable link. Please limit your response to 2-3 pages approx, roughly about ~ 600-100 words. With each issue, write a small brief about how it will improve the codebase. Overall, it should demonstrate your understanding of the codebase.

Any other additional information for contributors:

Why are you proposing this project?
Montage is probably the most widely used tool for judging photo competitions by the Wikimedia community. As Wiki Loves format has been quite successful in media uploads, this tool supports a key step in that process of evaluation of the uploaded images. Originally developed for Wiki Loves Monuments, but the tool is not widely used by campaigns like Wiki Science Competition, Wiki Loves Birds, Wiki Loves Africa, and many others.

What is the expected impact?

  • Fix fundamental issues that improve the overall stability of the tool.
  • Improve at least 3 requested features from users of the tool (campaign organizers / jurors)
IMPORTANT: GSoC / Outreachy candidates are required to complete micro-tasks during the application period to prove their ability to work on a three month long project

Event Timeline

Hi @KCVelaga, I met @Effeietsanders in the Wikimedia Futures Lab at Frankfurt, Germany. He is also interested in supporting us as a mentor in product mentoring side. Welcoming him 💐.

Please update the project description.

Hi @KCVelaga @Jayprakash12345 Im really excited to work on the montage improvements project for GSoC and would love to get started on the microtask. Is it okay if I begin working on it now?

I met @Effeietsanders in the Wikimedia Futures Lab at Frankfurt, Germany. He is also interested in supporting us as a mentor in product mentoring side. Welcoming him 💐.

That's fantastic, updated the description.

@sanjaisid the contribution period will start on March 16, you can work on the micro-tasks then.

Hi @KCVelaga. I’m Aditya, interested in the Montage project for GSoC. I’ve set up the repository locally and have started reviewing the documentation and codebase. I’ll be working on the microtask by analyzing the workflow and identifying stability or usability issues.

Would you recommend focusing primarily on the microtask for now before starting to fix issues, or is it fine to work on both in parallel? I’m happy to start with small fixes to better understand the system. Looking forward to contributing and learning from everyone here.

Hi @KCVelaga. I'm Arbin, interested in gsoc contribution, I'm interested in the Montage photo evaluation tool because i recently finish a voting system with React and Django.
I'm currently working on my local environment setup . As the backend uses clastic -- are there any specific parts of the rdb.py logic you'd recommend I study first to understand how rounds are handled?

Hi @KCVelaga and mentors! I'm Om walzade. I've successfully cloned Montage and reviewed the Commons:Montage documentation.

While I wait for the March 16th start date to officially begin the microtasks, I’m spending time studying the Clastic framework's dependency injection to better understand the backend stability issues. I'm excited about the prospect of helping make Montage more robust for the Wiki Loves competitions!

Hi @Jayprakash12345, @KCVelaga . I'm Harshitha, I'm interested about this project, and have cloned the repository locally, while installing backend packages faced an error, related to version conflict. So, created a PR related to that.

Problem
tox supported pluggy(version < 1), I had version greater than 1, which was the reason for version conflict

Solution
created a PR - which provides instructions about installing the backend packages in CLI and in requirements-dev.txt added a -(pluggy < 1) line which resolves the conflict

-Thankyou.

This comment was removed by sanjaisid.

Hi @Harshitha_Mahadevi
If you install tox inside virtual environment (venv), it shouldn't cause the issue you faced because it wont conflict with your system installed dependencies

Hello, @sanjaisid
I performed the command inside the venv itself, I used pyenv for python and was definitely using virtual environment - activated the venv by creating the folder.

@Harshitha_Mahadevi

I have executed the following commands and it worked for me

python3 -m venv venv
source venv/bin/activate 

(venv) pip install tox
 tox

@sanjaisid
it, didn't work for me.
The error message was a bit specific like - maybe Docker compatibility Error

@sanjaisid
I tried to reproduce the Error, but now I'm not facing that Error, maybe you were right about it, That I was not in the venv, Sorry for the inconvenience. But I still believe that PR is useful, for beginners like me.

Hi all, just making a note that contribution period for this project starts from March 16 only. Also, feel free to ping me on Zulip for any project specific questions.

Hi @KCVelaga, @Effeietsanders, and @Jayprakash12345,

My name is Leila, a second-year Computer Science student exploring the Montage Improvements project for GSoC 2026. I’m new to open source and excited to contribute and learn with everyone here .

I’m currently reviewing the codebase and starting the microtask analysis mentioned in the description. I plan to look into input validation, error handling, and API interactions.

i just hope i am on the right track .Please let me know if there are any specific areas of the codebase you recommend focusing onmor any beginner tips that might help me get started effectively.

I will be glad to get a response ,Thank you so much!

Hi everyone,

My name is Abdulqayyum, a Computer Science student from Nigeria. I’m also interested in contributing to the Montage Improvements project for GSoC 2026 and have been going through the available wikis and documentation to better understand how Montage works.

At the moment, I’m working on setting up the project environment so I can familiarize myself with the codebase ahead of the contribution period. I noticed in the task details that contributors are advised not to begin contributions until March 16, so for now I’m focusing on preparation.

If there are any setup guides, development resources, or specific parts of the codebase you would recommend reviewing beforehand, I would really appreciate the guidance.

Thank you!
Abdulqayyum

Hi @Abdulqayyum.dev @Leila_Awino , thank you for your interest in the Montage project. I’d recommend joining the Wikimedia Zulip so you can introduce yourself and connect with the community.

For setting up the project, you can follow the instructions here: Montage Setup Instructions.

If you run into any issues during setup, feel free to ask.

Hi @KCVelaga @Jayprakash12345,
I opened a PR for the Montage issue #400:
https://github.com/hatnote/montage/pull/404

This PR includes:

  1. frontend fix to show backend validation details instead of generic 400 toast
  2. backend fix for ranking rounds where full-ballot submission conflicted with the 100-submit cap

Could you please review/test when possible?
I could not fully verify the affected Toolforge campaign flow due to permission-denied access.
Thanks.