Events Use Cases and User/Event Relationships

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

Here is a first pass at documenting all of the use cases* to be touched on by the Events system. This list drew from the existing documentation that I could find and tries to be inclusive and exhaustive. I will update as people point out additions, mistakes etc.

  • Use Cases are a notation meant to capture meaningful system capability from an end-user perspective. They can be used to document requirements and inform implementors as to the intent behind requirements. There are some standard ways to create and use Use Cases - but personally I feel that they are what you make of them. The image below does not contain Use Cases per se, but the titles of Use Cases. They are meant to describe the scope of the project in a way that is useful to all participants.


AttachmentSize
EventsUCs.png103.99 KB
lucha-reply-grid.png166.71 KB

Comments

what's the difference between "RSVP" and "Register"?

dww's picture

your picture puts "rsvp" and "register" in separate ovals. what's the difference in your mind? register == pay money? i consider both of these to be "rsvp/signup/reply" (create relationship between user and event) and there's just different metadata to store if there's money involved. paying for an event is just one of literally hundreds of possible kinds of metadata you'd want/need to keep track of when maintaining a relationship between a user and an event. i don't think these belong in separate ovals or require separate terminology.

that's why i continue to believe that ultimately, the relationship between a user and a node should itself just be a CCK node. so long as it's got a node-pointer field, and a user-pointer field, it'd work as a basic "signup". however, since it's CCK, you can add fields for whatever metadata you want (a date field for when the relationship was created, a drop-down for the possible values of comitted they are to attending, a currency field for how much they paid, a select box for what instrument they're going to play on the gig, a checkbox for if they want to get reminder email about it (and an email address field if so), a text area for their note to the event organizer, an int for the number of people they're pledging to bring to the rally, etc, etc, etc). so long as you had a reasonable way to display all these nodes in various formats (can you say "views"?), then you could display a list of users who replied when viewing a node event, you could make a big grid of events and users and see their replies, you could have a tab on the user's profile page with a list of events they've replied to, etc, etc. i don't think this is pie-in-the-sky, must wait for months of core hackery, etc. so long as CCK had a reasonable node-pointer and user-pointer fields (and if either one is missing or lacking, it wouldn't be that hard to fix), we could do all of this with the current 4.7 CCK-as-contrib implementation, with some help from views.

anyway, aside from the rsvp vs. register thing, this seems like a fairly complete and well-thought out diagram of possible uses and requirements. on first impression, probably 3/4 of this can be done already with event + signup, including a bunch of the email. certainly the version of signup i run on http://baterialucha.org. ;) (that started as the official 4.6 signup, but i made a bunch of customizations and modifications for my own needs. for example, check out the "lucha-reply-grid.png" screenshot i've attached below for my existing event reply grid page (which also features the fact that my version of signup can keep track of non-yes replies to events). now that i'm the maintainer of signup, i plan to make most/all of this functionality available in the official signup module, either in the main one, or as optional contrib sub-modules that can be installed/enabled separately.

Cross posting this to the relationships group

dww's picture

I'm adding this post to the relationships group, too, since I'd love to get those folks to look at what we're talking about and add their wisdom, too. this cross-posting stuff is such a cool feature of groups.drupal.org! props (again) to moshe. this is great stuff...

Register vs. RSVP

drob's picture

First off - cool looking site - very nice!

I am very focussed on the subtle differences between all these different possible steps one can take in relationship to an Event. I think it is important because the end-game I'm interested in is a very usable and complete end-user UI. An RSVP is something you do when you are responding to an invitation. A Registration is something you do to an event.

I Registered for an event - I didn't RSVP because I wasn't invited
I Registered for an event that I was invited to - effectively an RSVP
I Responded to a request for an RSVP - declining the invitation

So there are a bunch of details around this. Not to mention whether an event is public/private and what happens when I try to register for a private one.

I'm just coming up to speed on the whole relationships issue. I'm not sure I have a strongly felt position - just that whatever the solution is should be flexible and meet the requirements.

