Hi all,
I am developing a site (currently in dev at http://new.pittsburghprep.com) for a test prep company. They provide classes on the SAT and other tests, in addition to private tutoring. They will also have a web store for textbooks and other course materials. Here is a breakdown of the site's core functionality:
First, for end users:
1) Course sign-up and pay
2) Tutoring package sign up and pay
3) Textbook/course material purchase
4) Participation in group discussions and intra-group messaging
5) Take e-courses
And for site admins:
1) Create and manage courses, tutoring packages, and physical store products
2) Administer, track, group, and contact students based on the class they're in
3) Administer group discussions/forums
4) Create/sell e-courses (mostly videos and PDFs)
Now, most of this is fairly straightforward: OG for group discussions, Ubercart for store, UC Node Access for providing per-user access to the nodes where the e-courses reside.
But where I am not 100% sure, and haven't been able to find complete answers, is in the creation and administration of courses. My inclination is to use CiviCRM, as it has the messaging, event creation, and payment options. Courses are essentially events, which means CiviCRM's CiviEvent should fit quite well. But I have some functionality questions, having never used CiviCRM before:
1) It seems fairly straightforward to "sync" Drupal users to CiviCRM contacts. But can it be done the other way around? So, for instance, what happens when someone registers for a course and pays? Obviously they become a CiviCRM contact, but are they also added automatically to the Drupal user list? I know this happens in reverse.
2) Related to the first question: how do roles relate back and forth? Can CiviCRM roles be "mapped" to Drupal user roles, such that (for instance) someone who registers for a course could be "promoted" to the user role of "student" in both CiviCRM and Drupal? For instance, i want someone who registers through CiviEvent to be granted the role permissions necessary to participate in certain Organic Groups.
3) Are CiviCRM events and registration pages able to be used as nodes in Drupal? Besides using the Drupal calendar, how much ability does one have in using events in Views 2 and other modules? Also, can Drupal grant access to the "nodes" created in CiviCRM, or does CiviCRM have an entirely different access control system?
4) Does CiviCRM (or Ubercart) allow for multiple payment plans-- up front, monthly, etc.?
Thanks in advance! I am not sure I want to use CiviCRM unless there's the possibility for fairly solid integration.
Nate
Comments
Answers
1) You can optionally require the Event Attendee to acquire a Drupal user account (by selecting a username) at the time of registration.
2) You'll need a bit of custom code to accomplish this. Like Durpal, CiviCRM provides hooks, so you can take actions when a user registers for an event.
3) No, CiviCRM data objects are NOT nodes. This is one of the primary limitations of the system; however, there is some Views2 integration. CiviCRM has it's own access control system. (CiviCRM 'Groups' can also funciton as access control 'roles'. CiviCRM does include a module (that I happened to write) which allows you to synchronize Drupal Roles & CiviCRM Groups, so the two can work together somewhat seemlessly.)
4) Not that I'm aware of. CiviCRM does support 'pledges,' recurring payments, and one-time payments for CiviCOntribute, but I do not believe those choices are available for Events.
I would suggest posting nay follow-up on the civicrm forums, as you're much more likely to get answers there.
Best,
Matt
http://www.NinjitsuWeb.com