Use Cases and User Types

Events happening in the community are now at Drupal community events on www.drupal.org.
rlmumford's picture

In this post, http://groups.drupal.org/node/93504#comment-317734, it was suggested we make a list of use cases and user types, so I thought I'd explain what I'm interested in a DropCRM for. I build websites for churches so we need a system that connects people and respects the (often complicated) hierarchical leadership structures.

User Types

  • Users/Contacts - These may or may not be able to log in they are people who have made contact with a church but not joined it. We probably want basic information on them.
  • Members - These are people that are full members of the church, we might want to track their giving or attendance at church services. They may also be part of Small Groups, Ministry/Volunteer Teams, Leadership Groups etc. they may also have parents or children in the church, and (particularly in the case of children) we'll want these relationships mapped for child protection purposes
  • Missionaries - These are people (or groups!) that have been sent out by the church to person some purpose in some community. the church will want to stay in touch with them and support them. The church will want to know their progress/prayer points/latest activities and locations. On top of this one or more churches could be linked with a missionary, so in a multi site environment (possibly on two different servers) two different user accounts should map to one missionary. They may or may not be members [Or members on one site and not another).
  • Link Members - Most churches assign people to stay in touch with missionaries abroad. these will be members but will need to act on behalf of the missionaries whenever neccessary
  • Preacher - May be a member (so with a user account) or a guest, we will want this entity to link to sermons or materials he is responsible for
  • Pastor/Minister/Vicar - A church leader
  • Elder - level with the vicar, they oversee how the church operates.
  • Deacon - deacons are responsible for particular areas in the running of the church. this should be modelled in how they exist on the CRM.
  • Child - this may or may not be connected to a user or anything else, this will should the youth groups and activities the child is involved in, as well as important information about attendance, subscriptions fees and payments status and allergy advice etc
  • Volunteer - someone who helps with anything, they could be part of a particular ministry group, a youth leader, worship leader, cleaner. They should have access to all the appropriate rotas and information. Details of CRB check status/expiry.

On top of this, we want to model a number of groups,

  • Small/Bible Study Groups - these are small midweek groups that form the backbone of most church communities. They need to be able to be semi autonomous and controlled by the leader of that Small group. they need to be able to organise events together and network.
  • Teams - these are groups that work together to form some purpose, such as run the PA. We might want to keep track of members level of training, need task lists (with assignment and completion statuses), organise rotas, advertise events.
  • Youth Groups
  • Congregations - If a church has multiple sunday services we want to know who goes to which one

The things we want to do with all of this information include:

  • Organise Rotas - allow teams to function effectively and to organise rotas well. Remove the evil of email from organisational procedure =P
  • Organise Events - track attendance, advertise, assign tasks to groups individual members.
  • Keep a contacts database - build a directory of contact information
  • Allow communication between various leaders - small group overseers need to be able to communicate with small groups leaders etc
  • Preaching tools - track and manage sermon resources to build up a strong, usable library.
  • Youth Groups/Classes - track attendance and in the case of youth work allow for easy registration and pick up for child protection
  • Resource Management - manage room bookings and other things

So, its not fully fleshed out yet, but those are some of the prominent ideas I'd like this system to work towards.

Comments

More info

spencerfromsc's picture

Can you contact me privately? I'd like to find out more about your use case, but it may require some back and forth that would be better handled through email. Thanks, David

My experience

baff's picture

I have made a new discussion: http://groups.drupal.org/node/152574

I think the different contact

joachim's picture

I think the different contact types in your use case really highlights the a major limitation of using a single-entity system with types on that single contact entity: a contact can go from being one type to another, or even be more than one type simultaneously.

A particular person in your system could start off as a plain contact, become a volunteer, become a member, then go on to become a missionary. A system where each contact is represented by one entity won't be able to deal with that well. Changing types is a tricky operation (and requires your data to be carefully planned out first). Being more than one type is just not possible.

Whereas if you envisage each of those roles as one of several possible profiles for a contact, there's no problem. When a contact becomes a volunteer, they acquire a new profile for their CRB details, in addition to their main one which holds basic information such as their name. When a person loses a role, that profile can be deleted or archived.

Actually thinking about the

yautja_cetanu's picture

Actually thinking about the CRB use case is particularly interesting because there are a couple of things about it:

1) CRB requires a very large amount of consistent data (and so putting in the particular fields every time would actually be an issue)
2) When I worked in a church I had 2 fill out multiple forms for my work with the church. I had 1 for my work with young people in the church and 1 for my work with people in the school. Each time I had to fill one out I used slightly different "proofs of address" which I think at least the type of proof needs to be stored in the CRB
3) CRB checks have to be renewed and data might change between them but for your records you probably want to keep each revision of the CRB.

This provides a use case for:

1) Having "bundles of fields" which can be planned and then automatically attached to people (Essientally having a pre-made CRB profile)
2) Being able to have multiple versions of those "bundles of fields" (Therefore providing a reason why you would want to attach multiple CRB profiles potentially to one person
3) The particular use case you've bought up of a contact changing over time.


I am still interesting in personally really understanding why we should go down the profiles route rather then single contact entities. I feel like quite a bit could be done with "Field Groups". However I think your particular use case (3) would be impossible with field groups. And 1 would only be possible if planned in advance.

CRM

Group organizers

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds:

Hot content this week