Skip to content

NYC Camp Conference Scheduling

Willy Karam edited this page Jun 29, 2015 · 4 revisions

This page is intended to provide a brief outline/documentation relating to the changes to the scheduling tools that we setup for the NYC Camp site.

Schedule Components

The scheduling architecture revolves around Schedule Slots, which are stitched together in order to create a schedule for a specific portion of the event (e.g., for a Summit or for Session Day).

The overall architecture involves the Content Types listed below.

  • Conference: This is the top level content for the overall annual conference (e.g., NYC Camp 2012, 2013, 2014, 2015 etc.).

  • Conference Day: This is the day of a conference and include both a title (e.g, Training Day) and a date (e.g., Thu Jul 16/14)/

  • Events: The various events which occur during the conference

  • Sessions: The individual presentations, keynotes that make up and event.

  • Schedule Items: These are various items that need to be included on the Schedule, but which aren't presentations/sessions (e.g., items such as Lunch or Coffee Breaks)

  • Venue: This is a content type for the Venue(s) for a Conference

  • Building: This is a content type for the Buildings that Make up a Venue used for a conference

  • Room: This is a content type for the Rooms in a Building at a Venue

  • Schedule Time Slot: This is a content type for the Time Slots that are used for scheduling, and these are HH:MM fields, as opposed to date/time field (not have a date makes these re-usable year over year). You can manage the order/weighting of time slots here: http://www.nyccamp.org/admin/dashboard/schedule-time-slots

  • Schedule Slot: All of the above are then stitched together in a Schedule Slot that connects a Session/Event with as appropriate with a Conference Day, Event, Room, and Schedule Time Slot. As mentioned above, these Schedule Slots are then brought together in views to display a Schedule for specific portions of the event.

The above Scheduling Components can pretty much all be setup/managed from this page in order to create all of the Schedule Slots that are needed for a given conference each year:

Scheduling

Once the various Scheduling Components for a Conference have been setup, this page can be used to view the sessions that have been approved and then assigned them to the various Schedule Slots.

This back-end UI is created with a mix of Panels and Content panes, as is intended for back-end use only. The Schedules made of Schedule Slots are displayed on the front end of the site using different views (a mix of blocks and Entity Views Attachments depending on the circumstances).

Additional Considerations

WRT some of the IA decisions, although in some instanced we could have used purpose specific entities instead of nodes, we decided to use nodes as that will most likely be easiest for other camps and less experienced Drupalists to use. Additionally there was better integration in some modules for nodes as opposed to entities (e.g. Display Suite). The same rationale holds true for our use of Entity References as opposed to Relations. Note that additional planning and UI work needs to be done in order to improve the user experience -- e.g, setting global filter so as to only display the current year's Scheduling Components (or whatever year you happen to be working upon).

Substantial planning/work also need to be done to help with usability year over year; however, the ultimate objective is to make the same site re-usable each year, and minimizing the effort involved in setting up a new schedule for each year.