Upcoming Events

CiviCRM Europe FOSDEM training camp – Brussels
February 8th, 2010
This 2-day hands-on session is targeted at experienced users, integrators and (more...)

NYC CiviCRM Meeting - February 2010
February 9th, 2010
This next NYC meetup will feature a case study (TBD), group discussions and a (more...)

San Francisco CiviCRM Meetup - February 2010
February 10th, 2010
Come meet others from the Bay Area who are interested in, using or developing (more...)

CiviCRM Seminar - London
February 26th, 2010
MTL Software Solutions are hosting a free seminar at our Central London offices (more...)

CiviCRM Seminar - Dublin
March 18th, 2010
MTL Software Solutions are hosting a free seminar at The IBOA, Stephen St (more...)

CiviCRM User Training - Atlanta (pre NTC)
April 7th, 2010
This full-day hands-on training session is aimed at non-profit staff and (more...)

Configuring and Customizing CiviCRM - Atlanta (after NTC)
April 11th, 2010
This hands-on 1-day training session is targeted at administrators, integrators (more...)

CiviCRM Developer Training - Atlanta (after NTC)
April 12th, 2010
This hands-on 1-day training session is targeted at experienced developers who (more...)

Configuring, Customizing and Extending CiviCRM - San Francisco (before DrupalCon SF)
April 18th, 2010
This hands-on 1-day training session is targeted at administrators, integrators (more...)

CiviCRM User Training - San Francisco (before DrupalCon SF)
April 18th, 2010

This full-day hands-on training session is aimed at non-profit staff and (more...)

CiviCon San Francisco 2010
April 22nd, 2010
Join us for the first ever CiviCon in San Francisco this April! CiviCon brings (more...)

CiviCRM Components

Tools for engaging your supporters...

CiviContribute


CiviEvent


CiviMail


CiviMember


CiviReport


lobo's blog

Not Just a Contact Database

These optional components give you more power to connect and engage your supporters.

  • civiEVENT

  • Online event registration and participant tracking.

  • civiMEMBER

  • Online signup and membership management.

  • civiMAIL

  • Personalized email blasts and newsletters.

  • civiREPORT

  • Report generation and template management.

CiviCRM User, Integration and Developer Training Schedule for first half of 2010

Fri, 01/08/2010 - 17:48 — lobo

We have quite a few paid training events lined up for this year. You can read some of the reports on prior trainings on our blog. Participants who have attended these trainings have remarked as to how much it has helped demystify CiviCRM for them (and their clients). Learn some valuable tips and tricks from the core CiviCRM developers and help the project! We offer a User training mainly for the CiviCRM end user / newbie, an integrator training for the CiviCRM administrator and a developer training for folks who want to extend and customize CiviCRM. Our current training schedule is:

CiviCRM integration with Drupal Rules module

Sun, 12/13/2009 - 15:40 — lobo

Workflow has been an important piece missing from CiviCRM. We figured that integrating with the Rules module in Drupal would address this problem. I decided to tackle it on as a weekend project :)

Kudos to the rules developer, Wolfgang Zeigler for designing AND documenting an excellent module. The developer documentation is very comprehensive and along with the integration modules, i was able to write an integration module in a few hours. The source code for the module can be found in our svn repository

We hope to address and answer some of the integration questions with the community, similar to how the Views Integration Module has been developed. CiviCRM has got pretty good hook support, so I suspect adding extensive rules support is very feasible, i.e. fire rules based on CiviCRM hooks. We need to answer a few other questions to help us move this integration forward in a fruitful manner:

( categories: )

Extending contact demographic information with a custom group

Tue, 12/08/2009 - 03:01 — lobo

We are working with PTP and Dharmatech to incorporate their work on Canvass and Phonebank into CiviCRM v3.1. Initially we plan to package and release this as the civicrm_canvass drupal module

As part of this work, we need to "extend" the core demographic information in a seamless manner. CiviCRM holds the gender / birth date / deceased date as core fields. However PTP also wanted to collect additional demographic information: ethnicity, primary language, secondary language and number of kids. We plan on storing this additinal demographic data as a custom group. We had to inject this custom group into the demographic section for the contact view and edit forms. We also wanted to hide the custom group showing up as a tabbed pane in the contact view screen.

We accomplished all this using the all powerful and mighty hook system. We could inject a complete custom group into the edit field by implementing the buildForm hook and using some internal CiviCRM functions

( categories: )

Looking for Beta Testers for the School Module

Fri, 12/04/2009 - 14:52 — lobo

Some of you'll are aware of the work i've done for The San Francisco School using Drupal 6.x / CiviCRM 2.2. You can read more technical details about this project on my blog.

Database

  • Maintain name/email/phone/address information for people associated with the school (students, staff and parents)
  • Maintain relationships between parents and their children
  • Maintain relationships between a teacher / advisor and their students

Current Features deployed at SFS

  • Give all parents and staff a login/password
  • Online signups for all Parent Teacher Conferences
  • Online signups for all extended care activity (classes after school)
  • Sign-in / Sign-out for students attending extended care
  • Computation of how many "activity" blocks a student has spent on extended care
  • Parent viewing of the various extended care activities their kids have attended in the past
  • Online maps of "Where we Live" of the school families
  • Online directories of the schools and grades.
