- Strategy and Development
- Drupal 7 and CiviCRM
- Event Registration
- Membership Management
- HTML, CSS, JS, PHP, SQL, Git, Docker
CiviCRM is an open-source customer relationship management system, primarily serving nonprofit and civic sector organizations.
CiviCRM core includes membership features, making it a great relationship management choice for member supported sites. CiviCRM’s core team and active open-source community produce quality documentation, ongoing development and issue tracking. Beyond the core product, contributed extensions offer additional features. Maintainable customization is enabled through a comprehensive API, hooks and command line tools.
For this project, a contributed discount module adds automatic and manual discount codes. Another contributed module provides integration with Drupal’s popular Webform module. The module exposes live CiviCRM form data within webforms, supporting a custom membership type registration and a self-managed membership form.
Customizing CiviCRM is efficient and maintainable. For this project, a custom extension adds logic to event templates, enabling staff to easily publish unique event types in a non-technical way. Another custom extension hooks into a CiviCRM profile, creating a restricted searchable membership directory based on member status with conditionally hidden fields.
Development is supported by Docker, a container platform that enables better collaboration and optimization.
Lando is built on Docker and further simplifies local development. Some of the many advantages to these tools include a development environment that mimics production, configuration stored in the repository, and quickly spinning up services and tools for faster development. Version control is managed with Git.
Data mapping in the discovery phase ensures historical data and the existing Drupal membership system are imported into CiviCRM in a way that serves the organization going forward.
For this project, responsible data mapping required a multi step approach. First, the organization’s needs determined the optimal way to organize CiviCRM. Member types, relationship types, classifications, profiles and custom fields were determined based on existing data and future needs. Next, recent data and historical member information were compared, inconsistencies reconciled and known database errors fixed. Finally, accurate data was migrated to the new system based on data mapping decisions.
Drupal roles are synced with CiviCRM based on status rules, allowing the membership system to integrate seamlessly with the front end and Drupal’s account features.
Updating the membership system replaced much of the existing site’s functionality. Leveraging CiviCRM’s deep integration makes the site easier for staff to manage and presents users with a more consistent experience. Beyond CiviCRM, inherited projects include a member controlled event calendar requiring extensive updates. User and staff impact drive prioritization and thorough testing ensures a smooth transition to the new membership and event system.