This is a platform to plan co-created events. It was originally created for Urban Burn Stockholm in 2016 and was then used for The Borderland in 2016 and For Midburnerot 2016 then Midburn 2017. It's being continuously and sporadically developed by a rag-tag team and will always be in beta. This version is set to be the mother of all versions. You can see it in action here:
- Midburn: http://dreams.midburn.org/?lang=en
- Midburnerot: http://dreams.midburnerot.com/?lang=en
- Borderland: http://dreams.theborderland.se/
- Urban Burn Stockholm: http://dreams.urbanburn.se/
- Art Jump: http://artjump.burningman.nl/
To get started
- Install ruby 2.3.1 (or any ruby will probably work).
- Install postgres -
brew install postgresql
- Install imagemagick -
brew install imagemagick
gem install bundler # if needed bundle install bundle exec rake db:migrate
To get all the deps and the database set up properly. To start the server:
bundle exec rails s
Now rails will listen at
localhost:3000 for your requests.
Register a new user http://localhost:3000/users/sign_up
dreams/new to create a new dream and to
/dreams to see a list of camps.
There are tests
Run them with:
bundle exec rspec spec
Currently sqlite is used as the local database. We will stick to this in development but set up Postgres in production. Install sqlite with your favourite package manager and you should be up and running right away.
If you're running the server locally you should those env variables:
In development mode mailcatcher is configured to catch emails locally for easier testing.
Users and creations can be administrated with Active Admin. After install, run:
bundle exec rake db:migrate db:seed
Then naviagte to
Creating your first user
- Navigate to http://localhost:3000/admin/tickets/new
- Enter your phone number and email
- Then create your user with the same phone number and email here: http://localhost:3000/users/sign_up
User types in the system
The system user types are: anonymous users, normal registered users, guides, admins
You can set yourself as a guide and admin in the /admin panel
Guide and admins see buttons on the dream page and info that normal and guests users dont have access to. Guide and admins can close/open granting and edit dreams
Ticket ID Import
Ticket ids are imported from a two column csv file of IDs which can be set to any url using
IMPORT_CSV_URL env variable
Rake task is in lib/tasks/import.rake and is run with "bundle exec rake import"
Ticket verifier through TixWise
We've added an optional verification through tixwise - you need to aquire an API from them and then set
TICKETS_EVENT_URL ENV variable to a url such as:
Make sure you change the username, password, token and event id
Make sure all the env variables are set
On heroku use - https://github.com/xavdid/heroku-config
Creating initial database
From command line run
heroku run exec rake db:migrate db:seed --app <<APP_NAME>>
We are using puma for the webserver and usually use Heroku to deploy it
WEB_CONCURRENCY=1 if you have ~1GB of mem we recommend on
though we did have some plans on using Dokku all of the repos right now are on heroku
To get the mailing system working on Heroku -
- Add Sendgrid as a Resource (this will automatically set SENDGRID_USERNAME & SENDGRID_PASSWORD)
- Update the
heroku config:set EMAIL_FROMemail@example.com
To set up the image upload make sure to create the S3 user and set the following heroku env variables
From our experience, if the s3 bucket didn't exist - it was automatically created on first time upload in case your user have write access to s3.
Google apps script
We've added the ability to integrate to google drive. on every new dream that is being created - a google apps script create a folder with the dream id, dream name, and give access to the dream owner. it also coppies some needed files to that folder and save the folder info and specific file ids to allow the user to edit them directly on google drive.
It require an google apps script published as API execution and also the following env vars:
1.Set the env
2.Start with enabling the API on the google console. getting a token.
Then set the
3.Then go to https://console.developers.google.com/apis/credentials?project=YOUR-PROJECT-ID
and copy the name of Oauth2 client Id - this will be the
GOOGLE_APPS_NAME env variable
4.Then inside your script there is the actual function name to call it is usually
createDream - this is the
5.Finally leave the
GOOGLE_APPS_SCRIPT_TOKEN empty. and then after you run your app for the first time. check the logs. you will see a url. this url will contain the actual token. then set the
GOOGLE_APPS_SCRIPT_TOKEN to be that token
You can copy .env-example to .env file and use it to check which ENV vars we are using
To install ENV vars in a quick way check out https://github.com/xavdid/heroku-config
Ability to Show/Edit Point of Contact
We've added the ability to show a contact person from art-department for the dream-creator in the dream page. This field is editable by admin/guide users only.
You will need to set the following env var:
Setting important dates
There is a feature that shows a notification to users - reminder of important dates.
You can alter
lockdown.yml file with your important dates and then change in
It will be reminded to your users at the
View Dream &
Edit Dream page
Ability to Show/Edit Safety File Comments
We've added the ability to show safety file comments for the dream-creator in the dream page. This field is editable by admin/guides only and it is visible to users on the show dream page - this could serve as a way to communicate with the artist outside of his email.
You will need to set the following env var: