Approved license
I assert that this Outreachy internship project will released under either an OSI-approved open source license that is also identified by the FSF as a free software license, OR a Creative Commons license approved for free cultural works:
- Yes
No proprietary software:
I assert that this Outreachy internship project will forward the interests of free and open source software, not proprietary software:
- Yes
How long has your team been accepting publicly submitted contributions?
- 0-2 months
How many regular contributors does your team have?
- 1-2 people
Brief summary
Wiki Loves Monuments is an international photographic competition held every year by the Wikimedia community. Since 2022, an interactive map application is being developed to improve user experience when participating in the competition, specifically with submitting their photographs to Wikimedia Commons, a free licensed media repository that feeds all Wikimedia projects, including Wikipedia.
The app can serve as a base map app for the 30+ countries that hold local Wiki Loves Monuments and other geography-focused photographic competitions. The application is written in Python using a Flask framework, which facilitates collaborative development and can be forked if necessary, which gives more autonomy to the organizers.
The application is intended to be responsive, bandwidth friendly and intuitive. Based on the feedback of consultants and participants, in this project you will use and expand Javascript and Python scripts in the Flask framework in order to create a responsive dashboard of the participant’s and the competition’s statistics within Wiki Loves Monuments editions, one of the main features suggested by the consultants. That feature aims to bring gamification elements to the competition in order to improve the user experience.
This project is mentored by Éder Porto. SPARQL, Python and Javascript knowledge are advantage perks, but can be learnt during the project as well. Visual sense and product design knowledge and techniques will be useful, but are not essential.
Minimum system requirements
You will need a computer with a working Python 3 installation; you can install flask and other useful frameworks and modules using standard package systems.
How can applicants make a contribution to your project?
You will start understanding how Wikimedia Commons and Wikidata works, then you will learn how to get information from those projects via APIs and SPARQL queries (tutorial on SPARQL: https://wdqs-tutorial.toolforge.org/). After you are familiarized with those concepts, you will code functions to gather information about a user's contributions to the Wiki Loves Monuments competition and create a dynamic and responsive dashboard to present this information.
You will need to create an account on Wikipedia (if you don’t already have one), install python, flask and other packages (https://github.com/WikiMovimentoBrasil/wikilovesbrasil/blob/main/requirements.txt). I can provide guidance for each specific starting task (tbd), and you are welcome to ask questions through Outreachy, by email, or at https://www.wikidata.org/wiki/User_talk:EPorto_(WMB).
Repository
https://github.com/WikiMovimentoBrasil/wikilovesbrasil
Issue tracker
https://github.com/WikiMovimentoBrasil/wikilovesbrasil/issues
Tasks
T318451 - Look through a category of media files and identify what information can be gathered and quantified
T318452 - Explore the Wikimedia Commons API and match the API calls with the information obtained
T318453 - Set up Python on your computer, write a function to get the informations using the Wikimedia Commons API
Application and timeline
The Outreachy positions are assessed solely on the contributions and the application you submit for the project; the best things you can do are to do well with the contributions, and include all relevant information in your application. Contributions are evaluated based on their completeness, coding style, and any additional work beyond the core task.
When filling in your application, you will be asked about a timeline for the work during the project. I encourage you to draft a rough timeline yourself, bearing in mind:
You should split the timeline into periods, e.g., weekly or two-weekly, and write a short summary of what you expect to be doing in that period;
The aim of the project is to build a dynamic dashboard for Wiki Loves Monuments participants, but this will be done in stages (e.g., gathering the informations; presenting the statistics; testing usability and responsiveness; getting and answering feedback);
Essential skills and knowledge that you do not master will need a period of learning, and you should include time for that;
Be realistic about what you think you will be able to achieve during the internship!
If you are accepted, we will work together to revise the timeline as the work progresses - it doesn't have to be perfect!
There are no community specific questions to answer in your application for this project. If you can demonstrate general knowledge of the community, or previous python coding activities in your application, that will be really helpful.
Also, please bear in mind that I can only accept one intern for this project, so I would strongly recommend contributing to multiple Outreachy projects (particularly those with few applicants) to increase your chances of getting an internship.
Benefits
- You will learn or improve your knowledge of Python coding.
- You will gain familiarity with API calls on the Wikimedia projects and SPARQL queries.
- You will develop front-end and responsive development skills.
Community benefits
Improvement of user experience, especially to newcomers, can also improve user retention on Wiki Loves photographic competitions.
Questions?
Please feel free to ask questions in this phabricator task, or in the subtasks. You can also email me if you want (my address is available via Outreachy)