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:
- Frontend: HTML, CSS, Javascript and Vue.js
- Backend: Python, Clastic (https://python-clastic.readthedocs.io/en/latest/)
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:
- Documentation page on Commons: https://commons.wikimedia.org/wiki/Commons:Montage to understand how the tool works.
- Talk page for any questions.
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)