Page MenuHomePhabricator

WikiCurricula, an interface to represent curricula data
Open, Needs TriagePublic

Description

IMPORTANT: Make sure to read the Outreachy participant instructions and communication guidelines thoroughly before commenting on this task. This space is for project-specific questions, so avoid asking questions about getting started, setting up Gerrit, etc. When in doubt, ask your question on Zulip first!
IMPORTANT: We are not accepting new applicants for this project. Pick up new tasks and reach out to the mentors only if you are a member of the Telegram groupchat. If you used to be a member of the groupchat but were removed on the 6th/7th of October, send an email to datos at wikimedistas.uy

Brief summary

Wikidata for Education is a curricula digitisation project aiming to align Wikimedia projects with school curricula with the help of Wikidata. Piloted in Ghana, the project proved the concept that Wikibase software helps structure curricula data. The model was later replicated in Uruguay.

Wikimedistas de Uruguay was able to show the data with the help of an interface developed by Wikimedia Italy's project Wikipedia e la Scuola Italiana. It consists of a static website that visually represents the data stored in a TSV file, plus a Python script that generates this TSV by calling different APIs

Wikidata for Education is in need of an interactive and engaging user interface so that Wikimedia contributors, teachers, and the general public can visualize and explore the curriculum topics and structure. Wikicurricula is a good starting point, but it still needs several improvements before it can be considered Wikidata for Education’s UI.

The main goal of this project is to use Wikicurricula as an interactive and engaging way to visualize curriculum structured data on Wikidata.
For this, we need to:

  1. Create a boilerplate project with accurate documentation, so that Wikicurricula can be reusable for new countries and languages.
  2. Improve Wikidata’s integration with Wikicurricula
  3. Improve Wikicurricula’s user interface

Skills required

Required

  • Basic web development skills.
  • Intermediate proficiency in any programming language, preferably Python
  • Being comfortable around databases, spreadsheets and datasets
  • Basic Git usage

Appreciated

  • Familiarity with SQL/SPARQL/Wikidata Query Service
  • Experience with d3js library
  • Basic understanding of Spanish or Italian as the project is mostly documented in Spanish or Italian

Possible mentor(s)

Technical Mentor: @Piracalamina
Technical Mentor: @Sannita
Project Mentor: @SPatnaik

Useful links
Boilerplate

Italy - Wikipedia e Scuola italiana

Uruguay - Wikicurrícula Uy

Ghana

Wikidata for Education

Get familiar with...

Microtasks

Boilerplate+Documentation

  • Write documentation on how to make a local install (in your computer) of Wikicurrícula Boilerplate. The visualization is a static HTML+CSS+JS. The data-gathering folder contains scripts that are run manually.
  • Write documentation at the Readme file on how to feed the visualization with data from a new curriculum. The instructions should include building and running the Wikidata query. Remember that, for the time being, only Uruguay's and Ghana's curriculum are structured in Wikidata.
  • Write documentation on how to deploy Wikicurrícula Boilerplate in Toolforge. You may practice by migrating Uruguay's Wikicurricula from it's current hosting (Github Pages) to Toolforge.
  • Translate the boilerplate's interface to English
  • Parametrize code variables in bot.py to match each Wikipedia's configuration file [] Implement - and deploy at Toolforge - Wikicurricula for Ghana's national curriculum, with reference to the English Wikipedia. Document the process at the boilerplate project, or improve the documentation that has been previously written. Which parts of this process are the most cumbersome? What can we change in the code, or automate, so that new implementations are easier? If you come up with any ideas, write a Github issue

UI Improvements

  • In the Spanish version of the data-gathering script, the feature that counts the templates (avisi) added to an article is not working. Fix and enable this feature.
  • In the visualization, make it possible to order the articles in the x axis by number of references
  • Create a view that shows the curriculum topics that don't have an article in the analyzed Wikipedia (topics of Uruguay's curriculum that don't have an article in the Spanish Wikipedia, topics of the Ghana's curriculum that don't have an article in the English Wikipedia)
  • Add to the visualization's subject popup the grade and subject each curiculum topic belongs to

Ready to start?

  • Make your pull requests to the Boilerplate repo.
  • Many files such as voci_2023.tsv, subjects.tsv, query.tsv contain hardcoded data that should not be included in the boilerplate. They have been included in the repo for your reference, but feel free to remove them and add them to the git ignore once we have proper documentation.
  • Remember that the goal of this project is to create a boilerplate that can be easily adapted to other countries and languages needs. Clear documentation, descriptive names and comments are more important than the features themselves.
  • Email datos at wikimedistas.uy or message @Pirakalamina on Telegram for more info

Event Timeline

