Fundraising tech/Components

Drupal & CiviCRM information is best accessed from our main FR-tech homepage 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)] | 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.

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 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.