hackathon_manager 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (205) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.md +90 -0
  4. data/Rakefile +36 -0
  5. data/app/assets/config/hackathon_manager_manifest.js +0 -0
  6. data/app/assets/javascripts/hackathon_manager/application.js +16 -0
  7. data/app/assets/javascripts/hackathon_manager/jquery.transit.min.js +1 -0
  8. data/app/assets/javascripts/hackathon_manager/main.js +237 -0
  9. data/app/assets/javascripts/hackathon_manager/manage/application.js +20 -0
  10. data/app/assets/javascripts/hackathon_manager/manage/lib/emailEvents.js +25 -0
  11. data/app/assets/javascripts/hackathon_manager/manage/lib/jquery.bulkRowSelect.js +13 -0
  12. data/app/assets/javascripts/hackathon_manager/manage/lib/jquery.bulkRowedit.js +42 -0
  13. data/app/assets/javascripts/hackathon_manager/manage/lib/jquery.chartkickAutoReload.js +8 -0
  14. data/app/assets/javascripts/hackathon_manager/manage/lib/setupDataTables.js +98 -0
  15. data/app/assets/javascripts/hackathon_manager/manage/lib/setupHighcharts.js +34 -0
  16. data/app/assets/javascripts/hackathon_manager/manage/map.js +58 -0
  17. data/app/assets/javascripts/hackathon_manager/registrations.js +26 -0
  18. data/app/assets/javascripts/hackathon_manager/us.json +1 -0
  19. data/app/assets/javascripts/hackathon_manager/vendor/buttons.html5.min.js +22 -0
  20. data/app/assets/javascripts/hackathon_manager/vendor/d3.v3.min.js +5 -0
  21. data/app/assets/javascripts/hackathon_manager/vendor/dataTables.buttons.min.js +35 -0
  22. data/app/assets/javascripts/hackathon_manager/vendor/jquery.dataTables.min.js +164 -0
  23. data/app/assets/javascripts/hackathon_manager/vendor/pdfmake.min.js +22 -0
  24. data/app/assets/javascripts/hackathon_manager/vendor/queue.v1.min.js +1 -0
  25. data/app/assets/javascripts/hackathon_manager/vendor/topojson.v1.min.js +1 -0
  26. data/app/assets/javascripts/hackathon_manager/vendor/vfs_fonts.js +1 -0
  27. data/app/assets/stylesheets/hackathon_manager/core.sass +20 -0
  28. data/app/assets/stylesheets/hackathon_manager/datatables/buttons.dataTables.min.css +1 -0
  29. data/app/assets/stylesheets/hackathon_manager/datatables/jquery.dataTables.min.css +1 -0
  30. data/app/assets/stylesheets/hackathon_manager/forms/_confirmation.sass +21 -0
  31. data/app/assets/stylesheets/hackathon_manager/forms/_forms.sass +243 -0
  32. data/app/assets/stylesheets/hackathon_manager/general/_base.sass +105 -0
  33. data/app/assets/stylesheets/hackathon_manager/general/_button.sass +49 -0
  34. data/app/assets/stylesheets/hackathon_manager/general/_footer.sass +21 -0
  35. data/app/assets/stylesheets/hackathon_manager/general/_main.sass +4 -0
  36. data/app/assets/stylesheets/hackathon_manager/general/_media-queries.sass +52 -0
  37. data/app/assets/stylesheets/hackathon_manager/general/_mixins.sass +58 -0
  38. data/app/assets/stylesheets/hackathon_manager/general/_mlh.sass +13 -0
  39. data/app/assets/stylesheets/hackathon_manager/general/_sidebar.sass +70 -0
  40. data/app/assets/stylesheets/hackathon_manager/general/_status-colors.sass +14 -0
  41. data/app/assets/stylesheets/hackathon_manager/general/_table.sass +26 -0
  42. data/app/assets/stylesheets/hackathon_manager/mailer.sass +108 -0
  43. data/app/assets/stylesheets/hackathon_manager/manage.sass +119 -0
  44. data/app/assets/stylesheets/hackathon_manager/scaffolds.scss +50 -0
  45. data/app/assets/stylesheets/variables.sass +41 -0
  46. data/app/controllers/bus_lists_controller.rb +37 -0
  47. data/app/controllers/concerns/questionnaires_controllable.rb +15 -0
  48. data/app/controllers/manage/admins_controller.rb +55 -0
  49. data/app/controllers/manage/application_controller.rb +13 -0
  50. data/app/controllers/manage/bus_lists_controller.rb +71 -0
  51. data/app/controllers/manage/dashboard_controller.rb +112 -0
  52. data/app/controllers/manage/messages_controller.rb +88 -0
  53. data/app/controllers/manage/questionnaires_controller.rb +172 -0
  54. data/app/controllers/manage/schools_controller.rb +87 -0
  55. data/app/controllers/manage/stats_controller.rb +77 -0
  56. data/app/controllers/questionnaires_controller.rb +145 -0
  57. data/app/controllers/rsvps_controller.rb +97 -0
  58. data/app/controllers/users/omniauth_callbacks_controller.rb +18 -0
  59. data/app/controllers/users/registrations_controller.rb +63 -0
  60. data/app/datatables/admin_datatable.rb +29 -0
  61. data/app/datatables/message_datatable.rb +30 -0
  62. data/app/datatables/questionnaire_datatable.rb +39 -0
  63. data/app/datatables/school_datatable.rb +34 -0
  64. data/app/helpers/hackathon_manager_helper.rb +36 -0
  65. data/app/helpers/manage/dashboard_helper.rb +9 -0
  66. data/app/inputs/deletable_attachment_input.rb +11 -0
  67. data/app/inputs/formatted_boolean_input.rb +26 -0
  68. data/app/inputs/school_selection_input.rb +9 -0
  69. data/app/mailers/application_mailer.rb +4 -0
  70. data/app/mailers/mail_preview.rb +42 -0
  71. data/app/mailers/mailer.rb +84 -0
  72. data/app/models/bus_list.rb +24 -0
  73. data/app/models/deletable_attachment.rb +17 -0
  74. data/app/models/fips.rb +3 -0
  75. data/app/models/message.rb +76 -0
  76. data/app/models/questionnaire.rb +166 -0
  77. data/app/models/schedule.rb +53 -0
  78. data/app/models/school.rb +31 -0
  79. data/app/models/school_name_duplicate.rb +7 -0
  80. data/app/models/user.rb +52 -0
  81. data/app/views/application/_bus_list_info.html.haml +20 -0
  82. data/app/views/application/_bus_list_stats.html.haml +9 -0
  83. data/app/views/application/_questionnaire_summary.html.haml +54 -0
  84. data/app/views/bus_lists/show.html.haml +45 -0
  85. data/app/views/devise/passwords/_form.html.haml +9 -0
  86. data/app/views/devise/passwords/edit.html.haml +14 -0
  87. data/app/views/devise/passwords/new.html.haml +5 -0
  88. data/app/views/devise/registrations/_form.html.haml +8 -0
  89. data/app/views/devise/registrations/edit.html.haml +20 -0
  90. data/app/views/devise/registrations/new.html.haml +18 -0
  91. data/app/views/devise/sessions/_form.html.haml +8 -0
  92. data/app/views/devise/sessions/new.html.haml +9 -0
  93. data/app/views/layouts/_shared_footer.html.haml +1 -0
  94. data/app/views/layouts/_sidebar.html.haml +22 -0
  95. data/app/views/layouts/blank.html.haml +12 -0
  96. data/app/views/layouts/dayof.html.haml +12 -0
  97. data/app/views/layouts/hackathon_manager.html.haml +12 -0
  98. data/app/views/layouts/mailer.html.erb +51 -0
  99. data/app/views/layouts/manage/application.html.haml +26 -0
  100. data/app/views/mailer/_getting_there.html.erb +14 -0
  101. data/app/views/mailer/_questions.html.erb +2 -0
  102. data/app/views/mailer/accepted_email.html.erb +13 -0
  103. data/app/views/mailer/application_confirmation_email.html.erb +13 -0
  104. data/app/views/mailer/bulk_message_email.html.erb +1 -0
  105. data/app/views/mailer/bulk_templates/_default.html.erb +1 -0
  106. data/app/views/mailer/bus_captain_confirmation_email.html.erb +12 -0
  107. data/app/views/mailer/bus_list_update_email.html.erb +7 -0
  108. data/app/views/mailer/denied_email.html.erb +5 -0
  109. data/app/views/mailer/incomplete_reminder_email.html.erb +6 -0
  110. data/app/views/mailer/rsvp_confirmation_email.html.erb +8 -0
  111. data/app/views/mailer/slack_invite_email.html.erb +10 -0
  112. data/app/views/manage/admins/_form.html.haml +18 -0
  113. data/app/views/manage/admins/edit.html.haml +12 -0
  114. data/app/views/manage/admins/index.html.haml +15 -0
  115. data/app/views/manage/admins/new.html.haml +8 -0
  116. data/app/views/manage/admins/show.html.haml +17 -0
  117. data/app/views/manage/bus_lists/_form.html.haml +14 -0
  118. data/app/views/manage/bus_lists/edit.html.haml +8 -0
  119. data/app/views/manage/bus_lists/index.html.haml +26 -0
  120. data/app/views/manage/bus_lists/new.html.haml +6 -0
  121. data/app/views/manage/bus_lists/show.html.haml +92 -0
  122. data/app/views/manage/dashboard/index.html.haml +64 -0
  123. data/app/views/manage/dashboard/map_data.tsv.erb +48 -0
  124. data/app/views/manage/messages/_form.html.haml +15 -0
  125. data/app/views/manage/messages/edit.html.haml +10 -0
  126. data/app/views/manage/messages/index.html.haml +17 -0
  127. data/app/views/manage/messages/new.html.haml +8 -0
  128. data/app/views/manage/messages/show.html.haml +50 -0
  129. data/app/views/manage/questionnaires/_form.html.haml +54 -0
  130. data/app/views/manage/questionnaires/edit.html.haml +12 -0
  131. data/app/views/manage/questionnaires/index.html.haml +36 -0
  132. data/app/views/manage/questionnaires/new.html.haml +8 -0
  133. data/app/views/manage/questionnaires/show.html.haml +63 -0
  134. data/app/views/manage/schools/_form.html.haml +16 -0
  135. data/app/views/manage/schools/edit.html.haml +12 -0
  136. data/app/views/manage/schools/index.html.haml +18 -0
  137. data/app/views/manage/schools/merge.html.haml +35 -0
  138. data/app/views/manage/schools/new.html.haml +8 -0
  139. data/app/views/manage/schools/show.html.haml +52 -0
  140. data/app/views/manage/stats/index.html.haml +55 -0
  141. data/app/views/questionnaires/_form.html.haml +70 -0
  142. data/app/views/questionnaires/edit.html.haml +10 -0
  143. data/app/views/questionnaires/new.html.haml +7 -0
  144. data/app/views/questionnaires/show.html.haml +30 -0
  145. data/app/views/rsvps/show.html.haml +61 -0
  146. data/app/workers/bulk_message_worker.rb +86 -0
  147. data/app/workers/slack_invite_worker.rb +49 -0
  148. data/config/blazer.yml +56 -0
  149. data/config/initializers/ajax_datatables_rails.rb +7 -0
  150. data/config/initializers/chartkick.rb +4 -0
  151. data/config/initializers/devise.rb +265 -0
  152. data/config/initializers/hackathon.rb +9 -0
  153. data/config/initializers/mime_types.rb +5 -0
  154. data/config/initializers/new_framework_defaults.rb +20 -0
  155. data/config/initializers/sidekiq.rb +11 -0
  156. data/config/initializers/simple_form.rb +164 -0
  157. data/config/initializers/static_data.rb +7 -0
  158. data/config/initializers/wrap_parameters.rb +14 -0
  159. data/config/routes.rb +74 -0
  160. data/db/migrate/20141011210642_create_participants.rb +18 -0
  161. data/db/migrate/20141029055313_create_schools.rb +12 -0
  162. data/db/migrate/20150104071608_add_shirt_and_dietary_medical_to_participants.rb +6 -0
  163. data/db/migrate/20150104190233_add_attachment_resume_to_participants.rb +13 -0
  164. data/db/migrate/20150110020958_add_international_to_participants.rb +5 -0
  165. data/db/migrate/20150110215933_change_participants_to_registration.rb +5 -0
  166. data/db/migrate/20150110222214_create_users.rb +5 -0
  167. data/db/migrate/20150110222455_add_portfolio_and_vcs_urls_to_registrations.rb +6 -0
  168. data/db/migrate/20150110222655_add_devise_to_users.rb +48 -0
  169. data/db/migrate/20150111000224_change_resgistrations_to_questionnaire.rb +5 -0
  170. data/db/migrate/20150111012709_add_questionnaire_ref_to_users.rb +8 -0
  171. data/db/migrate/20150113205638_add_amin_to_users.rb +5 -0
  172. data/db/migrate/20150113233730_add_questionnaire_count_to_schools.rb +12 -0
  173. data/db/migrate/20150125213100_set_default_admin_value.rb +17 -0
  174. data/db/migrate/20150216232155_add_agreement_accepted_to_questionnaires.rb +5 -0
  175. data/db/migrate/20150218051450_add_admin_read_only_to_users.rb +5 -0
  176. data/db/migrate/20150221165513_create_messages.rb +15 -0
  177. data/db/migrate/20150225235817_add_status_to_user.rb +7 -0
  178. data/db/migrate/20150302011457_create_fips.rb +11 -0
  179. data/db/migrate/20150326031423_add_template_to_message.rb +5 -0
  180. data/db/migrate/20150410175056_create_bus_lists.rb +12 -0
  181. data/db/migrate/20150411161432_add_capacity_notes_captain_to_bus_lists.rb +8 -0
  182. data/db/migrate/20150415165844_add_is_bus_captain_to_questionnaire.rb +5 -0
  183. data/db/migrate/20150415181114_add_check_in_data_to_questionnaire.rb +8 -0
  184. data/db/migrate/20151224015223_change_read_only_user_to_limited.rb +5 -0
  185. data/db/migrate/20160110012217_add_code_of_conduct_accepted_to_questionnaire.rb +5 -0
  186. data/db/migrate/20160110222639_add_omniauth_to_users.rb +8 -0
  187. data/db/migrate/20160111020817_update_questionnaire_for_my_mlh.rb +14 -0
  188. data/db/migrate/20160112222137_add_option_for_alt_travel_to_questionnaire.rb +6 -0
  189. data/db/migrate/20160208061253_rename_can_share_resume_to_info.rb +5 -0
  190. data/db/migrate/20161020032736_remove_resume_from_questionnaires.rb +14 -0
  191. data/db/migrate/20161024145452_add_data_sharing_to_questionnaire.rb +5 -0
  192. data/db/migrate/20161206073921_rename_graduation_to_level_of_study.rb +6 -0
  193. data/db/migrate/20161206084722_add_reminder_sent_at_to_users.rb +5 -0
  194. data/db/migrate/20161208055809_add_attachment_resume_to_questionnaires.rb +11 -0
  195. data/db/migrate/20161212030010_add_interest_to_questionnaire.rb +5 -0
  196. data/db/migrate/20170107210122_create_school_name_duplicates.rb +10 -0
  197. data/db/migrate/20170128063020_install_blazer.rb +45 -0
  198. data/db/schools.csv +1 -0
  199. data/db/seeds.rb +17 -0
  200. data/lib/hackathon_manager/engine.rb +35 -0
  201. data/lib/hackathon_manager/version.rb +3 -0
  202. data/lib/hackathon_manager.rb +5 -0
  203. data/lib/tasks/coverage.rake +14 -0
  204. data/lib/tasks/hackathon_manager_tasks.rake +4 -0
  205. metadata +667 -0