@SPatnaik / @Piracalamina: Hi, it's unclear to me what this task is for, in contrast to T347468 (which lists a similar list of "microtasks").
What's the difference between things that would need to happen to call T347405 versus T347468 resolved?

Hi @Aklapper, I assumed we have to create a separate request for Outreachy task. If not, we can resolve the one that I created T347468.

SPatnaik: Hi, please see https://www.mediawiki.org/wiki/Outreachy/Mentors for steps and project tags to use - thanks!

Maryann-Onyinye changed the visibility from "Public (No Login Required)" to "acl*outreachy-mentors (Project)".
Maryann-Onyinye changed the visibility from "acl*outreachy-mentors (Project)" to "Public (No Login Required)".Oct 2 2023, 1:52 PM

Hi, I got approved for the next step of Outreach and I am interested in this project, do I just go to the repo to work on it or do I need to get some permission to assign me to do it?

Hello , I am call Atemafac Kingsley, I am a data analyst. I got approved for the next step of Outreachy internship program and i will like to participate in this project. I find it very interesting.
Thanks.

Hi @Jcxiang you should be able to make a pull request to https://github.com/wikicurricula-uy/wikicurricula-boilerplate whenever you are ready. Let me know if we can help with anything else.

Thanks @ATEMK1NG, and welcome! Make sure to join the telegram group that we are using as our main means of communication.

Hi @Piracalamina, I am Ken an Outreachy Intern and it's a pleasure to be here. I'm interested in contributing to WikiCurricula and tried joining the Telegram group using https://t.me/+4a97Rx89h441MjIx but it keeps failing.

Any idea why this is the case? Thanks

Hello, I am Gonza Gertrude. I would like to contribute to this project. Thanks

Hi and thank you for your interest! Please check thoroughly https://www.mediawiki.org/wiki/New_Developers (and all of its communication section!). The page covers how to get started, assigning tasks, task status, how to find a codebase, how to create patches, where to ask general development questions and where to get help with setup problems, and how to ask good questions. Thanks a lot! :)

Hi @Piracalamina, I am Ken an Outreachy Intern and it's a pleasure to be here. I'm interested in contributing to WikiCurricula and tried joining the Telegram group using https://t.me/+4a97Rx89h441MjIx but it keeps failing.

Any idea why this is the case? Thanks

Finally found my way into the Telegram!

Also, I opened a pull request on the first micro task by documenting a detailed guide on how contributors can get their local setup going. It's on https://github.com/wikicurricula-uy/wikicurricula-boilerplate/pull/8

Looking forward to your feedback. Thanks!

Hello, My name is Emmanuel. I got approved for the next step of Outreach and I am interested in contributing to this project but am not sure what to do. i've read the participation instruction but still need help to get started can anyone help please. Thank you.

Hello @GonzaGertrude, Thanks for your interest! please join the telegram group https://t.me/+4a97Rx89h441MjIx
Later I'll share a poll so we can set up a time to meet.
Currently I'm quite beind on pull requests approval but feel free to make a new one if you find a task that does not have been worked on yet

Thanks @CodeHadIt , I expect to review the PRs today

Hello everyone,
I was able to solve one of the microtasks relating to the translation of the boilerplate's to English
Link to the Pull

Hello @Piracalamina . Please I would like to contribute to this project. How will I be assigned an issue?

Hi and thank you for your interest! Please check thoroughly https://www.mediawiki.org/wiki/New_Developers (and all of its communication section!). The page covers how to get started, assigning tasks, task status, how to find a codebase, how to create patches, where to ask general development questions and where to get help with setup problems, and how to ask good questions. Thanks a lot! :)

Hey @282001, please clone this repo https://github.com/wikicurricula-uy/wikicurricula-boilerplate. Then pick a micro task above that has not yet been checked and then do it. You can also check the issues tab in the aforementioned repo, there are open issues.
All the best!

Good day @Piracalamina, please do you mind explaining what value "grade" is in the returned data? I can't seem to find it.

I can see "subject", but not "grade".

P:s: This is in reference to the fourth item in the UI Improvements list

Thank you!

Hello @Piracalamina, I have translated variables and function names from italian to English. Here is the link https://github.com/wikicurricula-uy/wikicurricula-boilerplate/pull/20. In case of any errors, let me know so I can fix them.
Thanks

Hey, there! If you used to be at Wikicurricula's telegram groupchat and I kicked you out, it was an accident! Please direct message me and I'll add you again

Hey @Piracalamina , I submitted the PR for the task no 2 in UI Improvements - ordering the articles based on number of refrence on x-axis,

Please review it and let me know any changes to do !!

