Map showing entities around the world that need photographs on Wikipedia
JavaScript CSS HTML Shell Python
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
backend
css
js
.gitignore
LICENSE
README.md
index.html
package.json
screenshot.png

README.md

Wiki Needs Pictures

Map showing entities around the world that need photographs on Wikipedia. The tool is a web application consisting in a frontend where pinpoints are placed in a OpenStreetMap layer powered by Leaflet. The data visualized coming from Wikipedia and Wikidata and represent all those entities with coordinates and with the need of a picture.

The aim of this project is to provide a simple and fun way to let people know which things around them need a photo that Wikipedia wants.

Wiki Needs Picture screenshot

Usage

Install

You need a bash console, nodejs and npm. Then you can simply npm install.

The project needs a web server to serve index.html. You can use the one you prefer.

Get data

To get all the data updated run ./backend/update.sh. You'll get all the new suggestion in data/data.csv.

You need to run this script at least once to get some data appear. If you want to make it recurrent maybe you can use a cron job.

Architecture

Backend

The backend consists in many simple scripts, one for each project imported. This permits to have many different strategies for collecting data.

By now there are 4 possibile strategies:

  • digCategory() Pages listed in a category with children.
  • digCategoryTalk() Pages that have the talk page listed in a category with children.
  • digSimpleCategory() Pages listed in a category without children.
  • SPARQL query Wikidata only, an HTTP GET with a SPARQL query to its endpoint.

Each strategy comes along with an id, in order to have some text attached. You can see current ids in js/codes.js.

Frontend

The frontend consists in a index.html template page and some Javascript scripts that load data and the map. All the data are downloaded when the webapp is loading so you will notice a slow start but a fast experience for the rest of the time. The loading time depends on the amount of pinpoints you want to visualize.

Translations

Following the KISS only little instructions are present inside the interface. Currently they are translated in English, Italian, German, French, Spanish, Japanese (thanks @nicolas-raoul) and Swedish. It's very appreciated if you want to contribute with other languages! You can find all the texts in js/message.js.