Getting Started - WikipediaLibrary/TWLight GitHub Wiki

Whether you're a Wikimedia Foundation staff member or a volunteer contributor, thank you for your interest in contributing to this project! We hope this guide will provide a helpful overview of the project, both at a high level and technically, with links pointing you to further reading.

If you want to find tasks to work on, check out the Open Tasks column of the Library-Card-Platform board on Phabricator.

The Wikipedia Library

The Wikipedia Library is a program at the Wikimedia Foundation which aims to support Wikimedia's editor community through access to reliable sources of information. Projects like Wikipedia rely heavily on reliable sources and citations through core policies like Verifiability. One of the most pressing issues facing editors when they research topics to write about them on Wikipedia is paywalls. Huge volumes of reliable sources, from scientific research to books, are not free to read - editors need to either pay a subscription to access them or are required to find a local library or institution through which they can gain access. The Wikipedia Library creates partnerships with content holders to provide free access to the Wikimedia community, a program which is facilitated through the Library Card platform.


Library Card platform

The Library Card platform is a Django-based tool through which editors can browse the library's available resources, gain authorizations to access that content, and authenticate through to publisher websites.

To jump right in and start working on the code, see Local setup.

Backend

The Library Card platform is deployed using Docker, which creates three containers:

We are currently running Django 3.2. When you're reading Django documentation, please ensure you're reading the 3.2 version.

Users don't create accounts within the tool, instead they are authenticated via OAuth, logging in with their Wikimedia username. You may encounter an eligibility error screen when logging in; making your account a superuser, or setting the ignore_wp_bundle_eligible user field to True for your account, will enable you to bypass this.

See Shell scripts for guidance on the scripts available for use in running tests and generating example data.

EZProxy

We have an externally-hosted EZProxy server which we use for user IP authentication. The configuration repository can be found at WikipediaLibrary/twlight_ezproxy.