Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse code

Initial commit. Go, democracy!

  • Loading branch information...
commit 325cfbddbf7d47b913b2eefe22d2ff27dd9209e0 0 parents
Paul Smith authored August 31, 2012

Showing 126 changed files with 7,988 additions and 0 deletions. Show diff stats Hide diff stats

  1. 18  .gitignore
  2. 1  .rbenv-version
  3. 1  .rspec
  4. 43  Gemfile
  5. 240  Gemfile.lock
  6. 12  LICENSE.md
  7. 127  README.md
  8. 8  Rakefile
  9. BIN  app/assets/images/rails.png
  10. BIN  app/assets/images/sign-in-with-twitter-d.png
  11. 16  app/assets/javascripts/application.js
  12. 4  app/assets/javascripts/bootstrap.js.coffee
  13. 3  app/assets/javascripts/guidelines.js.coffee
  14. 3  app/assets/javascripts/home.js.coffee
  15. 25  app/assets/javascripts/register.js.coffee
  16. 3  app/assets/stylesheets/application.css
  17. 476  app/assets/stylesheets/bootstrap_and_overrides.css.less
  18. 3  app/assets/stylesheets/guidelines.css.less
  19. 46  app/assets/stylesheets/register.css.less
  20. 10  app/assets/stylesheets/variables.less
  21. 10  app/controllers/application_controller.rb
  22. 15  app/controllers/guidelines_controller.rb
  23. 7  app/controllers/home_controller.rb
  24. 67  app/controllers/register_controller.rb
  25. 21  app/controllers/sessions_controller.rb
  26. 3  app/helpers/application_helper.rb
  27. 2  app/helpers/guidelines_helper.rb
  28. 2  app/helpers/home_helper.rb
  29. 20  app/helpers/register_helper.rb
  30. 0  app/mailers/.gitkeep
  31. 0  app/models/.gitkeep
  32. 11  app/models/admin.rb
  33. 3  app/models/ethnicity.rb
  34. 7  app/models/guidelines.rb
  35. 3  app/models/instructions.rb
  36. 4  app/models/political_party.rb
  37. 43  app/models/register.rb
  38. 83  app/pdfs/registration_pdf.rb
  39. 27  app/views/guidelines/index.html.erb
  40. 83  app/views/guidelines/show.html.erb
  41. 37  app/views/home/index.html.erb
  42. 6  app/views/layouts/_flash.html.erb
  43. 55  app/views/layouts/application.html.erb
  44. 8  app/views/pages/terms.html.erb
  45. 110  app/views/register/_form.html.erb
  46. 22  app/views/register/complete.html.erb
  47. 13  app/views/register/index.html.erb
  48. 36  app/views/register/new.html.erb
  49. 0  assets/.gitkeep b/lib/assets/.gitkeep
  50. 6  config.ru
  51. 76  config/application.rb
  52. 6  config/boot.rb
  53. 25  config/database.yml
  54. 5  config/environment.rb
  55. 41  config/environments/development.rb
  56. 68  config/environments/production.rb
  57. 37  config/environments/test.rb
  58. 7  config/initializers/backtrace_silencers.rb
  59. 216  config/initializers/devise.rb
  60. 15  config/initializers/inflections.rb
  61. 9  config/initializers/mail.rb
  62. 5  config/initializers/mime_types.rb
  63. 4  config/initializers/omniauth.rb
  64. 125  config/initializers/rails_admin.rb
  65. 7  config/initializers/secret_token.rb
  66. 8  config/initializers/session_store.rb
  67. 178  config/initializers/simple_form.rb
  68. 14  config/initializers/wrap_parameters.rb
  69. 57  config/locales/devise.en.yml
  70. 36  config/locales/en.yml
  71. 26  config/locales/simple_form.en.yml
  72. 20  config/routes.rb
  73. 6  data/README.md
  74. 439  data/instructions.yml
  75. 53  data/state_deadlines.en.json
  76. 3,726  data/state_info_en.yml
  77. 18  db/migrate/20120802170822_create_guidelines.rb
  78. 8  db/migrate/20120804172146_add_mailing_address_to_guidelines.rb
  79. 6  db/migrate/20120806173035_add_online_name_to_guidelines.rb
  80. 9  db/migrate/20120806222856_create_political_parties.rb
  81. 46  db/migrate/20120806234829_devise_create_admins.rb
  82. 18  db/migrate/20120806234830_create_rails_admin_histories_table.rb
  83. 6  db/migrate/20120807173451_add_online_requirements_to_guidelines.rb
  84. 9  db/migrate/20120807185224_create_ethnicities.rb
  85. 6  db/migrate/20120807193101_add_supported_to_guidelines.rb
  86. 13  db/migrate/20120807234854_create_instructions.rb
  87. 94  db/schema.rb
  88. 86  db/seeds.rb
  89. 26  doc/Modifying-Page-Content.md
  90. 44  doc/Providers.md
  91. 7  doc/README.md
  92. 9  doc/Voter-PDF-Form.md
  93. 67  lib/tasks/load_state_info.rake
  94. 13  lib/templates/erb/scaffold/_form.html.erb
  95. 0  log/.gitkeep
  96. 41  public/404.html
  97. 41  public/422.html
  98. 39  public/500.html
  99. 0  public/favicon.ico
  100. BIN  public/nvra-en.pdf
  101. 5  public/robots.txt
  102. 6  script/rails
  103. 28  spec/controllers/guidelines_controller_spec.rb
  104. 18  spec/controllers/home_controller_spec.rb
  105. 128  spec/controllers/register_controller_spec.rb
  106. 39  spec/controllers/sessions_controller_spec.rb
  107. 7  spec/factories/ethnicities.rb
  108. 9  spec/factories/guidelines.rb
  109. 11  spec/factories/instructions.rb
  110. 14  spec/helpers/guidelines_helper_spec.rb
  111. 14  spec/helpers/home_helper_spec.rb
  112. 28  spec/helpers/register_helper_spec.rb
  113. 4  spec/models/admin_spec.rb
  114. 4  spec/models/ethnicity_spec.rb
  115. 4  spec/models/guidelines_spec.rb
  116. 4  spec/models/instructions_spec.rb
  117. 4  spec/models/political_party_spec.rb
  118. 36  spec/models/register_spec.rb
  119. 55  spec/spec_helper.rb
  120. 4  spec/views/guidelines/index.html.erb_spec.rb
  121. 4  spec/views/home/index.html.erb_spec.rb
  122. 4  spec/views/register/index.html.erb_spec.rb
  123. 0  tasks/.gitkeep b/lib/tasks/.gitkeep
  124. 0  vendor/assets/javascripts/.gitkeep
  125. 0  vendor/assets/stylesheets/.gitkeep
  126. 0  vendor/plugins/.gitkeep
