Skip to content

Instantly share code, notes, and snippets.

@hugopeixoto
Last active March 27, 2024 18:31
Show Gist options
  • Save hugopeixoto/b2b611a4c61b97050c2bbe876deed566 to your computer and use it in GitHub Desktop.
Save hugopeixoto/b2b611a4c61b97050c2bbe876deed566 to your computer and use it in GitHub Desktop.

Abstract: Can you explain the whole project and its expected outcome(s)

saucy is an membership management tool for NGOs. It stores basic member information (identification and contact), keeps track of membership fees and sends periodic payment reminders. It currently integrates with portuguese payment methods (MBWay and Multibanco) to make paying fees easier and to automate their accounting, instead of only relying on bank transfers.

saucy also exports some basic numbers that help when doing the anual accounting report. It also exports membership lists if needed for General Assemblies, elections, or mailing lists.

The goal of the project is to give free software tools to small civil society organizations so that they can efficiently manage their members and not have to spend much time dealing with payment busywork and instead focus on their real problems.

Technically speaking, it's a web application developed using Ruby on Rails, doesn't require javascript to run, and it's licensed as AGPL.

Have you been involved with projects or organisations relevant to this project before? And if so, can you tell us a bit about your contributions?

This project was initially developed for ANSOL (ansol.org: Portuguese Free Software Association) by me, as one of its members. We were using CiviCRM initially, but we were not happy with it and most of our meetings were dominated by managing membership fee payments.

Ever since ANSOL implemented saucy, most fee payments are now done via MBWay/Multibanco instead of bank transfers and processed automatically by saucy, saving us a bunch of time.

My contributions were discovering of our use cases, implementing the basic version of the project, and migrating our data from CiviCRM to saucy.

Disclaimer: I'm currently the Vice President of the Board of Directors of ANSOL (2024-2026).

Explain what the requested budget will be used for? Does the project have other funding sources, both past and present? (If you want, you can in addition attach a budget at the bottom of the form)

saucy was developed to solve ANSOL's specific problem, and as such it's not a very flexible tool. If this is to be used by other organizations, some work needs to be done. The following areas need work:

  • Branding/Parameterization: there are a bunch of hardcoded references to ANSOL that need to be parameterized. Additionally, ANSOL charges a fixed amount per year, but some NGOs allow the members to specify how much to pay per year (within certain limits). saucy needs to support this;
  • Translation: saucy currently supports Portuguese and English, but the platform is not fully translatable. Some strings are hardcoded.
  • Documentation: The project has a readme file with some lightweight instructions, but if this is to be used widely there is the need to develop a user manual and a proper introduction page;
  • Multi-tenancy: As much as I'd like for every organization to host their own instance of saucy, this will probably prove difficult. They'd be replacing the bureaucracy of managing payments with the work of sysadmining this system. So there is probably the need to share a single instance between a bunch of organizations to save on sysadmin workforce requirements;
  • Styling: saucy doesn't have almost any CSS, relying on default fonts and colors. It's mostly forms and tables, so it's not a big problem, but there's no dark mode and not everything is consistent. Some work needs to be done;
  • Payments: saucy integrates with a single portuguese payment provider that does not support Direct Debit. We want to modularize this and integrate with other providers that allow this;
  • Authentication: saucy supports logging in with username/password, no 2FA. Given the nature of the data stored in this system, implementing 2FA and/or SAML integration is important.

Estimated budget (at a rate of 50eur/h, or ~2000eur/week):

  • Branding/Parameterization: 4000eur
  • Translation: 2000eur
  • Documentation: 6000eur
  • Multi-tenancy: 6000eur
  • Styling: 2000eur
  • Payments: 4000eur
  • Authentication: 2000eur

This project has had no funding sources so far.

Compare your own project with existing or historical efforts.

The only other tool we know of that's in this space is CiviCRM. CiviCRM, used by many large organizations, didn't really fit ANSOL: it doesn't exist on its own (it is installed on top of a CMS like drupal or wordpress, which we were maintaining only to support CiviCRM), and we found it hard to use and configure for simpler cases.

saucy's goal is to provide a simpler standalone experience (with a lot less features), focusing only on membership management.

What are significant technical challenges you expect to solve during the project, if any?)

The biggest technical challenge is making saucy parameterizable without compromising on usability.

Making this easily deployable and configurable is also a challenge. While more technically oriented organizations have no problems deploying a docker image, making this deployable to non-tech organizations will probably prove to be a challenge.

Describe the ecosystem of the project, and how you will engage with relevant actors and promote the outcomes?

I'm a member of another portuguese organization working on digital rights (D3 - direitosdigitais.pt). They don't use any tool whatsoever, and I've seen that they suffer from the same problem: members don't know when they have to pay their fees and the feedback on those payments take weeks. I mentioned saucy and they want to start using it, so they'll be the early adopters outside of ANSOL as soon as it's parameterizable.

Wikimedia Portugal has also shown interest in exploring saucy to manage its members.

ANSOL is a member of PASC: a federation of civil society organizations in Portugal (~60 organizations). We've seen that PASC itself has the same problems with membership management, and they know that their member organizations would benefit from these tools. My goal is to engage with PASC to spread the word among their member organizations.

The goal is to focus on Portuguese organizations at first. In a second phase, it might be worth exploring organizations in other countries (which will require implementing other payment providers).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment