CiviSchool - Online forms to update student / family information

2010-06-09 15:22
Written by
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 CiviCRM's household functionality.
  • Emergency Information: Name, Email and Phone for the emergency contacts. These are also stored as CiviCRM contacts with a relationship link of type Emergency Contact to the student. We stored the order in the description field
  • Medical Information: Insurance details along with various allergies. The insurance details are stored in a single value custom group. The allergies are stored in a multi-valued custom group so the school can change the list of allergies / medical symptoms easily
  • Release Checkboxes: Various release statements, all stored as custom data that extends the student record
  • Diversity: Stored as a custom group with multiple checkboxes
We used the jQuery Tab Widget for form layout. We also used a lot of custom groups in the application and used civicrm's functionality to store/retrieve from these custom groups pretty quickly. Interacting with the CiviCRM database model and code this way definitely makes it faster to build relatively complex forms. I'll do a code overview in a future blog post. Interested techies can peek into our svn repository and check the code here. Interested developers / school tech folks can join our Google Groups Mailing List


Why did you choose not to use 'household' contact records to link contacts in one family? How are you keeping track of which adults are in the same family?

Also, what is the process like for a family that is registering multiple children? ( In my experience, the emergency contacts are typically the same for all kids in one family. )

This looks fantastic!


the current data model in powerschool (the school's SIS) does not really have any family info (its one large flat table for all info) and in our initial import we maintained that structure. We still need to sync with them and hence did not opt to create a household.

Yes parents will need to enter the emergency info twice. we can be smart and load it from their other childrens record, but for now thats left as an exercise to the reader :)


Hi Lobo,

Is there any hope you might be able to set up a demo site of the SF module at some point?

Anonymous (not verified)
2012-05-09 - 10:23

We would love to see the SFS module! Please, please!