09 June, 2010
By lobo
Filed under Architecture, Drupal, Schools
We've been hard at work implementing an online set of forms to collect family information for the school module. This is one of our final projects for the year and eliminates the tedious summer ritual for the admin staff of sending paper forms to the 200 school families and for the parent to fill out the same information every year. This also saves the admin staff from entering that same information into the SIS We've built this work on the parent portal that we launched late last year. Parents can update information on themselves and their children anytime via their drupal account. The form is composed of 5 sub-forms:
  • Household Information: Name, Email, Phone and Address of the household. We currently support 2 household and 4 contacts. These are stored as CiviCRM contacts with a relationship link of type Parent / Child to the student. We created a custom group to store which household a parent belonged to. We did not use...
Read more
28 May, 2010
By Guest
Filed under CiviCRM, Schools

The next phase of the CiviSchool project is collecting and maintaining all parent / student information online. This avoids the annual filling out forms work by the parents, and also the stuffing of envelopes by school staff during the summer and reentering all the information in the SIS when school starts.

To make things easier, we wanted to export and import as much data as possible from PowerSchool. It has a pretty good export and we got all the information in a nice familiar CSV format. However the system is not very "relational". Parents and addresses have multiple records (one for each student), hence there is some amount of inconsistency in the system with regard to names and addresses. Also we have the CiviCRM/Drupal based system in operation for a year and this has also resulted in slight divergence between the two systems.

Due to various family structures, the school maintained the family information as a...

Read more
19 April, 2010
By lobo
Filed under Drupal, Schools

We had a great day at DrupalCon SF 2010 today, especially in our BoF sessions :) To keep the momentum going, we are planning to have a few more BoF sessions:

  • Canvassing and GOTV (Get Out The Vote) functionality in CiviCRM. We'd like to extend the current CiviEngage module and incorporate the work done by Will B on Voter Canvassing. We'd also like to incorporate some of the ideas floating around with regard to CiviPetition and build campaign functionality in CiviCRM. This BoF will be scheduled for Tuesday afternoon, 3:00 pm. I'll update the blog post with room details soon.
  • CiviSchool module for K-12. We've built and deployed a school module to manage a K-8 school interaction with staff / parents /...
Read more
04 December, 2009
By lobo
Filed under Drupal, Schools
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.


  • 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...
Read more
01 December, 2009
By lobo
Filed under Schools
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... Read more
21 August, 2009
By lobo
Filed under v2.2, Drupal, Schools
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

As I added more functionality to the module, the code base was getting a bit out of control. Being a big fan of structure and directories, i switched the sfschool module to using a similar structure like the civicrm module. Thus i created a top level SFS directory under which most of the php code is. The module which resides under the drupal... Read more
13 August, 2009
By lobo
Filed under v2.2, Drupal, Schools
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... Read more
29 July, 2009
By lobo
Filed under v2.2, Architecture, Schools
I'm working on deploying CiviCRM for my kids school website. Part of the project requires us to expose the parent child relationship information on the website and allow parents to edit their child information. I accomplished this using a combination of civicrm hooks, custom templates, permissioned relationships and custom code in a drupal module. You can access the module and template code here. The broad steps are:
  • Implement hook_civicrm_pageRun for the profile view page (CRM_Profile_Page_Dynamic). Only implement this hook for the specific profile id's you want relationship information. In this case we have two profiles, a Parent Profile (gid=3) and a Student Profile (gid=4)
  • The pageRun hook also adds the module's template directory to the smarty include path, so we dont have to set it globally. This also allow multiple modules to append different template directories to the template...
Read more