I have a bunch more diagrams. I've taken all the above UCs and broken them down into more discrete chuncks that could be used as a battle plan. I also have some class diagrams, a state diagram and a bunch of interaction diagrams. I started to work on the fleshed out UCs for the above, however there didn't seem to be much point. Most were "view the event, edit the event, save the event". Not very interesting - the interesting stuff is in the UI itself and managing the user experience (IMHO).

RSVP vs. registration = subtle difference

Walt Esquivel's picture

dww,

I very much like your http://baterialucha.org/ web site and the way you're using the events and signup modules!

I agree with drob's comment about...

the subtle differences between all these different possible steps one can take in relationship to an Event.

Often, I receive postcards, email, letters, etc. that include "Please RSVP" when they really meant "Please Register." In my professional experience, an RSVP should always, always be answered in some way, usually "Yes, I will attend" or "No, I will not attend." A registration request, on the contrary, can easily be discarded and does not need a response.

So yes, there are subtle differences between the two.

BTW, dww, I am absolutely loving all the signup module possibilities! You rock!


Walt Esquivel, MBA, MA, Captain - U.S. Marine Corps (Veteran)

President, Wellness Corps, LLC

Walt Esquivel, MBA; MA; President, Wellness Corps; Captain, USMC (Veteran)
$50 Hosting Discount Helps Projects Needing Financing

volunteermama's picture

I'm new to the development world, but I wonder if my how to question (http://drupal.org/node/68110) in the post installation forum might be a UC? Keep up the good work, as I am anxiously awaiting the result!!! :) Let me know if there is any way I can help.

All this should be pretty straight forward

drob's picture

Basically it sounds like you are adding a bunch of nodes to an event. This should be pretty straight forward using cck and some theming. I think that should be pretty simple - however you have a bunch of issues you are trying to cover - and it may take a little while to get up to speed in Drupal.

This may be too advanced

Gunnar Langemark's picture

Here are some of the things you can do in an event system I work with in my day time job. I designed/architected web modules to handle most. I don't imagine that the event system would handle all this anytime soon. Just wanted to remind you that an event system can be HUGE and complicated.

Register more than one person for event
Register to waiting list
Paid events - differentiated prices for participants
Added services - accomodation. food and drinks, meeting materials etc

Event series - frequency - number

Event with several tracks
Prioritization of which tracks you want to attend

Unregister for event - check if deadline for unregistering is past.

Evaluation or feedback regarding event
Feedback on organizer, (teacher) - integrated with user node.

Gunnar Langemark
www.langemark.com
Denmark

Gunnar Langemark

Denmark

Agreed

drob's picture

"events" is a pretty big universe. My personal goal is to deal with events that are commonly dealt with by the organizations we work with. Pretty much they come in the flavor of "House Parties" and "Candidate or Organizational" meetings. Which cuts down on the complexity. I would be very happy to document these use cases and add them to the list. I think just having documentation available is of long-term utility to the community. I will shortly be publishing a subset of the UCs above that will describe the focus of my "first pass" at this work.

Right

Gunnar Langemark's picture

I think you're on the right track. I just dropped a few examples of how the scope of an event module can explode. I think scoping this is most important for succes.

Events can be complex. Especially if mixed with subscriptions and memberships of all kinds...

Gunnar Langemark
www.langemark.com
Denmark

Gunnar Langemark

Denmark

signup can already do a lot of that

dww's picture

good feature requests. the more of this kind of stuff we get on the table, the more likely that whatever big redesigns get hashed out will actually handle most of the problems. ;)

that said, a lot of what you just wrote can already be done, at least with signup (the module i'm most familiar with in this space):

  • Register more than one person for event

    there's a patch for this in the issue queue. now that i maintain it, i'll consider bumping the priority. i also have code in my local copy of signup for signup admins to register other users, which is a similar use.

  • Paid events - differentiated prices for participants

    there's a signup_ecommerce contrib module i've never played with, but it's supposed to do exactly this

  • Event series - frequency - number

    event_repeat.module. it's kinda wonky, and i think we can do better, but it's a start.

  • Event with several tracks

    i think this is just abusing the notion of an "event". what you really have are a bunch of different events (the individual talks, sessions, tracks, whatever), all of which are grouped into some larger-scale "event". sounds like a job for taxonomy or relationships. but the underlying event-management infrastructure (e.g. signup.module) should operate on the smallest level of the events themselves. i think this is more up to the site admin to decide how they want to represent the data than anything we really need to worry about in the code.

  • Unregister for event - check if deadline for unregistering is past.

    signup lets you cancel a signup. it also lets you automatically "close signups" at a certain period before the event starts (which prevents folks from canceling).

  • Evaluation or feedback regarding event

    survey.module? poll.module? comment.module? forum.module? drupal hardly seems lacking in ways people can provide feedback. ;)

