Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time
== Welcome to JULIE, version
Copyright (C) 2007-2013  Michael Maness

JULIE is an open-source survey framework for the creation and administration of 
web-based and other computer-assisted surveys. JULIE provides tools to create 
most survey question types as well as specialized tools for the creation of stated 
choice experiments. JULIE is built on the popular Rails web application framework 
and Ruby programming language.

== Release Notes

This is a very small modification.

The following changes were made (including 1.8.1 notes):

* Officially supports Ruby 1.9.3 and Rails 3.2.11.
* ExperimentResponse table added to the model and database. This table stores the state
  of a Scenario question's scenario table for each respondent's responses.
* ExperimentValue table added to the model and database. This table stores the state of
  a Scenario question's scenario table in "value form" for each respondent's responses.
* Added the a column to the ExperimentValue and ExperimentResponse tables for each Scenario
  question which stores the response given. []
* Changed the indexing for responses to Scenario questions from zero-based to one-based
  (i.e. the first response is mapped to one instead of zero) []
* The gem file has references for Mongrel and Thin.
* Changed the copyright date on most files from 2011 to 2013.
* The .gitignore file should now work on .sqlite3 and .log files.

The following bugs were found and fixed:

* A notification of invalid input should be given to respondents for Scenario questions.
  (Bugfix: Survey Controller)
* Fixed the issue where refreshing or entering invalid answers for Scenario questions gave
  the respondent a newly created scenario table. Now the same scenario table should be shown.
  (Bugfix: Survey Controller)
* Fixed a bug where skip was not showing and the back button was not working as intended on
  the first question. Back button was showing even though it was the first question and
  question numbering is incorrect. (Bugfix: Survey Controller)
* Fixed a bug where questions/question.rb was not loaded in the instructions method.
  (Bugfix: Survey Controller) []
== Getting Started

(See the wiki at
(See installation pdf at

To get started with JULIE, you need the following:

* Operating System supported by Ruby (Windows, Mac OS/X, Linux)
* Ruby 1.9.3
* Rails 3.2.11 or higher
* SQLite 3.5.6
* Bundler 1.0.21

After installing those components successfully, download the JULIE package from Github 
( OR 
and unzip/untar it a directory.  It is suggested that you rename the parent directory to "JULIE-183" 
for consistency with the rest of the instructions.

Using a command line tool, go to the JULIE-183 directory.  To install the dependencies, use the 
following command:
  bundle install

See if json has caused an error, type command:
  rails –v

If error seen, open up Explorer and go to C:\RailsInstaller\Ruby1.8.7\lib\ruby\gems\1.8\specifications.
Open the file “json-1.6.1.gemspec” in a text editor and replace the line: = %q{2011-09-18 00:00:00.000000000Z}
with this line: = %q{2011-08-31}
Then save the file. If successful, then rerunning the command "rails -v" should show no error messages.

With the dependencies installed, create the development and production databases.  First change 
directories to /JULIE-183/db/ then create copies of the blank database template:
  cp blank_database_template.db development.sqlite3
  cp blank_database_template.db production.sqlite3
With the databases in place, populate them with tables by using Rails migrations.  Use the 
following command:
  rake db:migrate

You should be set to begin developing surveys with JULIE.  To start the Rails server, use the following command:
  rails server
Then point your browser to http://localhost:3000 to see a splash screen for Rails.  If that happens, then 
congratulations, you have completed the process successfully.

== Description of Contents

The default directory structure of a JULIE application:

  |-- app
  |   |-- controllers
  |   |-- helpers
  |   |-- mailers
  |   |-- models
  |       |-- surveys
  |       |-- survenity
  |       `-- questions
  |   `-- views
  |       |-- layouts
  |       `-- survey
  |-- config
  |   |-- environments
  |   |-- initializers
  |   `-- locales
  |-- db
  |-- doc
  |-- lib
  |   `-- tasks
  |-- log
  |-- public
  |   |-- images
  |   |-- javascripts
  |   `-- stylesheets
  |-- script
  |-- test
  |   |-- fixtures
  |   |-- functional
  |   |-- integration
  |   |-- performance
  |   `-- unit
  |-- tmp
  |   |-- cache
  |   |-- pids
  |   |-- sessions
  |   `-- sockets
  `-- vendor
      `-- plugins

  Holds all the code that's specific to this particular application.

  Holds controllers that should be named like weblogs_controller.rb for
  automated URL mapping. All controllers should descend from
  ApplicationController which itself descends from ActionController::Base.

  Holds models that link JULIE to the databases.
  Survey files are stored here.

  Contains the Survenity parser, compiler, and interpreter.

  Holds ruby files representing questions and experiments.

  Holds the template files for the view that should be named like
  weblogs/index.html.erb for the WeblogsController#index action. All views use
  eRuby syntax by default.

  Holds the template files for layouts to be used with views. This models the
  common header/footer method of wrapping views. In your views, define a layout
  using the <tt>layout :default</tt> and create a file named default.html.erb.
  Inside default.html.erb, call <% yield %> to render the view using this
  Holds the html and embedded ruby code that represents the visual display of

  Holds view helpers that should be named like weblogs_helper.rb. These are
  generated for you automatically when using generators for controllers.
  Helpers can be used to wrap functionality for your views into methods.

  Configuration files for the Rails environment, the routing map, the database,
  and other dependencies.

  Contains the database schema in schema.rb. db/migrate contains all the
  sequence of Migrations for your schema.

  This directory is where your application documentation will be stored when
  generated using <tt>rake doc:app</tt>

  Application specific libraries. Basically, any kind of custom code that
  doesn't belong under controllers, models, or helpers. This directory is in
  the load path.

  The directory available for the web server. Contains subdirectories for
  images, stylesheets, and javascripts. Also contains the dispatchers and the
  default HTML files. This should be set as the DOCUMENT_ROOT of your web

  Helper scripts for automation and generation.

  Unit and functional tests along with fixtures. When using the rails generate
  command, template test files will be generated for you and placed in this

  External libraries that the application depends on. Also includes the plugins
  subdirectory. If the app has frozen rails, those gems also go here, under
  vendor/rails/. This directory is in the load path.


An open-source survey creation and administration tool built with Ruby and Rails







No packages published