18  .gitignore
... ...
@@ -0,0 +1,18 @@
  1
+# See http://help.github.com/ignore-files/ for more about ignoring files.
  2
+#
  3
+# If you find yourself ignoring temporary files generated by your text editor
  4
+# or operating system, you probably want to add a global ignore instead:
  5
+#   git config --global core.excludesfile ~/.gitignore_global
  6
+
  7
+# Ignore bundler config
  8
+/.bundle
  9
+
  10
+# Ignore the default SQLite database.
  11
+/db/*.sqlite3
  12
+
  13
+# Ignore all logfiles and tempfiles.
  14
+/log/*.log
  15
+/tmp
  16
+
  17
+#Ignore the coverage directory
  18
+coverage
1  .rbenv-version
... ...
@@ -0,0 +1 @@
  1
+1.9.3-p194
1  .rspec
... ...
@@ -0,0 +1 @@
  1
+--color
43  Gemfile
... ...
@@ -0,0 +1,43 @@
  1
+source 'https://rubygems.org'
  2
+ruby '1.9.3'
  3
+
  4
+gem 'rails', '3.2.8'
  5
+
  6
+gem 'active_attr'
  7
+gem 'devise'
  8
+gem 'encrypted-cookie-store'
  9
+gem 'high_voltage'
  10
+gem 'jquery-rails'
  11
+gem 'omniauth', '~> 1.1.0'
  12
+gem 'omniauth-twitter'
  13
+gem 'prawn'
  14
+gem 'prawn-fillform'
  15
+gem 'rails_admin', '~> 0.0.5'
  16
+gem 'simple_form'
  17
+
  18
+# Gems used only for assets and not required
  19
+# in production environments by default.
  20
+group :assets do
  21
+  gem 'less-rails', '~> 2.2.3'
  22
+  gem 'coffee-rails', '~> 3.2.1'
  23
+  gem 'uglifier', '>= 1.0.3'
  24
+  gem 'therubyracer'
  25
+  gem 'twitter-bootstrap-rails'
  26
+end
  27
+
  28
+group :test, :development do
  29
+  gem 'rspec-rails', '~> 2.0'
  30
+  gem 'sqlite3'
  31
+  gem 'faker'
  32
+  gem 'factory_girl_rails', '~> 4.0'
  33
+end
  34
+
  35
+group :test do
  36
+  gem 'simplecov', :require => false
  37
+end
  38
+
  39
+group :production do
  40
+  gem 'pg', '0.14.0'
  41
+  gem 'puma'
  42
+end
  43
+
240  Gemfile.lock
... ...
@@ -0,0 +1,240 @@
  1
+GEM
  2
+  remote: https://rubygems.org/
  3
+  specs:
  4
+    Ascii85 (1.0.1)
  5
+    actionmailer (3.2.8)
  6
+      actionpack (= 3.2.8)
  7
+      mail (~> 2.4.4)
  8
+    actionpack (3.2.8)
  9
+      activemodel (= 3.2.8)
  10
+      activesupport (= 3.2.8)
  11
+      builder (~> 3.0.0)
  12
+      erubis (~> 2.7.0)
  13
+      journey (~> 1.0.4)
  14
+      rack (~> 1.4.0)
  15
+      rack-cache (~> 1.2)
  16
+      rack-test (~> 0.6.1)
  17
+      sprockets (~> 2.1.3)
  18
+    active_attr (0.6.0)
  19
+      activemodel (>= 3.0.2, < 4.1)
  20
+      activesupport (>= 3.0.2, < 4.1)
  21
+    activemodel (3.2.8)
  22
+      activesupport (= 3.2.8)
  23
+      builder (~> 3.0.0)
  24
+    activerecord (3.2.8)
  25
+      activemodel (= 3.2.8)
  26
+      activesupport (= 3.2.8)
  27
+      arel (~> 3.0.2)
  28
+      tzinfo (~> 0.3.29)
  29
+    activeresource (3.2.8)
  30
+      activemodel (= 3.2.8)
  31
+      activesupport (= 3.2.8)
  32
+    activesupport (3.2.8)
  33
+      i18n (~> 0.6)
  34
+      multi_json (~> 1.0)
  35
+    arel (3.0.2)
  36
+    bbenezech-nested_form (0.0.6)
  37
+    bcrypt-ruby (3.0.1)
  38
+    bootstrap-sass (2.0.4.0)
  39
+    builder (3.0.0)
  40
+    coffee-rails (3.2.2)
  41
+      coffee-script (>= 2.2.0)
  42
+      railties (~> 3.2.0)
  43
+    coffee-script (2.2.0)
  44
+      coffee-script-source
  45
+      execjs
  46
+    coffee-script-source (1.3.3)
  47
+    commonjs (0.2.6)
  48
+    devise (2.1.0)
  49
+      bcrypt-ruby (~> 3.0)
  50
+      orm_adapter (~> 0.0.7)
  51
+      railties (~> 3.1)
  52
+      warden (~> 1.1.1)
  53
+    diff-lcs (1.1.3)
  54
+    encrypted-cookie-store (1.0)
  55
+      encrypted-cookies (~> 1.0)
  56
+      rails (~> 3.0)
  57
+    encrypted-cookies (1.0)
  58
+      actionpack (~> 3.0)
  59
+      activesupport (~> 3.0)
  60
+    erubis (2.7.0)
  61
+    execjs (1.4.0)
  62
+      multi_json (~> 1.0)
  63
+    factory_girl (4.0.0)
  64
+      activesupport (>= 3.0.0)
  65
+    factory_girl_rails (4.0.0)
  66
+      factory_girl (~> 4.0.0)
  67
+      railties (>= 3.0.0)
  68
+    faker (1.0.1)
  69
+      i18n (~> 0.4)
  70
+    haml (3.1.6)
  71
+    hashie (1.2.0)
  72
+    high_voltage (1.1.1)
  73
+    hike (1.2.1)
  74
+    hpricot (0.8.6)
  75
+    i18n (0.6.0)
  76
+    journey (1.0.4)
  77
+    jquery-rails (2.0.2)
  78
+      railties (>= 3.2.0, < 5.0)
  79
+      thor (~> 0.14)
  80
+    jquery-ui-rails (1.1.0)
  81
+      jquery-rails
  82
+      railties (>= 3.1.0)
  83
+    json (1.7.4)
  84
+    kaminari (0.13.0)
  85
+      actionpack (>= 3.0.0)
  86
+      activesupport (>= 3.0.0)
  87
+      railties (>= 3.0.0)
  88
+    less (2.2.1)
  89
+      commonjs (~> 0.2.6)
  90
+    less-rails (2.2.3)
  91
+      actionpack (>= 3.1)
  92
+      less (~> 2.2.0)
  93
+    libv8 (3.3.10.4)
  94
+    mail (2.4.4)
  95
+      i18n (>= 0.4.0)
  96
+      mime-types (~> 1.16)
  97
+      treetop (~> 1.4.8)
  98
+    mime-types (1.19)
  99
+    multi_json (1.3.6)
  100
+    oauth (0.4.6)
  101
+    omniauth (1.1.0)
  102
+      hashie (~> 1.2)
  103
+      rack
  104
+    omniauth-oauth (1.0.0)
  105
+      oauth
  106
+      omniauth (~> 1.0)
  107
+    omniauth-twitter (0.0.8)
  108
+      omniauth-oauth (~> 1.0)
  109
+    orm_adapter (0.0.7)
  110
+    pdf-reader (1.1.1)
  111
+      Ascii85 (~> 1.0.0)
  112
+      ruby-rc4
  113
+    pg (0.14.0)
  114
+    polyglot (0.3.3)
  115
+    prawn (0.12.0)
  116
+      pdf-reader (>= 0.9.0)
  117
+      ttfunk (~> 1.0.2)
  118
+    prawn-fillform (0.0.12)
  119
+    puma (1.5.0)
  120
+      rack (~> 1.2)
  121
+    rack (1.4.1)
  122
+    rack-cache (1.2)
  123
+      rack (>= 0.4)
  124
+    rack-pjax (0.5.9)
  125
+      hpricot (~> 0.8.6)
  126
+      rack (~> 1.3)
  127
+    rack-ssl (1.3.2)
  128
+      rack
  129
+    rack-test (0.6.1)
  130
+      rack (>= 1.0)
  131
+    rails (3.2.8)
  132
+      actionmailer (= 3.2.8)
  133
+      actionpack (= 3.2.8)
  134
+      activerecord (= 3.2.8)
  135
+      activeresource (= 3.2.8)
  136
+      activesupport (= 3.2.8)
  137
+      bundler (~> 1.0)
  138
+      railties (= 3.2.8)
  139
+    rails_admin (0.0.5)
  140
+      bbenezech-nested_form (~> 0.0.6)
  141
+      bootstrap-sass (~> 2.0, >= 2.0.3)
  142
+      builder (~> 3.0)
  143
+      coffee-rails (~> 3.1)
  144
+      haml (~> 3.1)
  145
+      jquery-rails (>= 1.0.17)
  146
+      jquery-ui-rails (>= 0.5, < 2)
  147
+      kaminari (~> 0.12)
  148
+      rack-pjax (~> 0.5)
  149
+      rails (~> 3.1)
  150
+      remotipart (~> 1.0)
  151
+      sass-rails (~> 3.1)
  152
+    railties (3.2.8)
  153
+      actionpack (= 3.2.8)
  154
+      activesupport (= 3.2.8)
  155
+      rack-ssl (~> 1.3.2)
  156
+      rake (>= 0.8.7)
  157
+      rdoc (~> 3.4)
  158
+      thor (>= 0.14.6, < 2.0)
  159
+    rake (0.9.2.2)
  160
+    rdoc (3.12)
  161
+      json (~> 1.4)
  162
+    remotipart (1.0.2)
  163
+    rspec (2.11.0)
  164
+      rspec-core (~> 2.11.0)
  165
+      rspec-expectations (~> 2.11.0)
  166
+      rspec-mocks (~> 2.11.0)
  167
+    rspec-core (2.11.1)
  168
+    rspec-expectations (2.11.1)
  169
+      diff-lcs (~> 1.1.3)
  170
+    rspec-mocks (2.11.1)
  171
+    rspec-rails (2.11.0)
  172
+      actionpack (>= 3.0)
  173
+      activesupport (>= 3.0)
  174
+      railties (>= 3.0)
  175
+      rspec (~> 2.11.0)
  176
+    ruby-rc4 (0.1.5)
  177
+    sass (3.1.20)
  178
+    sass-rails (3.2.5)
  179
+      railties (~> 3.2.0)
  180
+      sass (>= 3.1.10)
  181
+      tilt (~> 1.3)
  182
+    simple_form (2.0.2)
  183
+      actionpack (~> 3.0)
  184
+      activemodel (~> 3.0)
  185
+    simplecov (0.6.4)
  186
+      multi_json (~> 1.0)
  187
+      simplecov-html (~> 0.5.3)
  188
+    simplecov-html (0.5.3)
  189
+    sprockets (2.1.3)
  190
+      hike (~> 1.2)
  191
+      rack (~> 1.0)
  192
+      tilt (~> 1.1, != 1.3.0)
  193
+    sqlite3 (1.3.6)
  194
+    therubyracer (0.10.1)
  195
+      libv8 (~> 3.3.10)
  196
+    thor (0.15.4)
  197
+    tilt (1.3.3)
  198
+    treetop (1.4.10)
  199
+      polyglot
  200
+      polyglot (>= 0.3.1)
  201
+    ttfunk (1.0.3)
  202
+    twitter-bootstrap-rails (2.1.2)
  203
+      actionpack (>= 3.1)
  204
+      less-rails (~> 2.2.3)
  205
+      railties (>= 3.1)
  206
+    tzinfo (0.3.33)
  207
+    uglifier (1.2.7)
  208
+      execjs (>= 0.3.0)
  209
+      multi_json (~> 1.3)
  210
+    warden (1.1.1)
  211
+      rack (>= 1.0)
  212
+
  213
+PLATFORMS
  214
+  ruby
  215
+
  216
+DEPENDENCIES
  217
+  active_attr
  218
+  coffee-rails (~> 3.2.1)
  219
+  devise
  220
+  encrypted-cookie-store
  221
+  factory_girl_rails (~> 4.0)
  222
+  faker
  223
+  high_voltage
  224
+  jquery-rails
  225
+  less-rails (~> 2.2.3)
  226
+  omniauth (~> 1.1.0)
  227
+  omniauth-twitter
  228
+  pg (= 0.14.0)
  229
+  prawn
  230
+  prawn-fillform
  231
+  puma
  232
+  rails (= 3.2.8)
  233
+  rails_admin (~> 0.0.5)
  234
+  rspec-rails (~> 2.0)
  235
+  simple_form
  236
+  simplecov
  237
+  sqlite3
  238
+  therubyracer
  239
+  twitter-bootstrap-rails
  240
+  uglifier (>= 1.0.3)
12  LICENSE.md
Source Rendered
... ...
@@ -0,0 +1,12 @@
  1
+Copyright © 2012 DNC Services Corporation  
  2
+http://www.democrats.org/
  3
+
  4
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
  5
+
  6
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
  7
+
  8
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  9
+
  10
+This permission does not include: (a) any use of the Software other than for its intended purpose; or (b) any use of the Software in any manner that violates applicable law.  Any use of the Software other than as specifically authorized herein is strictly prohibited and will terminate the license granted herein.
  11
+
  12
+All information, dates and content included in the Software are subject to change given the subject matter of the Software.  It is the responsibility of the user of the Software hereunder to monitor changes in applicable law.  Future versions of the Software may include updated content to reflect any changes in applicable law.
127  README.md
Source Rendered
... ...
@@ -0,0 +1,127 @@
  1
+#Voter Registration
  2
+
  3
+##About
  4
+
  5
+We need more Americans to have a say in their government, not just the special interests. That's why we should be taking down roadblocks to voting.  We believe in an America where everybody can make their voices heard.
  6
+
  7
+That is why the Democratic National Committee created this open source application to provide more opportunities to register to vote in November!  States have varying laws for voter registration, so this application is a one stop shop that contains all the voter registration information and voting checklists that you will need to vote. **This information should not be altered.**
  8
+
  9
+You can help all eligible voters register to vote by using this software.
  10
+
  11
+# What is it?
  12
+
  13
+A Ruby on Rails Application that generates a [National Voter Registration Form](http://www.eac.gov/voter_resources/register_to_vote.aspx) PDF from a webform.
  14
+Includes the guidelines for the National Voter Registration form in all states.
  15
+
  16
+## Demo
  17
+You can see a running version of the application at [http://voter-registration.herokuapp.com/](http://voter-registration.herokuapp.com/)
  18
+
  19
+## Requirements
  20
+1.  Make sure the machine that you're using has Ruby 1.9.3 installed.
  21
+    We use [rbenv](https://github.com/sstephenson/rbenv/) for Ruby version management
  22
+2.  You'll need the RubyGem "bundler" installed.
  23
+
  24
+## Installation
  25
+
  26
+    git clone git@github.com:ofa/voter-registration.git
  27
+    cd voter-registration
  28
+    bundle install
  29
+    rake db:migrate
  30
+    rake db:seed #This will load all the State information
  31
+
  32
+## Usage
  33
+    rails server
  34
+
  35
+Open up your browser and go to http://localhost:3000
  36
+
  37
+## Deploying to [Heroku](http://www.heroku.com)
  38
+You can setup a Heroku account for free [https://devcenter.heroku.com/articles/quickstart](https://devcenter.heroku.com/articles/quickstart)
  39
+
  40
+    heroku create
  41
+    heroku addons:add sendgrid:starter #Free addon used for devise emails
  42
+    git push heroku master
  43
+    heroku run rake db:migrate
  44
+    heroku run rake db:seed
  45
+
  46
+## Running Tests
  47
+
  48
+We use RSpec for tests: `bundle exec rake spec`
  49
+
  50
+## Admin the pages
  51
+We use [rails_admin](https://www.github.com/sferik/rails_admin) to manage the State Guidelines
  52
+Go to "/admin" to login and manage the Guidelines
  53
+
  54
+The default email: admin@example.com    
  55
+The default password: p@ssw0rd   
  56
+
  57
+## Supported Ruby Versions
  58
+This application aims to support and is tested against the following Ruby
  59
+implementations:
  60
+
  61
+* Ruby 1.9.2
  62
+* Ruby 1.9.3
  63
+
  64
+## Contributing
  65
+In the spirit of [free software][free-sw], **everyone** is encouraged to help
  66
+improve this project.
  67
+
  68
+[free-sw]: http://www.fsf.org/licensing/essays/free-sw.html
  69
+
  70
+Here are some ways *you* can contribute:
  71
+
  72
+* by using alpha, beta, and prerelease versions
  73
+* by reporting bugs
  74
+* by suggesting new features
  75
+* by [translating to a new language][locales]
  76
+* by writing or editing documentation
  77
+* by writing specifications
  78
+* by writing code (**no patch is too small**: fix typos, add comments, clean up
  79
+  inconsistent whitespace)
  80
+* by refactoring code
  81
+* by closing [issues][]
  82
+* by reviewing patches
  83
+
  84
+[locales]: https://github.com/democrats/voter-registration/tree/master/config/locales
  85
+[issues]: https://github.com/democrats/voter-registration/issues
  86
+
  87
+## Submitting an Issue
  88
+We use the [GitHub issue tracker][issues] to track bugs and features. Before
  89
+submitting a bug report or feature request, check to make sure it hasn't
  90
+already been submitted. You can indicate support for an existing issue by
  91
+voting it up. When submitting a bug report, please include a [Gist][] that
  92
+includes a stack trace and any details that may be necessary to reproduce the
  93
+bug, including your gem version, Ruby version, and operating system. Ideally, a
  94
+bug report should include a pull request with failing specs.
  95
+
  96
+[gist]: https://gist.github.com/
  97
+
  98
+## Submitting a Pull Request
  99
+1. Fork the project.
  100
+2. Create a topic branch. (`git checkout -b my_awesome_branch`)
  101
+3. Implement your feature or bug fix.
  102
+4. Add tests for your feature or bug fix.
  103
+5. Run `bundle exec rake spec`. If your changes are not 100% covered, go back
  104
+   to step 4.
  105
+6. Commit your changes. (`git commit -am "Added some cool things"`)
  106
+7. Push to the branch (`git push origin my_awesome_branch`)
  107
+8. Submit a [pull request](https://help.github.com/articles/using-pull-requests/)
  108
+
  109
+## Documentation
  110
+
  111
+Documentation is available in the **/doc** directory in the root of the project.
  112