just wanted to sketch out some ideas on what's currently possible, while we're thinking about the Grand Unified Redesign(tm).

Even more excellent

Gunnar Langemark's picture

What I would like to do now is: Scope project.
Event can't evolve into the GRAND UNIFIED EVENT HANDLING MONSTER unless it goes there step by step.
We have an excellent platform to build on, a good module - and now need a few defined steps in the right direction.

Thanks for your answer.

I'm no coder. I'm an information architect slash interaction designer slash strategy consultant. What can I do to help event evolve, which won't take too much of my time? (just preparing a startup right now - in the time between family and day job)

Best

BTW: I know that there's a Membership admin module on the way somewhere - is it possible to coordinate?

Gunnar Langemark
www.langemark.com
Denmark

Gunnar Langemark

Denmark

What about eventfinder and volunteer modules?

Walt Esquivel's picture

Hey drob,

EXCELLENT, EXCELLENT diagrams!!! Did I mention EXCELLENT? ;)

Do the eventfinder and volunteer modules belong somewhere on the diagrams since they have strong relationships with events?

I would guess that in the "Participant Interface," eventfinder belongs to "View events" and that volunteer belongs to "Participant"?

Also, I would guess that in the "Event Organizer Interface," volunteer belongs to "Event Organizer"? However, I'm unsure what eventfinder should belong to. Perhaps eventfinder doesn't belong in the "Event Organizer Interface" and simply lists events for the Participant?

Again, drob, thank you for the visual which makes it really easy to see how things regarding events are linked together. A picture is worth a thousand words!


Walt Esquivel, MBA, MA, Captain - U.S. Marine Corps (Veteran)

President, Wellness Corps, LLC

Walt Esquivel, MBA; MA; President, Wellness Corps; Captain, USMC (Veteran)
$50 Hosting Discount Helps Projects Needing Financing

EventFinder and Volunteer modules

drob's picture

Right now EventFinder covers series of these UCs. Both Searching and Managing. Volunteer is not currently represented (afaik) and can be added. One of my goals in this exercise is to document and "pull together" all of the various modules and requirements of people working in this space. However I'm not going to try to satisfy everyone - there are specific goals and objectives for which I would like to see running code. So I'll happily document the hell out of this stuff and then I'll let people know what parts I'm interested in coding and get going on that.

My understanding is that there has been a lot of discussion and thought regarding how EventFinder works and would play in the "next generation" - I'll let folks more knowledgeable than I chime in. As for Volunteer I haven't heard a lot of discussion and frankly I haven't come across a lot of compelling use cases for it - but that may just be me.

I am happy to add UCs to this diagram people just have to tell me what they are. The document is created in Visio and I can't post .vsd files or I would share them. If anyone would like the documents let me know and I'll send them. The next step for me is to post another document with a subset of these UCs which is effectively my battleplan for the next couple of weeks.

Hope that helps - and thanks for taking the time to participate!

EventFinder & Volunteer modules

Walt Esquivel's picture

drob,

Please let me start by reiterating that I think your diagrams are an excellent way to think things out and are quite superb - great job!

With regard to the EventFinder module, thanks for the info and yes, it will be good to hear from some other knowledgeable folks. I'll email techsoldaten, the EventFinder module's mainter, for feedback.

As for the Volunteer module, I'm surprised to hear there hasn't been a lot of discussion on it as I would have thought that it would be ideal and very thoroughly used for all types of events such as Drupal Camps, Drupal Workshops, DrupalCons, Drupal Meetups, BarCamps, etc., that are taking place everywhere. Hmmm. I'll email joshk, the Volunteer module's maintainer, for feedback and for any "compelling use cases" he may have.

