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


Schools

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.

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: )

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: )

Exposing relationship data in CiviCRM profile view

Wed, 07/29/2009 - 19:53 — lobo

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 include path (check the function _sfschool_initialize)
  • The hook gets either the parent or the child information using a custom query. We ensure that only permissioned parents can see their child information (in case of some complicated family structures). The queries are relatively simple at this stage, i suspect they will increase in complexity over the next few weeks
  • The hook exposes the information gathered from the database to the smarty template
  • The custom template (templates/CRM/Profile/Page/3/Dynamic.tpl) uses that information to display the relationship data on the page. I also edited the View.tpl template to eliminate the "Back to Listings" link.