+
  113
+## License
  114
+
  115
+Copyright © 2012 DNC Services Corporation
  116
+http://www.democrats.org/
  117
+
  118
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
  119
+
  120
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
  121
+
  122
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  123
+
  124
+This permission does not include: (a) any use of the Software other than for its intended purpose; or (b) any use of the Software in any manner that violates applicable law.  Any use of the Software other than as specifically authorized herein is strictly prohibited and will terminate the license granted herein.
  125
+
  126
+All information, dates and content included in the Software are subject to change given the subject matter of the Software.  It is the responsibility of the user of the Software hereunder to monitor changes in applicable law.  Future versions of the Software may include updated content to reflect any changes in applicable law.
  127
+
8  Rakefile
... ...
@@ -0,0 +1,8 @@
  1
+#!/usr/bin/env rake
  2
+# Add your own tasks in files placed in lib/tasks ending in .rake,
  3
+# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
  4
+
  5
+require File.expand_path('../config/application', __FILE__)
  6
+
  7
+VoterRegistration::Application.load_tasks
  8
+task :test => :spec
BIN  app/assets/images/rails.png
BIN  app/assets/images/sign-in-with-twitter-d.png
16  app/assets/javascripts/application.js
... ...
@@ -0,0 +1,16 @@
  1
+// This is a manifest file that'll be compiled into application.js, which will include all the files
  2