( categories: )

Handling Attendance for Extended Care Activities in CiviCRM

Tue, 12/01/2009 - 19:30 — lobo

This is a continuing series of blog posts on deploying CiviCRM at San Francisco School. In the previous blog posts we discussed how to expose relationship information in a profile and how to manage parent teacher conferences. There are also some slides explaining the module from a recent training seminar

Our latest project was automating the extended care (classes before and after school) system. The previous process was quite manual and labor intensive (and error prone). The attendance sheet was printed (via a CiviReport) from the students signed in. The students queued up and were signed into the extended care program. Some of the students had to be manually written in (if they were not signed up). At the end of the day, the parents would pick up the child and locate the childs name in the multiple sheets and sign them out. Typically 10-20% of parents would not sign their children out. The business office would then take this piece of paper and then calculate the "activity blocks" (based on time spent in extended care) and enter them in an excel spreadsheet. There were a few exceptions to the rule (children of staff, students who signed up for unlimited extended care and some activities are free)

( categories: )

Final Call for CiviCRM / Joomla Developers at Joomla Dev Camp, NY, Dec 5-6

Tue, 11/24/2009 - 03:48 — lobo

Worried that CiviCRM integration with Joomla is not keeping pace with Drupal? Wanna take CiviCRM / Joomla integration to the next level? Want better permissioning support for CiviCRM in Joomla? Want more front end exposure of CiviCRM in Joomla?

If you want any (or all of the above), then do attend the Joomla Develoepr Conference in New York from Dec 5 - 7. We definitely need more participation and support from the CiviCRM/Joomla Developer community to help bridge the gap and strengthen the integration. This is a great time and moment for CiviCRM/Joomla to take the next leap forward.

Details and event registration are found here: http://opensourcematters.org/devconferenceinformation.html (note the reg form uses Civi for event info/registration!).

We are looking to put together a team of Joomla+CiviCRM developers to attend and work together at the camp. We currently have 2 confirmed developers attending the camp, and need at least 2-3 more developers to make progress on any of the above topics. You have to be experienced with PHP and be familiar with the internals of CiviCRM or Joomla to help out.

For those of you who are non-programmers, encourage / sponsor / coerce your local programmer / consultant / development partner to attend the conference

( categories: )

Report from the CiviCRM testing sprint in San Francisco

Wed, 11/18/2009 - 17:36 — lobo

The past two days a group of us gathered at the Mitchell Kapor Foundation offices in downtown San Francisco for the first CiviCRM Test Sprint. Some of the highlights of the event were:

  • Introducing the concept of testing and our current framework for unit testing. CiviCRM uses PHPUnit for unit testing. We also use XDebug for code coverage. You can see the latest results of our testing here

Creating and Managing your own contact types and sub types

Thu, 08/27/2009 - 16:42 — lobo

We've been having quite a few requests for the ability to modify and extend the types of contact records which we can be stored in CiviCRM (currently limited to Individuals, Households and Organizations). Thanx to the nice folks at Alpha International, we will be adding the ability to rename or "hide" the existing Contact Types AND define Contact Sub-types as part of CiviCRM v3.1. Here is a first draft of what we plan to implement. Your comments and feedback are appreciated.

Contact Sub-types

In v3.1 we will introduce the notion of a Contact Sub-type. This will allow users to create specific types of Contacts for their use cases. For example, a school could introduce three new sub-types: Student, Parent and Staff. Sub-Types will inherit from one of the three contact types (Individuals in this case). Sub-types will have all the properties and features of the main contact types. Thus an admin will be able to:

( categories: )

More adventures with the school module

Fri, 08/21/2009 - 15:38 — lobo

I continue my work on deploying CiviCRM for my kids school. In previous blog posts i documented how to use hooks and custom templates to schedule parent teacher conferences and extended care activities and how to expose relationship information in a profile view. In this blog post I'll describe some more advanced features. I'll also describe the code and directory structure.

New Code Structure and Directory Layout

( categories: )

Adapting CiviCRM for the needs of a school ...

Fri, 08/14/2009 - 02:31 — lobo

I've been working on customizing CiviCRM for my kids school. I documented how i exposed relationship information on a profile view in this blog post. In the past week i've also exposed "activities" and "a multiple record custom group" via profiles which i'll describe in this blog post. All this work was done via civicrm hooks and custom templates and run on CiviCRM v2.2.8. You can download the code from here. In this blog post i'll discuss two features that i've implemented: Scheduling Parent Teacher Conferences and Managing Extended Care.

Scheduling Parent Teacher Conferences

The school wanted an automated system to schedule parent teacher conferences. These meetings typically last 30 mins. For some grades its all done in one day, for some other classes its spread out over a couple of weeks (few slots / day). I decided to create a new activity type called "Parent Teacher Conference". For the first parent teacher conference, we have 4 advisors and 30 students. The conferences happen on the same day between 7:00 am - 6:00 pm. Each advisor has 10 students. Some students have 2 advisors. I wrote a script to populate these activities automatically with the assignee being the advisor. The advisor also has the option of going into his activities tab and deleting all the times when she/he does not want a meeting. We also created a new relationship type called "Advisor <-> Advisee" and used import to create these relationships.

( categories: )