OpenVeda Playbook: CiviCRM
Your guide to contributing to the world's leading open-source CRM for the civic sector.
1. The "Why": Mission & Impact
- The Mission: CiviCRM is an open-source Constituent Relationship Management (CRM) platform designed specifically for the needs of non-profits, advocacy groups, and other civic sector organizations.
- Your Impact: Your code helps thousands of non-profits manage their members, donors, and events more effectively, allowing them to focus on their mission of making the world a better place.
- Why it's great for your career: Contributing to a large, enterprise-grade CRM application is a fantastic experience. You will gain deep experience in PHP and the Symfony framework, as well as JavaScript (AngularJS and transitioning to modern frameworks). It shows you can work on a complex, data-heavy application with a long history.
2. The "What": Tech Stack
- Core Backend: PHP, built on the Symfony framework.
- Core Frontend: A mix of Smarty (a PHP templating engine), jQuery, and AngularJS. They are in the process of modernizing the frontend.
- Database: MySQL.
- Key Tools: GitHub for code, Mattermost for chat, and a dedicated Stack Exchange for Q&A.
3. The "How": Your Onboarding Journey
3.1: Join the Community
- Primary Channel (Chat): The developers are very active on their Mattermost server.
- Secondary Channel (Q&A): For technical questions, the CiviCRM Stack Exchange is the best place.
- Link: CiviCRM Stack Exchange
3.2: The Setup Guide
- Official Guide: They have a very comprehensive guide for setting up a development environment.
- OpenVeda Pro-Tip: Use the "buildkit" method described in their documentation. It's a command-line tool that automates the entire setup process and is the most reliable way to get started.
3.3: The Contribution Workflow
- Official Guide: They use a standard GitHub PR workflow.
- Key Point: All PRs must have corresponding tests. Their documentation has a great guide on writing tests.
4. GSoC History & Focus Areas
- Historical Focus: CiviCRM is a frequent GSoC organization. Projects often focus on modernizing the user interface (e.g., rewriting a screen in React/Vue), building new integrations, and improving the search and reporting capabilities.
- What Mentors Look For: A problem-solving mindset. They value contributors who can not only write code but can also understand the needs of their non-profit users. Making a small bug fix or improvement before GSoC is a great way to show your commitment.
5. Key Repositories to Know
- Main Monorepo: github.com/civicrm/civicrm - Contains the core, packages, and extensions.
6. Find Your First Task Right Now
- The Golden Link: They use a "good first issue" label on GitHub.
7. The Unwritten Rules (Mentor Insights)
- Understand the User: Remember that the end-user is often a non-technical person at a non-profit. Usability and clarity are extremely important.
- Tests are Not a Suggestion: Your PR will not be merged without tests. Learn how to use their PHPUnit testing framework.
- Be Active in Chat: The Mattermost chat is the best place to get a feel for the community and get real-time help from core developers.