Sessionizer is a tool for managing session registration for unconferences. It was written for MinneBar, an unconference in Minnesota and one of the largest BarCamps in the world.
- Session creation and editing by participants
- Sessions with multiple presenters
- Participants can express interest in sessions
- Collaborative recommendation engine for recommending sessions based on similarity of interest
- Automatic scheduling algorithm that uses simulated annealing to minimize presenter overlap an maximize attendee attendance preferences
- Mobile optimized display of schedule
- iCalendar feed of schedule
- Administrative backend for editing sessions
- Export of data for various purposes
TBD.
- Create seed data:
rake db:seed
Sessionizer is designed to run on Heroku, though with a little setup you should be able to get it running anywhere.
- Create an application. Sessionizer runs on the default Cedar stack.
- Add the memcache add-on:
heroku addons:add memcached:5mb
- Run
heroku run rake db:migrate
- Run
herok run rake db:seed
- Set a username and password for the Sessionizer admin:
heroku config:add SESSIONIZER_ADMIN_USER=foo SESSIONIZER_ADMIN_PASSWORD=bar
- Create the first event by navigating to
/admin/events
Sessionizer can automatically generate a schedule for your event based on preferences expressed by the audience and attempting not to double-book presenters.
To run the scheduler:
- Have attendees express interest in sessions. The scheduler attempts to maximize the percentage of sessions attendees can attend.
- Create rooms and timeslots for your event. The number of rooms * number of timeslots must be greater than the number of sessions, or the scheduler will fail.
- Run the scheduler:
rake app:generate_schedule
. This takes a long time, so it is probably best to test it out at a low quality setting:quality=0.001 rake app:generate_schedule
Once the scheduler has run, you can see what it produced by visiting /schedule
. You'll also see output on the console and it will indicate what percentage of attendees can attend the sessions they are interested in and the amount of presenter overlap (hopefully zero).
You can tweak the schedule by creating PresenterTimeslotRestrictions (if a person can only present during certain timeslots) or by manually swapping scheduled rooms after the schedule has been created (see Session.swap_rooms
).
This project is open source under the MIT license. See LICENSE.txt
for details.