+// listed below.
  3
+//
  4
+// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
  5
+// or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path.
  6
+//
  7
+// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
  8
+// the compiled file.
  9
+//
  10
+// WARNING: THE FIRST BLANK LINE MARKS THE END OF WHAT'S TO BE PROCESSED, ANY BLANK LINE SHOULD
  11
+// GO AFTER THE REQUIRES BELOW.
  12
+//
  13
+//= require jquery
  14
+//= require jquery_ujs
  15
+//= require twitter/bootstrap
  16
+//= require_tree .
4  app/assets/javascripts/bootstrap.js.coffee
... ...
@@ -0,0 +1,4 @@
  1
+jQuery ->
  2
+  $("a[rel=popover]").popover()
  3
+  $(".tooltip").tooltip()
  4
+  $("a[rel=tooltip]").tooltip()
3  app/assets/javascripts/guidelines.js.coffee
... ...
@@ -0,0 +1,3 @@
  1
+# Place all the behaviors and hooks related to the matching controller here.
  2
+# All this logic will automatically be available in application.js.
  3
+# You can use CoffeeScript in this file: http://jashkenas.github.com/coffee-script/
3  app/assets/javascripts/home.js.coffee
... ...
@@ -0,0 +1,3 @@
  1
+# Place all the behaviors and hooks related to the matching controller here.
  2