Hi @Piracalamina , i submitted a PR for an issue on the github repository "improving the design of the select box". I'll be waiting for your review and changes.
https://github.com/wikicurricula-uy/wikicurricula-boilerplate/pull/30

Hi @Piracalamina, I have implemented and deployed Wikicurricula for Ghana's national curriculum, with reference to the English Wikipedia. Furthermore, I have documented the process in the README.md. Here is a link to my PR https://github.com/wikicurricula-uy/wikicurricula-boilerplate/pull/35

Right now, the tool's user interface is basic, I suggest we add more functionality hence I am going to open new issues.

Hi @Piracalamina, I notice this task "Write documentation at the Readme file on how to feed the visualization with data from a new curriculum. The instructions should include building and running the Wikidata query. Remember that, for the time being, only Uruguay's and Ghana's curriculum are structured in Wikidata." has not been done and yet it is ticked. Should I do it?

Hello @Piracalamina @SPatnaik, I realized that my first implementation of Ghana's curriculum wasn't right so I have reimplemented it. I have updated the README with the steps I took. I have also added an html file called ghana.html, which display's Ghana's curriculum. Then, I added an href in index.html to link to ghana.html.

However, Since the subjects.csv and query.csv contain hardcoded data about Uruguay, I decided to use this link in href https://tools-static.wmflabs.org/ghana-national-curriculum/GhanaWikiCurricula/visualization/ . This way Ghana's data is preserved.

Also, I added a query.py file which makes an API call to wikidata in order to retrieve Ghana's curriculum and then write the article names to query.csv and also the subjects to subjects.csv.
I deployed the curricula to Toolforge.

What can we automate?
Dynamically fetch curriculum data from the API. for example when a user is viewing Uruguay's curricula and clicks on the link which goes to ghana.html, It would be cool If the API fucntion (query.py) "sensed" this and made a call to Wikidata.
Should I open an issue about that?

I will appreciated your feedback!

Heyy @Piracalamina and @Sannita , can you please let me know that 1st task mentioned under the UI Improvements ,

" In the Spanish version of the data-gathering script, the feature that counts the templates (avisi) added to an article is not working. Fix and enable this feature." ,

It has been completed or not ? And what the templates mean in the task ?

As, I think template is referring to this blank screen which is not displaying the graphs as our main visualization -> index.html do , and we need to fix the behaviour of avisi, so when we click on the sorting values, the graph should be appear ,

template.png (927×1 px, 27 KB)

please correct me if I am approaching it in wrong way

Thankyou Mentors !!

Hello, @GonzaGertrude
Dynamically fetch curriculum data from the API. for example when a user is viewing Uruguay's curricula and clicks on the link which goes to ghana.html, It would be cool If the API fucntion (query.py) "sensed" this and made a call to Wikidata.
Should I open an issue about that?
-> to answer this question, the problem that I see here is that the excecution of bot.py takes quite a long time.

I think that the Wikidata query and the excecution of bot.py should be done automatically but scheduled (monthly or weekly or daily). This should give us 2 voci files, one for Uruguay and one for Ghana, which are periodically updated.

Then, when the user clicks on the link, the visualization will switch between ghana's voci file and uruguay's voci file.

What do you think? If it seems sensible, please go ahead and create the issue :D

Hello, @Urmilasc !
We've deprecated that issue in favour of https://github.com/wikicurricula-uy/wikicurricula-boilerplate/pull/46 which we think will solve it.
In this context, templates are pieces of wikitext that users add to a Wikipedia article to give a sort of warning that the article needs to be improved. More info here: https://en.wikipedia.org/wiki/Wikipedia:Templates
So, as well as counting images and references, it's useful to count templates, since Wikipedia editors may use our visualization to identify which articles need to be improved.

Let me know if I'm explaining myself :D

Hello, @GonzaGertrude
Dynamically fetch curriculum data from the API. for example when a user is viewing Uruguay's curricula and clicks on the link which goes to ghana.html, It would be cool If the API fucntion (query.py) "sensed" this and made a call to Wikidata.
Should I open an issue about that?
-> to answer this question, the problem that I see here is that the excecution of bot.py takes quite a long time.

I think that the Wikidata query and the excecution of bot.py should be done automatically but scheduled (monthly or weekly or daily). This should give us 2 voci files, one for Uruguay and one for Ghana, which are periodically updated.

Then, when the user clicks on the link, the visualization will switch between ghana's voci file and uruguay's voci file.

What do you think? If it seems sensible, please go ahead and create the issue :D

Hello @Piracalamina, I have worked on this issue. Here is my PR https://github.com/wikicurricula-uy/wikicurricula-boilerplate/pull/62
I will appreciate your feedback.