Thanks again - great work!
Walt

Walt Esquivel, MBA; MA; President, Wellness Corps; Captain, USMC (Veteran)
$50 Hosting Discount Helps Projects Needing Financing

It'd be great if you could follow-up on this

drob's picture

The more input the better. I may be off-base about Volunteer - but I don't really see a need in many cases to track volunteers separately the way that I understand Volunteer module to work. Also, if you are using CiviCRM I think that the use cases for volunteer may be redundant. There certainly are some situations where this sort of thing might come in handy. Especially if your organizational model is large and highly distributed. If you don't "touch" your volunteers very much then you need systems to track this way. However most organizations I've worked with have a very "high touch" regarding their volunteers. I'd be very interested to hear what others have to say. And of course I'm very happy to document these as needed.

Follow-up on volunteer module

Walt Esquivel's picture

Just wanted to mention that I emailed months ago both the eventfinder module maintainer (techsoldaten; module ownership appears to have changed to Morbus Iff) and the Volunteer module maintainer (joshk) but don't recall ever hearing back from either techsoldaten or joshk.

You have a valid point about the Volunteer module being perhaps redundant if one is using CiviCRM. However, I came across some CiviCRM info that briefly mentions the volunteer module which leads me to believe that perhaps it's not redundant:

Finally, the integration with CivicSpace and drupal modules like volunteer and event allow nonprofits to handle common tasks.

It seems to me, based on the above, that the volunteer module plays a complementary role to CiviCRM and that, when used alongside CiviCRM on a Drupal-powered web site, is nicely integrated for enhanced functionality, but I could be wrong. Perhaps some other folks with greater knowledge on this could provide some helpful feedback? Thank you in advance.

I've been checking out CiviCRM 1.5 and it is a very powerful piece of software with a lot still left for me to explore and become familiar with.

Walt Esquivel, MBA; MA; President, Wellness Corps; Captain, USMC (Veteran)
$50 Hosting Discount Helps Projects Needing Financing

Walt Esquivel, MBA; MA; President, Wellness Corps; Captain, USMC (Veteran)
$50 Hosting Discount Helps Projects Needing Financing

Volunteer module

Amazon's picture

the volunteer module was ported 4.7. However, it needs to be tested with CiviCRM 1.5.

Also there is legacy issues that must be tested and confirmed or closed. If you have time to do some of this testing then we might be able to help maintain this module. CivicSpace has sponsored development on the volunteer module for the last 18 months. We have customers who want it but little time to do the ground work of validating issues. If you can help validate the 30 plus issues in the queue that would go a long way to getting it ready for CiviCRM 1.5.

Kieran

To seek, to strive, to find, and not to yield

< a href="http://www.youtube.com/watch?v=COg-orloxlY">Support the Drupal installer, Install profiles, and module install forms
<a href="http://ia310107.us.archive.org/1/items/organicgroups_og2list/dru

Walt Esquivel's picture

Hi Amazon - thanks for your feedback!

I took a look at the volunteer module and see that as of 9/25/06, there is no 4.7.0 version but rather the following versions:

  • cvs (Last updated: May 16, 2006 - 21:15)
  • 4.6.0 (Last updated: April 7, 2006 - 18:15)
  • 4.5.0 (Last updated: April 7, 2006 - 18:15)

Taking a look at the volunteer module's issues, I further see that the overall bugs total is 14 as of 9/25/06. Where do you see "30 plus issues in the queue"?

I'm not a developer but rather a Drupal user and I don't understand the testing process so please bear with me. Could you very briefly in a paragraph or less explain it to me? For example, if module developers/maintainers/sponsors are aware of known legacy issues (e.g., I count 5 critical bugs to the volunteer module cvs version that was last updated 5/16/06), shouldn't these legacy issues be fixed so that a decent version can then be made available before other folks like me spend time testing the legacy issues?