+# All this logic will automatically be available in application.js.
  3
+# You can use CoffeeScript in this file: http://jashkenas.github.com/coffee-script/
25  app/assets/javascripts/register.js.coffee
... ...
@@ -0,0 +1,25 @@
  1
+# Place all the behaviors and hooks related to the matching controller here.
  2
+# All this logic will automatically be available in application.js.
  3
+# You can use CoffeeScript in this file: http://jashkenas.github.com/coffee-script/
  4
+$(document).scroll ->
  5
+
  6
+  # If has not activated (has no attribute "data-top"
  7
+  unless $(".subnav").attr("data-top")
  8
+
  9
+    # If already fixed, then do nothing
  10
+    return  if $(".subnav").hasClass("subnav-fixed")
  11
+
  12
+    # Remember top position
  13
+    offset = $(".subnav").offset()
  14
+    $(".subnav").attr "data-top", offset.top
  15
+  if $(".subnav").attr("data-top") - $(".subnav").outerHeight() <= $(this).scrollTop()
  16
+    $(".subnav").addClass "subnav-fixed"
  17
+  else
  18
+    $(".subnav").removeClass "subnav-fixed"
  19
+
  20
+jQuery ->
  21
+  $('#register_citizen').change ->
  22
+    us_citizen = $('#register_citizen')
  23
+    if us_citizen.is(":checked")
  24
+    else
  25
+      alert "You must be a U.S. citizen to vote."
3  app/assets/stylesheets/application.css
... ...
@@ -0,0 +1,3 @@
  1
+/*
  2
+ *= require_tree .
  3
+*/
476  app/assets/stylesheets/bootstrap_and_overrides.css.less
... ...
@@ -0,0 +1,476 @@
  1
+@import "twitter/bootstrap/bootstrap";
  2
+body {
  3
+  padding-top: 60px !important;
  4
+}
  5
+
  6
+@import "twitter/bootstrap/responsive";
  7
+
  8
+// Set the correct sprite paths
  9
+@iconSpritePath: asset-path('twitter/bootstrap/glyphicons-halflings.png');
  10
+@iconWhiteSpritePath: asset-path('twitter/bootstrap/glyphicons-halflings-white.png');
  11
+
  12
+// Set the Font Awesome (Font Awesome is default. You can disable by commenting below lines)
  13
+// Note: If you use asset_path() here, your compiled boostrap_and_overrides.css will not
  14
+//       have the proper paths. So for now we use the absolute path.
  15
+//@fontAwesomeEotPath: '/assets/fontawesome-webfont.eot';
  16
+//@fontAwesomeWoffPath: '/assets/fontawesome-webfont.woff';
  17
+//@fontAwesomeTtfPath: '/assets/fontawesome-webfont.ttf';
  18
+//@fontAwesomeSvgPath: '/assets/fontawesome-webfont.svg';
  19
+
  20
+// Font Awesome
  21
+//@import "fontawesome";
  22
+
  23
+@import "variables";
  24
