Git Product home page Git Product logo

proca's Introduction

Proca Progressive Campaigning

  • provide a state of the art tool
  • integrate with the campaign website so no new CMS to learn
  • work with coalition and GDPR

You want to engage your members and ask them to take an online action? Well, you won't be the first organisation, and you will soon realise that they aren't any decent looking petition tool that are easy to install and configure.

And this is what this tool solves.

Guiding principles and design

  • Focussed: this tool should do as little as possible. It doesn't have to be managing the content/layout of your campaign. You have already a prefered CMS for that, or can spin a wordpress one in no time. We provide action/petition widgets that you can embed into your site, we don't want to be yet another site you need to manage
  • Build relationship: We don't believe a petition is only a step in your campaign. Collecting their information so you can contact them later for more actions and campaigns
  • Privacy: We will always ask the people taking action to consent to their contact details being shared with your org. We will never use these contacts without their/and your consent.
  • Sharing is caring: We have seen how supporters can use social media to convince others to join. We see the sharing step as a key component to this tool
  • Integrated: with your CRM/mailing list. If your supporter consented it, it should be as simple as possible to have their contact detail into your mailing plateform. CSV download is not simple, timeconsuming and errorprone.
  • Support coalitions: A successful campaign will have multiple partners. We make it easy to aggregate the signature counts, we make it easy to have multiple widgets for each partner (with different consent)

Embeded in your existing website

Introducing a new tool is often a source of frustration for the users (new login, new interface to learn, new workflow, new bugs) and extra work for the IT team (adapt the layout). There are as well the issue of introducing a new domain/subdomain (weak SEO, potential confusion for your supporters).

Our solution? This petition tool is as transparent as possible and embed the action into one (or several) of your existing pages).

Full encryption mode

If the campaigner organisation provides an encryption key (based on NaCl, probably the best elliptic curve encryption solution), we store the signatures and actions encrypted. We will not be able to read them anymore. Even if the bad guys compromise the security of our server, they will not be able to read any personal data either, because the campaign organisation (having the key) is the only one that can

This simplify GDPR and other privacy compliance: we do not store any personal data, only encrypted blobs of data that we can't read.

Privacy

We are fully GDPR compliant. As part of a mandatory element of the signature form, we do ask the signatory to consent to be contacted, and record that information.

Performance

Benchmarked at > 1'000'000 signatures per hour on a 16 core

Technology

Front and back are clearly separated. the backend is a bunch of APIs clearly documented (so it's easier to build a different front end or switch the back end) graphql

front-end: react Back-end: elixir

Setup and 3 min intro

  • git clone this repository
  • yarn (or npm to install the dependencies)
  • cp .env.example .env and put your login + pwd
  • yarn pull 42 (the action page id as seen in the backend)
  • edit src/tmp.config/42.json, adjust the steps, configure the components, change the color, whatever)
  • yarn start: runs a local server with the widget
  • yarn build: generates the widget under d/{actionpage.NAME of the widget}
  • yarn push: save the local config (under src/tmp.config) to the server

Contributor Covenant

Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.

proca's People

Contributors

tttp avatar dependabot-preview[bot] avatar weblate avatar marcinkoziej avatar milotype avatar dichter avatar iared avatar campaxadmin avatar goadx avatar orangesunny avatar wwahammy avatar beneklins avatar scs1634 avatar mconfalonieri avatar lucaaah avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.