If, on the other hand, the developers/maintainers/sponsors are hoping folks like me spend time testing the legacy issues BEFORE the developers/maintainers/sponsors bother with updating a line of code because the legacy issues were never corrected in the first place (I realize there are always more bugs than available time to fix them), then please make that clear. It just seems to me that the developers/maintainers/sponsors should fix the critical issues that had previously been reported before asking others to test the legacy issues, but perhaps I'm a bit naiive.

Thank you, in advance, for your feedback and for all that you do for CivicSpace and Drupal! Your contributions are very much appreciated!

Walt Esquivel, MBA; MA; President, Wellness Corps; Captain, USMC (Veteran)
$50 Hosting Discount Helps Projects Needing Financing

Walt Esquivel, MBA; MA; President, Wellness Corps; Captain, USMC (Veteran)
$50 Hosting Discount Helps Projects Needing Financing

Volunteer needs volunteers

Amazon's picture

No one has worked on this module for over 5 months. If it doesn't attract help, then that means we shouldn't invest more time.

Your call.

Kieran

To seek, to strive, to find, and not to yield

< a href="http://www.youtube.com/watch?v=COg-orloxlY">Support the Drupal installer, Install profiles, and module install forms
<a href="http://ia310107.us.archive.org/1/items/organicgroups_og2list/dru

Get simple stuff right first and standards

Amazon's picture

It's good to have all these cases flushed out. But for Drupal to be a real end user events system we are going to have to start with really simple event participant and event organizer interfaces.
Only local images are allowed.

If you can't get those absolute basics in an interface comparable to these free consumer event applications the advanced cases won't matter. Here's an example of having too much information in an event registration page.
Only local images are allowed.

Also please update you diagram to include event planning as a significant activity in the event universe.

Cheers,
Kieran

To seek, to strive, to find, and not to yield

< a href="http://www.youtube.com/watch?v=COg-orloxlY">Support the Drupal installer, Install profiles, and module install forms
<a href="http://ia310107.us.archive.org/1/items/organicgroups_og2list/dru

Use Cases

drob's picture

I'm keeping a master list of Use Cases. Read my comments regarding which ones I would like to tackle in a first itteration. I'm not sure what you mean by "Event Planning".

Too much information?

Walt Esquivel's picture

I like these events discussions. :)

How is the info in your image "an example of having too much information in an event registration page"?

What would you delete?

Thanks,
Walt

Walt Esquivel, MBA; MA; President, Wellness Corps; Captain, USMC (Veteran)
$50 Hosting Discount Helps Projects Needing Financing

Look at the Google calendar event creation

Amazon's picture

There is not enough information hiding, everything is presented at once and all the options overwhelm a casual user.

The form is from http://eventful.com

Cheers,
Kieran

To seek, to strive, to find, and not to yield

< a href="http://www.youtube.com/watch?v=COg-orloxlY">Support the Drupal installer, Install profiles, and module install forms
<a href="http://ia310107.us.archive.org/1/items/organicgroups_og2list/dru

Ah...the need for "information hiding"

Walt Esquivel's picture

Good point - I completely agree that information hiding is very useful. That's one of the things I really like about the new admin interface in Drupal. For example, the "General configuration options for your site" at admin/settings neatly compacts everything I don't want to see.

Sidenote: As you suggested, I visited http://eventful.com and it immediately presented, "Upcoming Events in Austin, TX, USA," which is where I live. Does it "know" what locality to present based upon my IP address? However it does this, it's way cool.

Walt Esquivel, MBA; MA; President, Wellness Corps; Captain, USMC (Veteran)
$50 Hosting Discount Helps Projects Needing Financing

Form UI issues

drob's picture

So my objective right now is to get out (and get agreement on) the data necessary to capture and a little bit of the form. I'm assuming that details like javascript section "hiding" (built into the forms API) and theming issues will be dealt with once we all agree on the bigger issues.

Status?

sun's picture

What's the status of this? I've also seen the DEP Events Improvement @ Drupal.org which seems to follow the approach of merging all overlapping functionality of events modules into one Events API.

Daniel F. Kudwien
unleashed mind

Daniel F. Kudwien
netzstrategen

Relationships & site structuring

Group organizers

Group notifications

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