+body {
  25
+  margin: 0;
  26
+  font-family: 'Crimson Text', "Times New Roman", Times, serif;
  27
+  font-size: 17px;
  28
+  line-height: 1.3em;
  29
+  color: @grey;
  30
+  background-color: @beige;
  31
+}
  32
+
  33
+@linkColor: @blueDark;
  34
+@dropdownLinkColor: @blueDark;
  35
+
  36
+.nav-list > .active > a,
  37
+.nav-list > .active > a:hover {
  38
+  color: #ffffff;
  39
+  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2);
  40
+  background-color: @blueDark;
  41
+}
  42
+
  43
+.nav-pills > .active > a,
  44
+.nav-pills > .active > a:hover {
  45
+  color: #ffffff;
  46
+  background-color: @blueDark;
  47
+}
  48
+
  49
+.nav-tabs .dropdown-toggle .caret,
  50
+.nav-pills .dropdown-toggle .caret {
  51
+  border-top-color: @blueDark;
  52
+  border-bottom-color: @blueDark;
  53
+  margin-top: 6px;
  54
+}
  55
+.navbar-inner {
  56
+  min-height: 50px;
  57
+  padding-left: 20px;
  58
+  padding-right: 20px;
  59
+  background-color: #fff !important;
  60
+  background-repeat: repeat-x;
  61
+  -webkit-border-radius: 4px;
  62
+  -moz-border-radius: 4px;
  63
+  border-radius: 4px;
  64
+  -webkit-box-shadow: 0 1px 3px rgba(0,0,0,.25), inset 0 -1px 0 rgba(0,0,0,.1);
  65
+  -moz-box-shadow: 0 1px 3px rgba(0,0,0,.25), inset 0 -1px 0 rgba(0,0,0,.1);
  66
+  border-bottom: 3px solid @beigeLight;
  67
+  box-shadow: 0 -1px 4px rgba(0, 0, 0, 0.25), 0 0 0 rgba(0, 0, 0, 0.1) inset;
  68
+}
  69
+
  70
+.navbar {
  71
+  color: @grey;
  72
+}
  73
+
  74
+@navbarBrandColor: @grey;
  75
+@navbarLinkColor: @blueDark;
  76
+
  77
+.navbar .brand {
  78
+  font-weight: bold;
  79
+  line-height: 1em;
  80
+  padding: 10px 10px;
  81
+  padding: 15px 10px 5px \0;
  82
+}
  83
+
  84
+.navbar .nav > li > a {
  85
+  float: none;
  86
+  padding: 9px 10px 11px;
  87
+  line-height: 19px;
  88
+  color: @blueDark;
  89
+  text-decoration: none;
  90
+}
  91
+.navbar .nav > li > a:hover {
  92
+  background-color: transparent;
  93
+  color: #c50001;
  94
+  text-decoration: none;
  95
+}
  96
+
  97
+.navbar .nav > li > a:hover {
  98
+  background-color: transparent;
  99
+  color: #c50001;
  100
+  text-decoration: none;
  101
+}
  102
+
  103
+@navbarLinkBackgroundActive: @beige;
  104
+
  105
+.navbar .divider-vertical {
  106
+  height: 40px;
  107
+  width: 1px;
  108
+  margin: 0 9px;
  109
+  overflow: hidden;
  110
+  background-color: @beige;
  111
+  border-right: 1px solid @beige;
  112
+}
  113
+
  114
+.hero-unit {
  115
+  margin-top: 50px;
  116
+  padding: 20px 45px 30px;
  117
+  margin-bottom: 30px;
  118
+  background-color: #ffffff;
  119
+  -webkit-border-radius: 6px;
  120
+  -moz-border-radius: 6px;
  121
+  border-radius: 6px;
  122
+}
  123
+
  124
+.well,
  125
+.hero-unit {
  126
+  -webkit-box-shadow: none;
  127
+  -moz-box-shadow: none;
  128
+  box-shadow: none;
  129
+  border: 1px solid #D4D4D4;
  130
+  -webkit-border-radius: 0;
  131
+  -moz-border-radius: 0;
  132
+  border-radius: 5px;
  133
+  background-color: #ffffff;
  134
+}
  135
+
  136
+
  137
+h1,
  138
+h2,
  139
+h3,
  140
+h4,
  141
+h5,
  142
+h6 {
  143
+  line-height: 2em;
  144
+  color: @grey;
  145
+}
  146
+.navbar .nav > li.active > a,
  147
+.navbar .open .dropdown-toggle {
  148
+  color: @greyLight;
  149
+}
  150
+.navbar .nav li.dropdown.active > .dropdown-toggle,
  151
+.navbar .nav li.dropdown.open > .dropdown-toggle,
  152
+.navbar .nav li.dropdown.active.open > .dropdown-toggle {
  153
+  color: @greyLight;
  154
+}
  155
+.navbar .nav li.dropdown .dropdown-toggle .caret,
  156
+.navbar .nav li.dropdown.open .caret {
  157
+  border-top-color: @blueDark;
  158
+  opacity: 1;
  159
+}
  160
+
  161
+.navbar .nav-collapse.in .nav li > a {
  162
+  color: @blueDark;
  163
+  -webkit-border-radius: 0;
  164
+  -moz-border-radius: 0;
  165
+  border-radius: 0;
  166
+  font-weight: normal;
  167
+}
  168
+nav-tabs li.active > a,
  169
+.nav-tabs li.active > a:hover {
  170
+  color: @grey;
  171
+  background-color: @beige;
  172
+}
  173
+.nav-pills li > a:hover {
  174
+  background-color: @beige;
  175
+}
  176
+.nav-pills li.active > a,
  177
+.nav-pills li.active > a:hover {
  178
+  color: @grey;
  179
+  background-color: @beige;
  180
+}
  181
+.nav-pills .open .dropdown-toggle {
  182
+  background-color: transparent;
  183
+  color: @blueDark;
  184
+  border-left: 1px solid whiteSmoke;
  185
+  border-right: 1px solid #E5E5E5;
  186
+}
  187
+.nav-pills li.dropdown.open .dropdown-toggle .caret {
  188
+  border-top-color: @blueDark;
  189
+}
  190
+.nav-list li.active > a,
  191
