electronic frontier foundation
play

Electronic Frontier Foundation https://www.eff.org/ What's the - PowerPoint PPT Presentation

Micah Lee micah@eff.org @micahflee Web Developer at Electronic Frontier Foundation https://www.eff.org/ What's the Electronic Frontier Foundation? What's the Electronic Frontier Foundation? US-based non-profit Issues include: full of


  1. Micah Lee micah@eff.org @micahflee Web Developer at Electronic Frontier Foundation https://www.eff.org/

  2. What's the Electronic Frontier Foundation?

  3. What's the Electronic Frontier Foundation? ● US-based non-profit ● Issues include: full of lawyers, – Free Speech technologists and – Fair Use activists – Privacy ● Focuses on digital – Security civil liberties – DRM – Internet Freedom ● We've been using – Jailbreaking and loving CiviCRM – Encryption, anonymity, since October 2011 etc.

  4. EFF Has Special Needs ● Membership logic is crazy ● The same premiums are offered at various prices ● We make tons of donate pages for different purposes ● Donate pages must be cached ● Design and simplicity are very important ● PCI Compliance is obnoxious

  5. TODO: Membership Levels screenshot

  6. Some Hacks We Had in Place ● Three versions of every membership type (one-time, recurring, variable price) – Total of 17 membership types in CiviCRM ● Three versions of every premium (one-time, recurring, variable price) – We have 7 different premiums – But we store 21 different premiums in CiviCRM

  7. Too much traffic, too little caching ● On each CiviCRM contribution page load: – Loads Drupal into memory – Loads CiviCRM into memory – Takes lots of server resources – Takes lots of time ● EFF's popular action alerts get 30,000 signatures – 30,000 signatures = 30,000 thank you page loads = 30,000 Drupals and CiviCRMs loaded into memory (~240 gigabytes of RAM?) – 1 crashed web server :( ● Caching solves this problem

  8. Lots of Donate Pages ● We want to know contribution sources , but we don't track email clicks for privacy reasons ● We used to have separate donate and join pages ● We used to have four versions of each contribution page: Donate, Donate PayPal, Join, Join PayPal (CiviCRM 4.2 fixes this, yay!) ● We create a new donate page for each: – Fund-raising campaign about a specific issue – Fund-raising appeal email – Action alert thank you page

  9. Ugly Hacks ● Way too many custom templates ● Hundreds of Drupal URL aliases ● Stupidly complicated node id in URL ● Hooks, hooks, hooks! ● Tons of custom JavaScript that changes everything – But horrible experience for NoScripters ● Skip confirmation page hack (now in CiviCRM 4.2!) ● I spoke about this at CiviCon SF in April 2012

  10. TODO: HTTPS Everywhere page screenshot

  11. Farewell, Authorize.net ● If you accept Authorize.net, you have to be PCI complaint (and pay auditors tons of money to find security false positives with automated tools) ● Authorize.net refuses to fix their bugs, even after we spend hours on the phone with them explaining their problem and how they can fix it (just ask Leez) ● We wanted better rates, better customer service, better development environment

  12. Hello, Stripe!

  13. Note about Stripe ● We're now using Stripe on our donate pages! ● Joshua Walker (drastik) recently wrote a CiviCRM Stripe payment processor http://civicrm.org/extensions/stripe-payment-processor ● It's brand new! (we still need to test it) ● Our online store uses Ubercart, with no good Stripe module yet (we're working on it) ● They have run fun hacker challenges, just google for “stripe ctf”

  14. So we decided to REINVENT THE WHEEL (sort of)

  15. Donate Pages Outside of CiviCRM?! ● If we build our own system – We have 100% control over look and feel – We can cache our donate pages so they can sit behind load balancers , reverse proxies , content delivery networks , clusters galore ! (we don't actually do all of this, but it's nice that it's an option) ● CiviCRM has a great API – Easy to push contributions into the database – We can go crazy with membership logic – Premiums however we want them ? Sure.

  16. I find this chart confusing, but those numbers are in millions USD!

  17. http://wiki.creativecommons.org/Single_click_donations_with_CiviCRM (thanks, nkinkade!)

  18. What We Came Up With ● Creative Common's OneClick code , heavily hacked, customized, and added Stripe support ● Drupal content types: Donate Page , Premium ● Custom panels panes defined in code, including donate form that displays, validates, and hooks into OneClick ● Panels node_view variants : Donate Page, Action Alert Thank You Donate Page ● Lots of JavaScript, CSS, and images

  19. Donate Page

  20. Action Alert Thank You Page

  21. Thanks For Donating / Tweet

  22. Editing Donate Pages

  23. Endorsement

  24. Editing Premiums

  25. Panels

  26. NoScript

  27. Demo Time Open browser and show off all the fancy JavaScript

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend