Fundraising tech/Components

Drupal & CiviCRM information is best accessed from our main FR-tech homepage https://wikitech.wikimedia.org/wiki/Fundraising#Drupal

edit

MediaWiki

edit
Software Description Source Documentation
MediaWiki for donations This is the version we use to accept donations. mediawiki/core in Gerrit (fundraising/* branches)] https://mediawiki.org | Upgrade
Extension:CentralNotice Display and manage banners CentralNotice in Gerrit Extension:CentralNotice
Extension:DonationInterface This generates forms and handles payment processing. DonationInterface in Gerrit Extension:DonationInterface
Extension:LandingCheck This handles landing pages for banners. LandingCheck in Gerrit Extension:LandingCheck

Other

edit
Software Description Source Documentation
Audit modules (python) Audit modules built on a Python stack. Sadly, deprecated. wikimedia/fundraising/tools
Stats parser Written in Django for some reason, has 3 tasks
  • Loads banner impressions from the sampled beacon files, parsing out banner, campaign, project, country, language, and banner display result (show/hide, hide reason), and rounding off the timestamp to the nearest minute
  • Load landing page impressions from the unsampled donatewiki and foundationwiki logs, selecting certain pages and parsing out the utm_* variables, project, language, and country
  • Count unique email clicks. For landing page impressions with a contact_id,insert utm_source, utm_ampaign, contact_id, and link_id into a table with a unique constraint on those columns, using 'ON DUPLICATE KEY' to discard clicks after the initial one for a given donor and email.

For all the tasks, it filters out certain IPs, UAs, and response codes.

wikimedia/fundraising/tools/DjangoBannerStats
Mustache Recommended templating language for all new components. TODO: MediaWiki+zordius flavored docs
Twig Legacy templating language, used in the CRM Thank You module and some minor mailing stuff.
Minor tools Currently houses: auditing, banner screenshotter, statistical queries (see also "br"), bulk mail wikimedia/fundraising/tools Fundraising_tech/tools
SmashPig Real-time listener framework and nascent payment processing library wikimedia/fundraising/SmashPig
PHPMailer Native PHP SMTP client used by some CRM modules.
Maxmind GeoIP Library we use to resolve IP addresses to a place.
Maxmind Minfraud Fraud solution we use for front-line defense.

Server applications

edit
Software Description Source Documentation
Apache httpd 2.2 The httpd web server http://httpd.apache.org/ Configuring httpd
MariaDB RDBMS backend for CRM, MediaWiki, and tools. TODO
Redis Data store for transient or high-availability information
rsyslog All persistent logging must be done through syslog.
process-control Schedules fundraising cron jobs and collects output. wikimedia/fundraising/process-control

See also

edit

A quick pre-campaign checklist.

A selection of essential systems and interactions.