+.nav-list li.active > a:hover {
  192
+  color: @grey;
  193
+}
  194
+.pagination li.active > a:hover {
  195
+  color: @grey;
  196
+  background-color: #F5F5F5;
  197
+}
  198
+div.subnav {
  199
+  -webkit-box-shadow: none;
  200
+  -moz-box-shadow: none;
  201
+  box-shadow: none;
  202
+  -webkit-border-radius: 0;
  203
+  -moz-border-radius: 0;
  204
+  border-radius: 0;
  205
+      font-size: 15px;
  206
+
  207
+  background-color: @tan;
  208
+  background-image: none;
  209
+}
  210
+div.subnav .nav {
  211
+  padding: 0;
  212
+}
  213
+div.subnav .nav > li.active > a,
  214
+div.subnav .nav > li:active > a {
  215
+  color: @greyLight;
  216
+  -webkit-box-shadow: none;
  217
+  -moz-box-shadow: none;
  218
+  box-shadow: none;
  219
+  background-color: @beige;
  220
+}
  221
+div.subnav .nav > li > a:hover,
  222
+div.subnav .nav > li.active > a:hover,
  223
+div.subnav .nav > li:active > a:hover {
  224
+  color: #c50001;
  225
+  -webkit-box-shadow: none;
  226
+  -moz-box-shadow: none;
  227
+  box-shadow: none;
  228
+  background-color: transparent;
  229
+}
  230
+div.subnav-fixed {
  231
+  left: auto;
  232
+  width: 100%;
  233
+  margin: 0;
  234
+  -webkit-box-shadow: none;
  235
+  -moz-box-shadow: none;
  236
+  box-shadow: none;
  237
+  -webkit-border-radius: 4px;
  238
+  -moz-border-radius: 4px;
  239
+  border-radius: 4px;
  240
+  border: 1px solid #E5E5E5;
  241
+}
  242
+div.subnav-fixed .nav {
  243
+    margin: 0 auto;
  244
+    padding: 0 1px;
  245
+    width: 938px;
  246
+}
  247
+
  248
+
  249
+.navbar .nav-collapse.in .nav li > a {
  250
+  color: @blueDark;
  251
+  -webkit-border-radius: 0;
  252
+  -moz-border-radius: 0;
  253
+  border-radius: 0;
  254
+  font-weight: normal;
  255
+}
  256
+.nav-tabs li.active > a,
  257
+.nav-tabs li.active > a:hover {
  258
+  color: @grey;
  259
+  background-color: @beige;
  260
+}
  261
+.nav-pills li > a:hover {
  262
+  background-color: @beige;
  263
+}
  264
+.nav-pills li.active > a,
  265
+.nav-pills li.active > a:hover {
  266
+  color: @grey;
  267
+  background-color: @beige;
  268
+}
  269
+.nav-pills .open .dropdown-toggle {
  270
+  background-color: transparent;
  271
+  color: @blueDark;
  272
+  border-left: 1px solid whiteSmoke;
  273
+  border-right: 1px solid #E5E5E5;
  274
+}
  275
+.nav-pills li.dropdown.open .dropdown-toggle .caret {
  276
+  border-top-color: @blueDark;
  277
+}
  278
+.nav-list li.active > a,
  279
+.nav-list li.active > a:hover {
  280
+  color: @grey;
  281
+}
  282
+.pagination li.active > a:hover {
  283
+  color: @grey;
  284
+  background-color: #F5F5F5;
  285
+}
  286
+.btn-primary {
  287
+  background-color: @blueDark;
  288
+  background-image: -moz-linear-gradient(top, @blue, @blueDark);
  289
+  background-image: -ms-linear-gradient(top, @blue, @blueDark);
  290
+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(@blue), to(@blueDark));
  291
+  background-image: -webkit-linear-gradient(top, @blue, @blueDark);
  292
+  background-image: -o-linear-gradient(top, @blue, @blueDark);
  293
+  background-image: linear-gradient(top, @blue, @blueDark);
  294
+  background-repeat: repeat-x;
  295
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#cf0001', endColorstr='@blueDark', GradientType=0);
  296
+  border-color: @blueDark @blueDark @blue;
  297
+  *background-color: @blueDark;
  298
+  /* Darken IE7 buttons by default so they stand out more given they won't have borders */
  299
+
  300
+  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
  301
+}
  302
+.btn-primary:active,
  303
+.btn-primary.active,
  304
+.btn-primary.disabled,
  305
+.btn-primary[disabled] {
  306
+  background-color: @blueDark;
  307
+  *background-color: @blueDark;
  308
+}
  309
+.btn-primary:active,
  310
+.btn-primary.active {
  311
+  background-color: @blueDark;
  312
+}
  313
+.btn-primary[disabled] {
  314
+  background-color: @blueDark;
  315
+  *background-color: @blueDark;
  316
+}
  317
+.btn-primary:active,
  318
+.btn-primary.active {
  319
+  background-color: @blueDark;
  320
+}
  321
+input,
  322
+textarea,
  323
+select {
  324
+  color: @grey;
  325
+}
  326
+
  327
+.modal-footer {
  328
+  background-color: @beige;
  329
+}
  330
+label,
  331
+input,
  332
+button,
  333
+select,
  334
+textarea {
  335
+  font-size: 17px;
  336
+  font-weight: normal;
  337
+  line-height: 1.3em;
  338
+}
  339
+input,
  340
+button,
  341
+select,
  342
+textarea {
  343
+  font-family: 'Crimson Text', "Times New Roman", Times, serif;
  344
+}
  345
+
  346
+.nav-list > .active > a,
  347
+.nav-list > .active > a:hover {
  348
+  color: #ffffff;
  349
+  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2);
  350
+  background-color: @tan;
  351
+}
  352
+
  353
+/* Sidenav for Docs
  354
+-------------------------------------------------- */
  355
+
  356
+/* prevent column from collapsing when affixing */
  357
+.span3 {
  358
+  min-height: 1px;
  359
+}
  360
+
  361
+.sidenav {
  362
+  width: 228px;
  363
+  margin: 30px 0 0;
  364
+  padding: 0;
  365
+  background-color: #fff;
  366
+  -webkit-border-radius: 6px;
  367
+     -moz-border-radius: 6px;
  368
+          border-radius: 6px;
  369
+  -webkit-box-shadow: 0 1px 4px rgba(0,0,0,.065);
  370
+     -moz-box-shadow: 0 1px 4px rgba(0,0,0,.065);
  371
+          box-shadow: 0 1px 4px rgba(0,0,0,.065);
  372
+}
  373
