CiviCRM Code Sprint in NY - A Report Back

Published
2010-09-19 19:34
Written by
We just completed a CiviCRM Code Sprint in NY. A big tip of the hat to Rayogram for providing the space and coordinating the logistics, especially to Kyle Jester. Thanx to Chang and Matt from emotive LLC for providing breakfast and lunch during the sprint. We had 14 folks on Saturday and 12 folks on Sunday. It was an incredibly productive sprint with lots of great presentations and a fair amount of code and improvements towards 3.3. The main goal was to improve some features in CiviCRM and incorporate some of the work done by the community. Here is a recap of some of the things we accomplished during this sprint:
  • Lanette M started work on a document for someone who is trying to migrate data from disparate sources into CiviCRM. She hopes to produce a set of checklists and a list of things for people to think when planning such a migration. She hopes to re-use and bring together some of the existing documentation and add some of her own perspectives.
  • Kurund and Kyle were hard at work upgrading the jQuery library and associated widgets to v1.4. They also switched the existing contribution widget from flash to javascript. This will give the users a lot more flexibility in customizing it, and also help us to reuse the widget in other places.
  • Deepak and Andy worked on getting a version of a grid based entry system (think of a matrix of checkboxes and potentially text boxes) using multiple custom groups. Andy wanted to pre populate these record fields when someone edited this custom group. This is a good use case of introducing a hook_civicrm_buildFormPre (and a corresponding: hook_civicrm_postProcessPre)
  • Frank Gomez worked on improvements to the CiviCRM <-> Views2 integration. In specific, reminding the user to add the custom group table entry to Drupal's settings.php file whenever a new custom group is created. He also started investigating a View for exposing CiviMail Content to the website
  • Robbie and Josh helped us remove some hard coded paths in our installer and drush integration. Robbie went thru the drush code and made lots of comments, suggestions and patches on how to clean it up. Josh provided some valuable feedback on the install script
  • Tim O gave a really nice presentation and overview of how they use CiviCRM for college athlete recruiting at ARMS. He demo'ed their SMS feature which records both outgoing and incoming SMS (via email with time delimited tokens). He also showed some of the ways they've used to avoid hard coding IDs and allowing the user to determine and change various mappings (via a Drupal form). I worked with Tim on trying to build tools so developers can use the "groupName:fieldName" token for custom fields instead of our current convention (custom_FIELDID). He also spoke a bit about their deployment process and how they manage their 100+ Drupal/CiviCRM sites. Tim has promised to blog about their SMS work in the next couple of weeks. They have also implemented an SMS interface to Twilio. Tim also showed us a pretty impressive and flexible rules based system that they have built that allows them to alert coaches / staff of any potential NCAA violations :). Since most of their sites have a small number of contacts (100 or so) that they have a lot of interaction with, they've exposed high level acidity information on the search page via a custom smarty function (that formats data present in a custom group) and customized templates.
  • Brian S and Kurund worked on adding a "max priceset" limit to pricesets. This will enable CiviEvent admins to create event "sessions" (paid or free) and set a limit on the number of users that can sign up for each session.
  • Matt Briney and Chang gave a nice presentation on some of the awesome work that emotive LLC has been doing. In the true spirit of Open Source Sofware, emotive LLC discusses the changes they want to make on various forums. They then take the next step of blogging about it and distributing their changes via Github. Matt described the multi-threaded CiviMail Job changes (now in svn for 3.3) and its impact on scalability (they've achieve a rate of 80K emails per hour). They also described their batch import changes. The code is available on gothic). Chang has described this process in a detailed blog post. Matt worked on a postProcess hook which allows the user to bypass the contribution page. This is a pretty simple and neat implementation. This code is also available on github.
      In addition to the above emotive LLC has also built tools to help them deploy and manage Drupal/CiviCRM sites on RackSpace Cloud Sites using drush and custom code. This gives them a good management console that they use to upgrade / backup and monitor their sites. They've also built a collection of email utilities that allows them to manage and maintain their CiviMail installs. One of the tools is a one-time email suppression list. Another one is the ability to form groups from the mailing statistic tables (e.g. all the folks who opened an email or all the folks who clicked on a link). Chang is keen to migrate this functionality to CiviReport.
    Looking back, we did accomplish a lot in 2 days. Thanx to all the people above who contributed their time and energy to making this event a great success. It feels good to see these individuals and organizations like Rayogram and emotive to be so actively engaged and involved in the community. We do hope that other organizations follow their lead and help take CiviCRM to the next level :) For folks in Europe, we have another code sprint in Bristol, UK scheduled for Oct 2 - Oct 5 (Sat - Tue). Please do consider joining us for the whole time (or even part of the time). You can register here. We also have a user and administrator training and developer training in London on Sep 30 - Oct 1. Please do consider joining us for all these events :)
    Filed under

    Comments

    Event sessions! Excellent, that's just what I've been needing. In fact, I was just getting ready to add a bunch of duplicate events to my db to mimic "sessions." Maybe I should hold off on that, is this feature planned for an upcoming release?