data/config/routes.rb ADDED
@@ -0,0 +1,74 @@
1
+ # For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html
2
+
3
+ Rails.application.routes.draw do
4
+ require 'sidekiq/web'
5
+
6
+ devise_for :users, controllers: { registrations: "users/registrations", omniauth_callbacks: "users/omniauth_callbacks" }
7
+
8
+ mount MailPreview => 'mail_view' if Rails.env.development?
9
+
10
+ authenticate :user, ->(u) { u.admin? && !u.admin_limited_access? } do
11
+ mount Sidekiq::Web => '/sidekiq'
12
+ mount Blazer::Engine, at: "blazer"
13
+ end
14
+
15
+ resource :questionnaires, path: "apply" do
16
+ get :schools, on: :collection
17
+ end
18
+
19
+ resource :rsvp do
20
+ get :accept, on: :collection
21
+ get :deny, on: :collection
22
+ end
23
+
24
+ namespace :manage do
25
+ root to: "dashboard#index"
26
+ resources :dashboard do
27
+ get :map_data, on: :collection
28
+ get :todays_activity_data, on: :collection
29
+ get :todays_stats_data, on: :collection
30
+ get :confirmation_activity_data, on: :collection
31
+ get :application_activity_data, on: :collection
32
+ get :schools_confirmed_data, on: :collection
33
+ get :user_distribution_data, on: :collection
34
+ get :application_distribution_data, on: :collection
35
+ get :schools_confirmed_data, on: :collection
36
+ get :schools_applied_data, on: :collection
37
+ end
38
+ resources :questionnaires do
39
+ post :datatable, on: :collection
40
+ patch :check_in, on: :member
41
+ patch :convert_to_admin, on: :member
42
+ patch :update_acc_status, on: :member
43
+ patch :bulk_apply, on: :collection
44
+ get :message_events, on: :member
45
+ patch :invite_to_slack, on: :member
46
+ end
47
+ resources :admins do
48
+ post :datatable, on: :collection
49
+ end
50
+ resources :messages do
51
+ get :preview, on: :member
52
+ post :datatable, on: :collection
53
+ patch :deliver, on: :member
54
+ patch :duplicate, on: :member
55
+ end
56
+ resources :bus_lists do
57
+ post :toggle_bus_captain, on: :member
58
+ patch :send_update_email, on: :member
59
+ end
60
+ resources :schools do
61
+ post :datatable, on: :collection
62
+ get :merge, on: :member
63
+ patch :perform_merge, on: :member
64
+ end
65
+ resources :stats do
66
+ post :dietary_special_needs, on: :collection
67
+ post :sponsor_info, on: :collection
68
+ post :alt_travel, on: :collection
69
+ post :mlh_info, on: :collection
70
+ end
71
+ end
72
+
73
+ resource :bus_list
74
+ end
@@ -0,0 +1,18 @@
1
+ class CreateParticipants < ActiveRecord::Migration[4.2]
2
+ def change
3
+ create_table :participants do |t|
4
+ t.string :first_name
5
+ t.string :last_name
6
+ t.string :email
7
+ t.string :city
8
+ t.string :state
9
+ t.string :year
10
+ t.date :birthday
11
+ t.string :experience
12
+ t.string :interest
13
+ t.string :school_id
14
+
15
+ t.timestamps
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,12 @@
1
+ class CreateSchools < ActiveRecord::Migration[4.2]
2
+ def change
3
+ create_table :schools do |t|
4
+ t.string :name
5
+ t.string :address
6
+ t.string :city
7
+ t.string :state
8
+
9
+ t.timestamps
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,6 @@
1
+ class AddShirtAndDietaryMedicalToParticipants < ActiveRecord::Migration[4.2]
2
+ def change
3
+ add_column :participants, :shirt_size, :string
4
+ add_column :participants, :dietary_medical_notes, :string
5
+ end
6
+ end
@@ -0,0 +1,13 @@
1
+ class AddAttachmentResumeToParticipants < ActiveRecord::Migration[4.2]
2
+ # Paperclip was removed on 10/19/2016 by Stuart Olivera
3
+
4
+ # def self.up
5
+ # change_table :participants do |t|
6
+ # t.attachment :resume
7
+ # end
8
+ # end
9
+
10
+ # def self.down
11
+ # drop_attached_file :participants, :resume
12
+ # end
13
+ end
@@ -0,0 +1,5 @@
1
+ class AddInternationalToParticipants < ActiveRecord::Migration[4.2]
2
+ def change
3
+ add_column :participants, :international, :boolean
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ class ChangeParticipantsToRegistration < ActiveRecord::Migration[4.2]
2
+ def change
3
+ rename_table :participants, :registrations
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ class CreateUsers < ActiveRecord::Migration[4.2]
2
+ def change
3
+ create_table :users, &:timestamps
4
+ end
5
+ end
@@ -0,0 +1,6 @@
1
+ class AddPortfolioAndVcsUrlsToRegistrations < ActiveRecord::Migration[4.2]
2
+ def change
3
+ add_column :registrations, :portfolio_url, :string
4
+ add_column :registrations, :vcs_url, :string
5
+ end
6
+ end
@@ -0,0 +1,48 @@
1
+ class AddDeviseToUsers < ActiveRecord::Migration[4.2]
2
+ def self.up
3
+ change_table(:users) do |t|
4
+ ## Database authenticatable
5
+ t.string :email, null: false, default: ""
6
+ t.string :encrypted_password, null: false, default: ""
7
+
8
+ ## Recoverable
9
+ t.string :reset_password_token
10
+ t.datetime :reset_password_sent_at
11
+
12
+ ## Rememberable
13
+ t.datetime :remember_created_at
14
+
15
+ ## Trackable
16
+ t.integer :sign_in_count, default: 0, null: false
17
+ t.datetime :current_sign_in_at
18
+ t.datetime :last_sign_in_at
19
+ t.string :current_sign_in_ip
20
+ t.string :last_sign_in_ip
21
+
22
+ ## Confirmable
23
+ # t.string :confirmation_token
24
+ # t.datetime :confirmed_at
25
+ # t.datetime :confirmation_sent_at
26
+ # t.string :unconfirmed_email # Only if using reconfirmable
27
+
28
+ ## Lockable
29
+ # t.integer :failed_attempts, default: 0, null: false # Only if lock strategy is :failed_attempts
30
+ # t.string :unlock_token # Only if unlock strategy is :email or :both
31
+ # t.datetime :locked_at
32
+
33
+ # Uncomment below if timestamps were not included in your original model.
34
+ # t.timestamps
35
+ end
36
+
37
+ add_index :users, :email, unique: true
38
+ add_index :users, :reset_password_token, unique: true
39
+ # add_index :users, :confirmation_token, unique: true
40
+ # add_index :users, :unlock_token, unique: true
41
+ end
42
+
43
+ def self.down
44
+ # By default, we don't want to make any assumption about how to roll back a migration when your
45
+ # model already existed. Please edit below which fields you would like to remove in this migration.
46
+ raise ActiveRecord::IrreversibleMigration
47
+ end
48
+ end
@@ -0,0 +1,5 @@
1
+ class ChangeResgistrationsToQuestionnaire < ActiveRecord::Migration[4.2]
2
+ def change
3
+ rename_table :registrations, :questionnaires
4
+ end
5
+ end
@@ -0,0 +1,8 @@
1
+ class AddQuestionnaireRefToUsers < ActiveRecord::Migration[4.2]
2
+ def change
3
+ change_table(:questionnaires) do |t|
4
+ t.references :user
5
+ end
6
+ add_index :questionnaires, :user_id
7
+ end
8
+ end
@@ -0,0 +1,5 @@
1
+ class AddAminToUsers < ActiveRecord::Migration[4.2]
2
+ def change
3
+ add_column :users, :admin, :boolean
4
+ end
5
+ end
@@ -0,0 +1,12 @@
1
+ class AddQuestionnaireCountToSchools < ActiveRecord::Migration[4.2]
2
+ def up
3
+ add_column :schools, :questionnaire_count, :int
4
+ Questionnaire.select(:school_id).each do |q|
5
+ School.increment_counter(:questionnaire_count, q.school_id)
6
+ end
7
+ end
8
+
9
+ def down
10
+ remove_column :schools, :questionnaire_count, :int
11
+ end
12
+ end
@@ -0,0 +1,17 @@
1
+ class SetDefaultAdminValue < ActiveRecord::Migration[4.2]
2
+ def up
3
+ change_column :users, :admin, :boolean, default: false
4
+ User.where(admin: nil).each do |u|
5
+ u.admin = false
6
+ u.save
7
+ end
8
+ end
9
+
10
+ def down
11
+ change_column :users, :admin, :boolean, default: nil
12
+ User.where(admin: false).each do |u|
13
+ u.admin = nil
14
+ u.save
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,5 @@
1
+ class AddAgreementAcceptedToQuestionnaires < ActiveRecord::Migration[4.2]
2
+ def change
3
+ add_column :questionnaires, :agreement_accepted, :boolean, default: false
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ class AddAdminReadOnlyToUsers < ActiveRecord::Migration[4.2]
2
+ def change
3
+ add_column :users, :admin_read_only, :boolean, default: false
4
+ end
5
+ end
@@ -0,0 +1,15 @@
1
+ class CreateMessages < ActiveRecord::Migration[4.2]
2
+ def change
3
+ create_table :messages do |t|
4
+ t.string :name
5
+ t.string :subject
6
+ t.string :recipients
7
+ t.text :body
8
+ t.timestamp :queued_at
9
+ t.timestamp :started_at
10
+ t.timestamp :delivered_at
11
+
12
+ t.timestamps
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,7 @@
1
+ class AddStatusToUser < ActiveRecord::Migration[4.2]
2
+ def change
3
+ add_column :questionnaires, :acc_status, :string, default: "pending"
4
+ add_column :questionnaires, :acc_status_author_id, :integer
5
+ add_column :questionnaires, :acc_status_date, :datetime
6
+ end
7
+ end
@@ -0,0 +1,11 @@
1
+ class CreateFips < ActiveRecord::Migration[4.2]
2
+ def change
3
+ create_table :fips do |t|
4
+ t.string :fips_code
5
+ t.string :city
6
+ t.string :state
7
+
8
+ t.timestamps
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,5 @@
1
+ class AddTemplateToMessage < ActiveRecord::Migration[4.2]
2
+ def change
3
+ add_column :messages, :template, :string, default: "default"
4
+ end
5
+ end
@@ -0,0 +1,12 @@
1
+ class CreateBusLists < ActiveRecord::Migration[4.2]
2
+ def change
3
+ create_table :bus_lists do |t|
4
+ t.string :name
5
+
6
+ t.timestamps
7
+ end
8
+
9
+ add_column :schools, :bus_list_id, :integer
10
+ add_column :questionnaires, :riding_bus, :boolean, default: false
11
+ end
12
+ end
@@ -0,0 +1,8 @@
1
+ class AddCapacityNotesCaptainToBusLists < ActiveRecord::Migration[4.2]
2
+ def change
3
+ add_column :bus_lists, :capacity, :integer, default: 50
4
+ add_column :bus_lists, :notes, :text
5
+ add_column :bus_lists, :needs_bus_captain, :boolean, default: false
6
+ add_column :questionnaires, :bus_captain_interest, :boolean, default: false
7
+ end
8
+ end
@@ -0,0 +1,5 @@
1
+ class AddIsBusCaptainToQuestionnaire < ActiveRecord::Migration[4.2]
2
+ def change
3
+ add_column :questionnaires, :is_bus_captain, :boolean, default: false
4
+ end
5
+ end
@@ -0,0 +1,8 @@
1
+ class AddCheckInDataToQuestionnaire < ActiveRecord::Migration[4.2]
2
+ def change
3
+ add_column :questionnaires, :checked_in_by_id, :integer
4
+ add_column :questionnaires, :checked_in_at, :datetime
5
+ add_column :questionnaires, :phone, :string
6
+ add_column :questionnaires, :can_share_resume, :boolean, default: false
7
+ end
8
+ end
@@ -0,0 +1,5 @@
1
+ class ChangeReadOnlyUserToLimited < ActiveRecord::Migration[4.2]
2
+ def change
3
+ rename_column :users, :admin_read_only, :admin_limited_access
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ class AddCodeOfConductAcceptedToQuestionnaire < ActiveRecord::Migration[4.2]
2
+ def change
3
+ add_column :questionnaires, :code_of_conduct_accepted, :boolean, default: false
4
+ end
5
+ end
@@ -0,0 +1,8 @@
1
+ class AddOmniauthToUsers < ActiveRecord::Migration[4.2]
2
+ def change
3
+ add_column :users, :provider, :string
4
+ add_index :users, :provider
5
+ add_column :users, :uid, :string
6
+ add_index :users, :uid
7
+ end
8
+ end
@@ -0,0 +1,14 @@
1
+ class UpdateQuestionnaireForMyMlh < ActiveRecord::Migration[4.2]
2
+ def change
3
+ add_column :questionnaires, :special_needs, :string
4
+ add_column :questionnaires, :gender, :string
5
+ add_column :questionnaires, :graduation, :date
6
+ add_column :questionnaires, :major, :string
7
+ rename_column :questionnaires, :dietary_medical_notes, :dietary_restrictions
8
+ rename_column :questionnaires, :birthday, :date_of_birth
9
+ remove_column :questionnaires, :city, :string
10
+ remove_column :questionnaires, :state, :string
11
+ remove_column :questionnaires, :year, :int
12
+ remove_column :questionnaires, :interest, :string
13
+ end
14
+ end
@@ -0,0 +1,6 @@
1
+ class AddOptionForAltTravelToQuestionnaire < ActiveRecord::Migration[4.2]
2
+ def change
3
+ add_column :questionnaires, :travel_not_from_school, :boolean, default: false
4
+ add_column :questionnaires, :travel_location, :string
5
+ end
6
+ end
@@ -0,0 +1,5 @@
1
+ class RenameCanShareResumeToInfo < ActiveRecord::Migration[4.2]
2
+ def change
3
+ rename_column :questionnaires, :can_share_resume, :can_share_info
4
+ end
5
+ end
@@ -0,0 +1,14 @@
1
+ class RemoveResumeFromQuestionnaires < ActiveRecord::Migration[4.2]
2
+ def change
3
+ remove :resume_file_name
4
+ remove :resume_content_type
5
+ remove :resume_file_size
6
+ remove :resume_updated_at
7
+ end
8
+
9
+ private
10
+
11
+ def remove(column_name)
12
+ remove_column :questionnaires, column_name if column_exists?(:questionnaires, column_name)
13
+ end
14
+ end
@@ -0,0 +1,5 @@
1
+ class AddDataSharingToQuestionnaire < ActiveRecord::Migration[5.0]
2
+ def change
3
+ add_column :questionnaires, :data_sharing_accepted, :boolean
4
+ end
5
+ end
@@ -0,0 +1,6 @@
1
+ class RenameGraduationToLevelOfStudy < ActiveRecord::Migration[5.0]
2
+ def change
3
+ remove_column :questionnaires, :graduation
4
+ add_column :questionnaires, :level_of_study, :string
5
+ end
6
+ end
@@ -0,0 +1,5 @@
1
+ class AddReminderSentAtToUsers < ActiveRecord::Migration[5.0]
2
+ def change
3
+ add_column :users, :reminder_sent_at, :datetime
4
+ end
5
+ end
@@ -0,0 +1,11 @@
1
+ class AddAttachmentResumeToQuestionnaires < ActiveRecord::Migration[4.2]
2
+ def self.up
3
+ change_table :questionnaires do |t|
4
+ t.attachment :resume
5
+ end
6
+ end
7
+
8
+ def self.down
9
+ remove_attachment :questionnaires, :resume
10
+ end
11
+ end
@@ -0,0 +1,5 @@
1
+ class AddInterestToQuestionnaire < ActiveRecord::Migration[5.0]
2
+ def change
3
+ add_column :questionnaires, :interest, :string
4
+ end
5
+ end
@@ -0,0 +1,10 @@
1
+ class CreateSchoolNameDuplicates < ActiveRecord::Migration[5.0]
2
+ def change
3
+ create_table :school_name_duplicates do |t|
4
+ t.string :name
5
+ t.belongs_to :school, foreign_key: true
6
+
7
+ t.timestamps
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,45 @@
1
+ class InstallBlazer < ActiveRecord::Migration[5.0]
2
+ def change
3
+ create_table :blazer_queries do |t|
4
+ t.references :creator
5
+ t.string :name
6
+ t.text :description
7
+ t.text :statement
8
+ t.string :data_source
9
+ t.timestamps null: false
10
+ end
11
+
12
+ create_table :blazer_audits do |t|
13
+ t.references :user
14
+ t.references :query
15
+ t.text :statement
16
+ t.string :data_source
17
+ t.timestamp :created_at
18
+ end
19
+
20
+ create_table :blazer_dashboards do |t|
21
+ t.references :creator
22
+ t.text :name
23
+ t.timestamps null: false
24
+ end
25
+
26
+ create_table :blazer_dashboard_queries do |t|
27
+ t.references :dashboard
28
+ t.references :query
29
+ t.integer :position
30
+ t.timestamps null: false
31
+ end
32
+
33
+ create_table :blazer_checks do |t|
34
+ t.references :creator
35
+ t.references :query
36
+ t.string :state
37
+ t.string :schedule
38
+ t.text :emails
39
+ t.string :check_type
40
+ t.text :message
41
+ t.timestamp :last_run_at
42
+ t.timestamps null: false
43
+ end
44
+ end
45
+ end
data/db/schools.csv ADDED
@@ -0,0 +1 @@
1
+ name,address,city,state
data/db/seeds.rb ADDED
@@ -0,0 +1,17 @@
1
+ # This file should contain all the record creation needed to seed the database with its default values.
2
+ # The data can then be loaded with the rake db:seed (or created alongside the db with db:setup).
3
+ #
4
+ # Examples:
5
+ #
6
+ # cities = City.create([{ name: 'Chicago' }, { name: 'Copenhagen' }])
7
+ # Mayor.create(name: 'Emanuel', city: cities.first)
8
+
9
+ require 'csv'
10
+
11
+ puts "Seeding school list..."
12
+
13
+ csv_text = File.read('db/schools.csv')
14
+ csv = CSV.parse(csv_text, headers: true)
15
+ csv.each do |row|
16
+ School.create(row.to_hash)
17
+ end
@@ -0,0 +1,35 @@
1
+ Gem.loaded_specs['hackathon_manager'].dependencies.each do |d|
2
+ require d.name
3
+ end
4
+
5
+ module HackathonManager
6
+ class Engine < ::Rails::Engine
7
+ initializer "hackathon_manager.assets.precompile" do |app|
8
+ app.config.assets.precompile += %w(
9
+ hackathon_manager/manage.css
10
+ hackathon_manager/home.css
11
+ hackathon_manager/vendor/*.js
12
+ hackathon_manager/vendor/*.css
13
+ hackathon_manager/mailer.css
14
+ hackathon_manager/us.json
15
+ )
16
+ end
17
+
18
+ ActionController::Base.class_eval do
19
+ # Tell Devise where to redirect the user once they sign in
20
+ def after_sign_in_path_for(resource)
21
+ stored_location = stored_location_for(resource)
22
+ if stored_location
23
+ stored_location
24
+ elsif current_user.admin?
25
+ manage_root_path
26
+ elsif current_user.questionnaire.nil?
27
+ new_questionnaires_path
28
+ else
29
+ @questionnaire = current_user.questionnaire
30
+ @questionnaire.can_rsvp? ? rsvp_path : questionnaires_path
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,3 @@
1
+ module HackathonManager
2
+ VERSION = '0.1.0'
3
+ end
@@ -0,0 +1,5 @@
1
+ require "hackathon_manager/engine"
2
+
3
+ module HackathonManager
4
+ # Your code goes here...
5
+ end
@@ -0,0 +1,14 @@
1
+ namespace :coverage do
2
+ desc "Generage code coverage via simplecov"
3
+ task run: :environment do
4
+ ENV["RUN_COVERAGE"] = "manual"
5
+ Rake::Task["test"].execute
6
+ end
7
+
8
+ desc "Submit code coverage report to external services"
9
+ task report: :environment do
10
+ require 'simplecov'
11
+ require 'codeclimate-test-reporter'
12
+ CodeClimate::TestReporter::Formatter.new.format(SimpleCov.result)
13
+ end
14
+ end
@@ -0,0 +1,4 @@
1
+ # desc "Explaining what the task does"
2
+ # task :hackathon_manager do
3
+ # # Task goes here
4
+ # end