I want to fix our severely fragmented internal systems in a way to address the major inefficiencies we currently struggle with. Presently, everything is disjointed and you must join/sign up for every system separately. We use Freshbooks – an accounting system – to be our source of truth for whether or not a member is active and it’s disconnected from everything else including our key fob system, email lists, etc. This has made it difficult for us to do simple things quickly like add every active member directly to Skedda, our new schedule software. It also makes it painstakingly difficult and manual to figure out exactly who is or isn’t a B-share member.
@elrod started building us an LDAP system a while back and I’m eager to get a few more people working on the project to see this to fruition. The vision – all interactions with account(s) occur through the LDAP. LDAP is the source of truth for all member info including active billing, B-share, contact info, etc. Accurate info, easily accessible.
There are a few main components I see in this project; @elrod may have some other things to add from the work he’s done so far.
Establish LDAP system and document how backend interface for linking systems works. We can’t rely on the campfire lute stories forever and need to have some minimum knowledge so others can easily jump in to assist where needed. I think this part may already be done or close to done by @elrod.
Develop API scripts linked to actions that can be initiated in the LDAP for each of our systems. Scripts should be developed around actions that would be taken and be linked in the system in a way that makes taking action easy (I’m not familiar with LDAP systems, so not sure what this part would look like exactly). For example:
- New member joining - create Freshbooks account with new user profile and recurring invoice profile, create Skedda account, add to atxhs-announce Google Groups, add to Mailchimp update list, create Discourse account and add to hax0r group, and assign key fob number.
- Member pausing account - update associated recurring invoice profile in Freshbooks, disable Skedda account, update Discourse group from hax0r to hax0ris, and disable key fob. Similar but opposite for unpausing account.
- B-share status - when requesting to become a B-share member, send invoice in Freshbooks; when requesting refund of B-share, send email to firstname.lastname@example.org to initiate refund. Potentially another action – verify B-share? A flag added to confirm payment based on status of Freshbooks invoice.
- There are many other actions we could create in here as well, but I think these are the core 3 we should start with. Documenting any important lessons along the way (or even better, having a boilerplate script for future development) would be essential to make sure this project can be easily sustained in the future as new people work on it.
Develop new join form for our website that interacts with LDAP instead of Freshbooks. In addition to actions originating from LDAP to update other places described above, we need to develop the means to add into the LDAP via a form similar to what we have at https://join.atxhs.org/. We will have to add some additional fields like username and any other info needed to feed into the other systems created.
I’m able to serve as project manager on this – organize tasks, provide API keys/doc, code review/repo management, and anything else needed – I just don’t have the bandwidth to do the scripting myself and I lack a lot of knowledge when it comes to LDAP systems.
This is a vital project that is going to set us up to properly handle the kind of growth we really want to see for the space. If you are at all interested, speak up!