+.sidenav > li > a {
  374
+  display: block;
  375
+  *width: 190px;
  376
+  margin: 0 0 -1px;
  377
+  padding: 8px 14px;
  378
+  border: 1px solid #e5e5e5;
  379
+}
  380
+.sidenav > li:first-child > a {
  381
+  -webkit-border-radius: 6px 6px 0 0;
  382
+     -moz-border-radius: 6px 6px 0 0;
  383
+          border-radius: 6px 6px 0 0;
  384
+}
  385
+.sidenav > li:last-child > a {
  386
+  -webkit-border-radius: 0 0 6px 6px;
  387
+     -moz-border-radius: 0 0 6px 6px;
  388
+          border-radius: 0 0 6px 6px;
  389
+}
  390
+.sidenav > .active > a {
  391
+  position: relative;
  392
+  z-index: 2;
  393
+  padding: 9px 15px;
  394
+  border: 0;
  395
+  text-shadow: 0 1px 0 rgba(0,0,0,.15);
  396
+  -webkit-box-shadow: inset 1px 0 0 rgba(0,0,0,.1), inset -1px 0 0 rgba(0,0,0,.1);
  397
+     -moz-box-shadow: inset 1px 0 0 rgba(0,0,0,.1), inset -1px 0 0 rgba(0,0,0,.1);
  398
+          box-shadow: inset 1px 0 0 rgba(0,0,0,.1), inset -1px 0 0 rgba(0,0,0,.1);
  399
+}
  400
+/* Chevrons */
  401
+.sidenav .icon-chevron-right {
  402
+  float: right;
  403
+  margin-top: 2px;
  404
+  margin-right: -6px;
  405
+  opacity: .25;
  406
+}
  407
+.sidenav > li > a:hover {
  408
+  background-color: @beige;
  409
+}
  410
+.sidenav a:hover .icon-chevron-right {
  411
+  opacity: .5;
  412
+}
  413
+.sidenav .active .icon-chevron-right,
  414
+.sidenav .active a:hover .icon-chevron-right {
  415
+  background-image: url(@iconSpritePath);
  416
+  opacity: 1;
  417
+}
  418
+.sidenav.affix {
  419
+  top: 40px;
  420
+}
  421
+.sidenav.affix-bottom {
  422
+  position: absolute;
  423
+  top: auto;
  424
+  bottom: 270px;
  425
+}
  426
+
  427
+/* Responsive
  428
+-------------------------------------------------- */
  429
+
  430
+/* Desktop large
  431
+------------------------- */
  432
+@media (min-width: 1200px) {
  433
+  .sidenav {
  434
+    width: 258px;
  435
+  }
  436
+}
  437
+
  438
+/* Desktop
  439
+------------------------- */
  440
+@media (max-width: 980px) {
  441
+  /* When affixed, space properly */
  442
+  .sidenav {
  443
+    top: 0;
  444
+    margin-top: 30px;
  445
+    margin-right: 0;
  446
+  }
  447
+}
  448
+
  449
+/* Tablet to desktop
  450
+------------------------- */
  451
+@media (min-width: 768px) and (max-width: 980px) {
  452
+  /* Adjust sidenav width */
  453
+  .sidenav {
  454
+    width: 166px;
  455
+    margin-top: 20px;
  456
+  }
  457
+  .sidenav.affix {
  458
+    top: 0;
  459
+  }
  460
+}
  461
+
  462
+/* Tablet
  463
+------------------------- */
  464
+@media (max-width: 768px) {
  465
+  /* Sidenav */
  466
+  .sidenav {
  467
+    width: auto;
  468
+    margin-bottom: 20px;
  469
+  }
  470
+  .sidenav.affix {
  471
+    position: static;
  472
+    width: auto;
  473
+    top: 0;
  474
+  }
  475
+}
  476
+
3  app/assets/stylesheets/guidelines.css.less
... ...
@@ -0,0 +1,3 @@
  1
+// Place all the styles related to the guidelines controller here.
  2
+// They will automatically be included in application.css.
  3
+// You can use Less here: http://lesscss.org/
46  app/assets/stylesheets/register.css.less
... ...
@@ -0,0 +1,46 @@
  1
+// Place all the styles related to the register controller here.
  2
+// They will automatically be included in application.css.
  3
+// You can use Less here: http://lesscss.org/
  4
+
  5
+@media (max-width: 979px) {
  6
+  body {
  7
+    padding-top: 0 !important;
  8
+  }
  9
+  .hero-unit {
  10
+    margin-top: 15px;
  11
+  }
  12
+  h1 {
  13
+    padding-top: 0;
  14
+  }
  15
+  .subnav .nav > li > a  {
  16
+    border-right: 0;
  17
+  }
  18
+  .navbar-fixed-top .navbar-inner, .navbar-fixed-bottom .navbar-inner {
  19
+    padding: 1px 3px 0 10px !important;
  20
+}
  21
+}
  22
+
  23
+.section-header {
  24
+  text-align: center;
  25
+  margin: 0px 0 10px;
  26
+  border-bottom: 1px solid #ccc;
  27
+}
  28
+
  29
+.footer {
  30
+  padding: 70px 0;
  31
+  margin-top: 70px;
  32
+  border-top: 1px solid #e5e5e5;
  33
+  background-color: #f5f5f5;
  34
+}
  35
+.footer p {
  36
+  margin-bottom: 0;
  37
+  color: #777;
  38
+}
  39
+.footer-links {
  40
+  margin: 10px 0;
  41
+}
  42
+.footer-links li {
  43
+  display: inline;
  44
+  margin-right: 10px;
  45
+}
  46
+
10  app/assets/stylesheets/variables.less
... ...
@@ -0,0 +1,10 @@
  1
+
  2
+@red:           #6688BB;
  3
+@grey:          #283744;
  4
+@greyLight:     #7B8784;
  5
+@tan:           #F3EfE0;
  6
+@beige:         #FAF9F5;
  7
+@beigeLight:    #F8F5EB;
  8
+@blueDark:      #4574BA;