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
# clone the repo
git clone [email protected]:minnestar/sessionizer.git
cd sessionizer
# install correct ruby version
asdf install ruby # OR
rbenv install # OR
rvm install
# install bundler
gem install bundler
# install ruby gems
bundle install
# database setup
rails db:setup
# create timeslots
bundle exec rails app:create_timeslots
# create rooms
bundle exec rails app:create_rooms
If you run into issues setting up the database:
# create 'postgres' user
createuser -s -r postgres
# create 'sessionizer_development' database
createdb sessionizer_development
You're probably going to want to run all the rake tasks with bundle exec
e.g.
bundle exec rails
To run the application
$ rails s
Then you can access the app at http://127.0.0.1:3000.
For development, run rake app:make_believe
to hydrate the database with sample
data. It will reset the database, create an event, participants, timeslots,
sessions, and apply randomized participant interest. This does not run the
scheduling algorithm.
Locally:
$ bundle exec rake app:make_believe
The full test suite can be run with:
rails spec
- Create an application. Sessionizer runs on the default
heroku-18
stack. - Add the memcache add-on:
heroku addons:add memcached:5mb
- Run
heroku run rake db:migrate
- Run
heroku run rake db:seed
- Set a username and password for the Sessionizer admin:
heroku config:add SESSIONIZER_ADMIN_USER=foo SESSIONIZER_ADMIN_PASSWORD=bar
- Set a MANDRILL_MINNESTAR_USERNAME, MANDRILL_MINNESTAR_PASSWORD - These can be omitted if this app is for testing.
- Create the first event by navigating to
/admin/events
or using the console - To deploy the app to heroku:
$ git push heroku master
See SCHEDULING.MD for details and instructions.
Minnestar is dedicated to providing a harassment-free experience for everyone. All conversations and discussions on GitHub (code, commit comments, issues, pull requests) must be respectful and harassment-free. By contributing to this project, you are agreeing to the Code of Conduct.
- Luke Francl
- Paul Cantrell
- Ben Edwards
- Casey Helbling
- Justin Coyne
- Cory Preus
- Jamie Thingelstad
- Matt Decuir
This project is open source under the MIT license. See LICENSE for details.