diff --git a/.gitignore b/.gitignore
index 2187948..ea097cc 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,27 +1,30 @@
-# See https://help.github.com/articles/ignoring-files for more about ignoring files.
-#
-# If you find yourself ignoring temporary files generated by your text editor
-# or operating system, you probably want to add a global ignore instead:
-# git config --global core.excludesfile '~/.gitignore_global'
+.bundle
-# Ignore bundler config.
-/.bundle
+.env.production
-/build
+apps/basechurch/build
+apps/basechurch/coverage
-/coverage
-
-/db/*.sqlite3
-/db/*.sqlite3-journal
-/log/*.log
-/tmp
-/bin
-/doc
+apps/basechurch/db/*.sqlite3
+apps/basechurch/db/*.sqlite3-journal
+apps/basechurch/log/*.log
+apps/basechurch/tmp
+apps/basechurch/bin
+apps/basechurch/doc
+apps/basechurch/public
production-secrets.yml
development-secrets.yml
staging-secrets.yml
-public
dump.rdb
-config/secrets.yml
+
+.DS_Store
+
+apps/landing/target
+apps/landing/out
+
+**/.idea/workspace.xml
+**/.idea/tasks.xml
+**/.idea/*.iws
+
diff --git a/.ruby-version b/.ruby-version
deleted file mode 100644
index 2bf1c1c..0000000
--- a/.ruby-version
+++ /dev/null
@@ -1 +0,0 @@
-2.3.1
diff --git a/.travis.yml b/.travis.yml
index 8c7f649..2eb4c14 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,13 +1,17 @@
-language: ruby
-rvm:
-- 2.3.1
+sudo: required
+
+services:
+ - docker
+
script:
- - RAILS_ENV=test bundle exec rake db:migrate --trace
- - bundle exec rake
+ - ./bin/test-basechurch.sh
+ - ./bin/test-landing.sh
+
addons:
code_climate:
repo_token:
secure: eKtahgCOYZC/FzHgPSRYWLG/c7dRelaUZgCHV5TyoIn+akelAPRs+B334J8ahAfArLIVL2iUNpGQVdbDAMyQNd0BcQROkzj2qicGX5BTpaGRjDRHOVUDpevykZJl6oqy4WjvMevSp2xxY1ejZmbOwW/NzRQfSd79ekxGr+J0V/0=
+
notifications:
slack:
secure: G6VLedqT8kXanccqUeRRej2aXkR0SMFSwCBX/hbsNy+qoC7WSTFjMr98ijTn3eTykz1nBk+d2d2sfSm5dreIsl7jsF+eqHYKmZzGb13/YG6lvf2+GNyFduhoKJC3NWj1dqPO2QS+8g9YYBpGJIpnlp+PkSck5ewqd+mDXr53QbA=
diff --git a/app/controllers/landing_controller.rb b/app/controllers/landing_controller.rb
deleted file mode 100644
index f873143..0000000
--- a/app/controllers/landing_controller.rb
+++ /dev/null
@@ -1,39 +0,0 @@
-class LandingController < ApplicationController
- SHORT_UUID_V4_REGEXP = /\A[0-9a-f]{7}\z/i
-
- def index
- index_key = if Rails.env.development?
- "basechurch:index:__development__"
- elsif fetch_revision
- "basechurch:index:#{fetch_revision}"
- else
- Sidekiq.redis do |r|
- "basechurch:index:#{r.get("basechurch:index:current")}"
- end
- end
- index = Sidekiq.redis { |r| r.get(index_key) }
- render text: process_index(index), layout: false
- end
-
- private
-
- def fetch_revision
- rev = params[:revision]
- if rev =~ SHORT_UUID_V4_REGEXP
- rev
- end
- end
-
- def process_index(index)
- return "INDEX_NOT_FOUND" unless index
-
- index.sub!(/CSRF_TOKEN/, form_authenticity_token)
-
- if Rails.env.development?
- index.sub!("/ember-cli-live-reload",
- "http://localhost:4200/ember-cli-live-reload")
- end
-
- index
- end
-end
diff --git a/app/settings/redis_settings.rb b/app/settings/redis_settings.rb
deleted file mode 100644
index 3ff43c9..0000000
--- a/app/settings/redis_settings.rb
+++ /dev/null
@@ -1,4 +0,0 @@
-class RedisSettings < Settingslogic
- source "#{Rails.root}/config/redis.yml"
- namespace Rails.env
-end
diff --git a/app/settings/secrets.rb b/app/settings/secrets.rb
deleted file mode 100644
index 64bbba6..0000000
--- a/app/settings/secrets.rb
+++ /dev/null
@@ -1,9 +0,0 @@
-class Secrets < Settingslogic
- if ["staging", "production"].include?(Rails.env)
- source "#{Rails.root}/config/secrets.yml"
- else
- source "#{Rails.root}/config/#{Rails.env}-secrets.yml"
- end
-
- namespace Rails.env
-end
diff --git a/apps/basechurch/.env.dev b/apps/basechurch/.env.dev
new file mode 100644
index 0000000..98ee5f8
--- /dev/null
+++ b/apps/basechurch/.env.dev
@@ -0,0 +1,9 @@
+AWS_ACCESS_KEY_ID=test_aws_access_key_id
+AWS_SECRET_ACCESS_KEY=test_aws_secret_access_key
+DATABASE_HOST=db
+DATABASE_USER=postgres
+DATABASE_PASSWORD=
+FB_APP_ID=a2222222222222
+FB_APP_SECRET=a222222222333
+PRERENDER_IO_TOKEN=test_prerender_token
+SECRET_KEY_BASE=asdlkjfh23lkj4h23lkjehfsd7f8xc98zxvhxkvjhenrweefdxi99
diff --git a/apps/basechurch/.env.test b/apps/basechurch/.env.test
new file mode 100644
index 0000000..98ee5f8
--- /dev/null
+++ b/apps/basechurch/.env.test
@@ -0,0 +1,9 @@
+AWS_ACCESS_KEY_ID=test_aws_access_key_id
+AWS_SECRET_ACCESS_KEY=test_aws_secret_access_key
+DATABASE_HOST=db
+DATABASE_USER=postgres
+DATABASE_PASSWORD=
+FB_APP_ID=a2222222222222
+FB_APP_SECRET=a222222222333
+PRERENDER_IO_TOKEN=test_prerender_token
+SECRET_KEY_BASE=asdlkjfh23lkj4h23lkjehfsd7f8xc98zxvhxkvjhenrweefdxi99
diff --git a/.hound.yml b/apps/basechurch/.hound.yml
similarity index 100%
rename from .hound.yml
rename to apps/basechurch/.hound.yml
diff --git a/.rspec b/apps/basechurch/.rspec
similarity index 100%
rename from .rspec
rename to apps/basechurch/.rspec
diff --git a/CONTRIBUTING.md b/apps/basechurch/CONTRIBUTING.md
similarity index 100%
rename from CONTRIBUTING.md
rename to apps/basechurch/CONTRIBUTING.md
diff --git a/Capfile b/apps/basechurch/Capfile
similarity index 100%
rename from Capfile
rename to apps/basechurch/Capfile
diff --git a/apps/basechurch/Dockerfile b/apps/basechurch/Dockerfile
new file mode 100644
index 0000000..0cd15e7
--- /dev/null
+++ b/apps/basechurch/Dockerfile
@@ -0,0 +1,8 @@
+FROM ruby:2.3.1
+RUN apt-get update -qq && apt-get install -y build-essential libpq-dev nodejs
+RUN mkdir /app
+WORKDIR /app
+ADD Gemfile /app/Gemfile
+ADD Gemfile.lock /app/Gemfile.lock
+RUN bundle install
+ADD . /app
diff --git a/Gemfile b/apps/basechurch/Gemfile
similarity index 99%
rename from Gemfile
rename to apps/basechurch/Gemfile
index ce774e9..abfc520 100644
--- a/Gemfile
+++ b/apps/basechurch/Gemfile
@@ -70,5 +70,4 @@ gem "rack-rewrite", "~> 1.5.0"
gem "rails", "~> 4.2.4"
gem "rails-api", "~> 0.3.1"
gem "settingslogic"
-gem "sidekiq"
gem "validate_url", "~> 1.0.0"
diff --git a/Gemfile.lock b/apps/basechurch/Gemfile.lock
similarity index 97%
rename from Gemfile.lock
rename to apps/basechurch/Gemfile.lock
index e1ade31..5bdeb12 100644
--- a/Gemfile.lock
+++ b/apps/basechurch/Gemfile.lock
@@ -103,7 +103,6 @@ GEM
simplecov (>= 0.7.1, < 1.0.0)
coderay (1.1.1)
concurrent-ruby (1.0.2)
- connection_pool (2.2.0)
coveralls (0.8.15)
json (>= 1.8, < 3)
simplecov (~> 0.12.0)
@@ -290,8 +289,6 @@ GEM
websocket (~> 1.0)
rack (1.6.4)
rack-cors (0.4.0)
- rack-protection (1.5.3)
- rack
rack-rewrite (1.5.1)
rack-test (0.6.3)
rack (>= 1.0)
@@ -327,7 +324,6 @@ GEM
rb-fsevent (0.9.7)
rb-inotify (0.9.7)
ffi (>= 0.5.0)
- redis (3.3.1)
responders (2.3.0)
railties (>= 4.2.0, < 5.1)
rspec (3.5.0)
@@ -377,20 +373,11 @@ GEM
settingslogic (2.0.9)
sfl (2.2)
shellany (0.0.1)
- sidekiq (4.1.4)
- concurrent-ruby (~> 1.0)
- connection_pool (~> 2.2, >= 2.2.0)
- redis (~> 3.2, >= 3.2.1)
- sinatra (>= 1.4.7)
simplecov (0.12.0)
docile (~> 1.1.0)
json (>= 1.8, < 3)
simplecov-html (~> 0.10.0)
simplecov-html (0.10.0)
- sinatra (1.4.7)
- rack (~> 1.5)
- rack-protection (~> 1.4)
- tilt (>= 1.3, < 3)
slop (3.6.0)
specinfra (2.61.2)
net-scp
@@ -415,7 +402,6 @@ GEM
tins (~> 1.0)
thor (0.19.1)
thread_safe (0.3.5)
- tilt (2.0.5)
timecop (0.8.1)
tins (1.12.0)
travis (1.5.8)
@@ -485,7 +471,6 @@ DEPENDENCIES
rspec_api_documentation
rubocop
settingslogic
- sidekiq
spring
sqlite3
timecop
diff --git a/Guardfile b/apps/basechurch/Guardfile
similarity index 100%
rename from Guardfile
rename to apps/basechurch/Guardfile
diff --git a/MIT-LICENSE b/apps/basechurch/MIT-LICENSE
similarity index 100%
rename from MIT-LICENSE
rename to apps/basechurch/MIT-LICENSE
diff --git a/README.md b/apps/basechurch/README.md
similarity index 100%
rename from README.md
rename to apps/basechurch/README.md
diff --git a/Rakefile b/apps/basechurch/Rakefile
similarity index 100%
rename from Rakefile
rename to apps/basechurch/Rakefile
diff --git a/app/assets/images/basechurch/.keep b/apps/basechurch/app/assets/images/basechurch/.keep
similarity index 100%
rename from app/assets/images/basechurch/.keep
rename to apps/basechurch/app/assets/images/basechurch/.keep
diff --git a/app/assets/javascripts/basechurch/application.js b/apps/basechurch/app/assets/javascripts/basechurch/application.js
similarity index 100%
rename from app/assets/javascripts/basechurch/application.js
rename to apps/basechurch/app/assets/javascripts/basechurch/application.js
diff --git a/app/assets/stylesheets/basechurch/application.css b/apps/basechurch/app/assets/stylesheets/basechurch/application.css
similarity index 100%
rename from app/assets/stylesheets/basechurch/application.css
rename to apps/basechurch/app/assets/stylesheets/basechurch/application.css
diff --git a/app/controllers/api/v1/announcements_controller.rb b/apps/basechurch/app/controllers/api/v1/announcements_controller.rb
similarity index 100%
rename from app/controllers/api/v1/announcements_controller.rb
rename to apps/basechurch/app/controllers/api/v1/announcements_controller.rb
diff --git a/app/controllers/api/v1/bulletins_controller.rb b/apps/basechurch/app/controllers/api/v1/bulletins_controller.rb
similarity index 100%
rename from app/controllers/api/v1/bulletins_controller.rb
rename to apps/basechurch/app/controllers/api/v1/bulletins_controller.rb
diff --git a/app/controllers/api/v1/groups_controller.rb b/apps/basechurch/app/controllers/api/v1/groups_controller.rb
similarity index 100%
rename from app/controllers/api/v1/groups_controller.rb
rename to apps/basechurch/app/controllers/api/v1/groups_controller.rb
diff --git a/app/controllers/api/v1/posts_controller.rb b/apps/basechurch/app/controllers/api/v1/posts_controller.rb
similarity index 100%
rename from app/controllers/api/v1/posts_controller.rb
rename to apps/basechurch/app/controllers/api/v1/posts_controller.rb
diff --git a/app/controllers/api/v1/sermons_controller.rb b/apps/basechurch/app/controllers/api/v1/sermons_controller.rb
similarity index 100%
rename from app/controllers/api/v1/sermons_controller.rb
rename to apps/basechurch/app/controllers/api/v1/sermons_controller.rb
diff --git a/app/controllers/api/v1/users_controller.rb b/apps/basechurch/app/controllers/api/v1/users_controller.rb
similarity index 100%
rename from app/controllers/api/v1/users_controller.rb
rename to apps/basechurch/app/controllers/api/v1/users_controller.rb
diff --git a/app/controllers/application_controller.rb b/apps/basechurch/app/controllers/application_controller.rb
similarity index 100%
rename from app/controllers/application_controller.rb
rename to apps/basechurch/app/controllers/application_controller.rb
diff --git a/app/controllers/application_resource_controller.rb b/apps/basechurch/app/controllers/application_resource_controller.rb
similarity index 100%
rename from app/controllers/application_resource_controller.rb
rename to apps/basechurch/app/controllers/application_resource_controller.rb
diff --git a/app/controllers/passwords_controller.rb b/apps/basechurch/app/controllers/passwords_controller.rb
similarity index 100%
rename from app/controllers/passwords_controller.rb
rename to apps/basechurch/app/controllers/passwords_controller.rb
diff --git a/app/controllers/registrations_controller.rb b/apps/basechurch/app/controllers/registrations_controller.rb
similarity index 100%
rename from app/controllers/registrations_controller.rb
rename to apps/basechurch/app/controllers/registrations_controller.rb
diff --git a/app/controllers/sessions_controller.rb b/apps/basechurch/app/controllers/sessions_controller.rb
similarity index 100%
rename from app/controllers/sessions_controller.rb
rename to apps/basechurch/app/controllers/sessions_controller.rb
diff --git a/app/helpers/application_helper.rb b/apps/basechurch/app/helpers/application_helper.rb
similarity index 100%
rename from app/helpers/application_helper.rb
rename to apps/basechurch/app/helpers/application_helper.rb
diff --git a/app/lib/basechurch_resource_serializer.rb b/apps/basechurch/app/lib/basechurch_resource_serializer.rb
similarity index 100%
rename from app/lib/basechurch_resource_serializer.rb
rename to apps/basechurch/app/lib/basechurch_resource_serializer.rb
diff --git a/app/lib/random_filename.rb b/apps/basechurch/app/lib/random_filename.rb
similarity index 100%
rename from app/lib/random_filename.rb
rename to apps/basechurch/app/lib/random_filename.rb
diff --git a/app/lib/s3_signer.rb b/apps/basechurch/app/lib/s3_signer.rb
similarity index 100%
rename from app/lib/s3_signer.rb
rename to apps/basechurch/app/lib/s3_signer.rb
diff --git a/app/middleware/selective_stack.rb b/apps/basechurch/app/middleware/selective_stack.rb
similarity index 100%
rename from app/middleware/selective_stack.rb
rename to apps/basechurch/app/middleware/selective_stack.rb
diff --git a/app/models/announcement.rb b/apps/basechurch/app/models/announcement.rb
similarity index 100%
rename from app/models/announcement.rb
rename to apps/basechurch/app/models/announcement.rb
diff --git a/app/models/attachment.rb b/apps/basechurch/app/models/attachment.rb
similarity index 100%
rename from app/models/attachment.rb
rename to apps/basechurch/app/models/attachment.rb
diff --git a/app/models/bulletin.rb b/apps/basechurch/app/models/bulletin.rb
similarity index 100%
rename from app/models/bulletin.rb
rename to apps/basechurch/app/models/bulletin.rb
diff --git a/app/models/concerns/.keep b/apps/basechurch/app/models/concerns/.keep
similarity index 100%
rename from app/models/concerns/.keep
rename to apps/basechurch/app/models/concerns/.keep
diff --git a/app/models/group.rb b/apps/basechurch/app/models/group.rb
similarity index 100%
rename from app/models/group.rb
rename to apps/basechurch/app/models/group.rb
diff --git a/app/models/post.rb b/apps/basechurch/app/models/post.rb
similarity index 100%
rename from app/models/post.rb
rename to apps/basechurch/app/models/post.rb
diff --git a/app/models/sermon.rb b/apps/basechurch/app/models/sermon.rb
similarity index 100%
rename from app/models/sermon.rb
rename to apps/basechurch/app/models/sermon.rb
diff --git a/app/models/user.rb b/apps/basechurch/app/models/user.rb
similarity index 100%
rename from app/models/user.rb
rename to apps/basechurch/app/models/user.rb
diff --git a/app/resources/api/v1/announcement_resource.rb b/apps/basechurch/app/resources/api/v1/announcement_resource.rb
similarity index 100%
rename from app/resources/api/v1/announcement_resource.rb
rename to apps/basechurch/app/resources/api/v1/announcement_resource.rb
diff --git a/app/resources/api/v1/bulletin_resource.rb b/apps/basechurch/app/resources/api/v1/bulletin_resource.rb
similarity index 100%
rename from app/resources/api/v1/bulletin_resource.rb
rename to apps/basechurch/app/resources/api/v1/bulletin_resource.rb
diff --git a/app/resources/api/v1/group_resource.rb b/apps/basechurch/app/resources/api/v1/group_resource.rb
similarity index 100%
rename from app/resources/api/v1/group_resource.rb
rename to apps/basechurch/app/resources/api/v1/group_resource.rb
diff --git a/app/resources/api/v1/post_resource.rb b/apps/basechurch/app/resources/api/v1/post_resource.rb
similarity index 97%
rename from app/resources/api/v1/post_resource.rb
rename to apps/basechurch/app/resources/api/v1/post_resource.rb
index 97f911b..53e5bf8 100644
--- a/app/resources/api/v1/post_resource.rb
+++ b/apps/basechurch/app/resources/api/v1/post_resource.rb
@@ -29,7 +29,7 @@ def group_slug
end
def tags
- @model.tag_list
+ @model.tag_list.sort
end
def tags=(tags)
diff --git a/app/resources/api/v1/sermon_resource.rb b/apps/basechurch/app/resources/api/v1/sermon_resource.rb
similarity index 91%
rename from app/resources/api/v1/sermon_resource.rb
rename to apps/basechurch/app/resources/api/v1/sermon_resource.rb
index cdf2623..4f2212f 100644
--- a/app/resources/api/v1/sermon_resource.rb
+++ b/apps/basechurch/app/resources/api/v1/sermon_resource.rb
@@ -6,7 +6,7 @@ class Api::V1::SermonResource < JSONAPI::Resource
has_one :group
def tags
- @model.tag_list
+ @model.tag_list.sort
end
def tags=(tags)
diff --git a/app/resources/api/v1/user_resource.rb b/apps/basechurch/app/resources/api/v1/user_resource.rb
similarity index 100%
rename from app/resources/api/v1/user_resource.rb
rename to apps/basechurch/app/resources/api/v1/user_resource.rb
diff --git a/app/settings/aws_settings.rb b/apps/basechurch/app/settings/aws_settings.rb
similarity index 100%
rename from app/settings/aws_settings.rb
rename to apps/basechurch/app/settings/aws_settings.rb
diff --git a/apps/basechurch/app/settings/secrets.rb b/apps/basechurch/app/settings/secrets.rb
new file mode 100644
index 0000000..2368e56
--- /dev/null
+++ b/apps/basechurch/app/settings/secrets.rb
@@ -0,0 +1,4 @@
+class Secrets < Settingslogic
+ source "#{Rails.root}/config/secrets.yml"
+ namespace Rails.env
+end
diff --git a/app/validators/iso8601_validator.rb b/apps/basechurch/app/validators/iso8601_validator.rb
similarity index 100%
rename from app/validators/iso8601_validator.rb
rename to apps/basechurch/app/validators/iso8601_validator.rb
diff --git a/app/value_formatters/iso8601_value_formatter.rb b/apps/basechurch/app/value_formatters/iso8601_value_formatter.rb
similarity index 100%
rename from app/value_formatters/iso8601_value_formatter.rb
rename to apps/basechurch/app/value_formatters/iso8601_value_formatter.rb
diff --git a/app/views/layouts/basechurch/application.html.erb b/apps/basechurch/app/views/layouts/basechurch/application.html.erb
similarity index 100%
rename from app/views/layouts/basechurch/application.html.erb
rename to apps/basechurch/app/views/layouts/basechurch/application.html.erb
diff --git a/config.ru b/apps/basechurch/config.ru
similarity index 100%
rename from config.ru
rename to apps/basechurch/config.ru
diff --git a/config/application.rb b/apps/basechurch/config/application.rb
similarity index 100%
rename from config/application.rb
rename to apps/basechurch/config/application.rb
diff --git a/config/aws.yml b/apps/basechurch/config/aws.yml
similarity index 100%
rename from config/aws.yml
rename to apps/basechurch/config/aws.yml
diff --git a/config/boot.rb b/apps/basechurch/config/boot.rb
similarity index 100%
rename from config/boot.rb
rename to apps/basechurch/config/boot.rb
diff --git a/config/chef/.chef/knife.rb b/apps/basechurch/config/chef/.chef/knife.rb
similarity index 100%
rename from config/chef/.chef/knife.rb
rename to apps/basechurch/config/chef/.chef/knife.rb
diff --git a/config/chef/.gitignore b/apps/basechurch/config/chef/.gitignore
similarity index 100%
rename from config/chef/.gitignore
rename to apps/basechurch/config/chef/.gitignore
diff --git a/config/chef/cookbooks/.gitkeep b/apps/basechurch/config/chef/data_bags/.gitkeep
similarity index 100%
rename from config/chef/cookbooks/.gitkeep
rename to apps/basechurch/config/chef/data_bags/.gitkeep
diff --git a/config/chef/data_bags/.gitkeep b/apps/basechurch/config/chef/environments/.gitkeep
similarity index 100%
rename from config/chef/data_bags/.gitkeep
rename to apps/basechurch/config/chef/environments/.gitkeep
diff --git a/config/chef/environments/.gitkeep b/apps/basechurch/config/chef/nodes/.gitkeep
similarity index 100%
rename from config/chef/environments/.gitkeep
rename to apps/basechurch/config/chef/nodes/.gitkeep
diff --git a/config/chef/nodes/104.131.162.148.json b/apps/basechurch/config/chef/nodes/104.131.162.148.json
similarity index 100%
rename from config/chef/nodes/104.131.162.148.json
rename to apps/basechurch/config/chef/nodes/104.131.162.148.json
diff --git a/config/chef/nodes/104.131.66.72.json b/apps/basechurch/config/chef/nodes/104.131.66.72.json
similarity index 100%
rename from config/chef/nodes/104.131.66.72.json
rename to apps/basechurch/config/chef/nodes/104.131.66.72.json
diff --git a/config/chef/nodes/.gitkeep b/apps/basechurch/config/chef/roles/.gitkeep
similarity index 100%
rename from config/chef/nodes/.gitkeep
rename to apps/basechurch/config/chef/roles/.gitkeep
diff --git a/config/chef/roles/.gitkeep b/apps/basechurch/config/chef/site-cookbooks/.gitkeep
similarity index 100%
rename from config/chef/roles/.gitkeep
rename to apps/basechurch/config/chef/site-cookbooks/.gitkeep
diff --git a/config/chef/site-cookbooks/mcac/CHANGELOG.md b/apps/basechurch/config/chef/site-cookbooks/mcac/CHANGELOG.md
similarity index 100%
rename from config/chef/site-cookbooks/mcac/CHANGELOG.md
rename to apps/basechurch/config/chef/site-cookbooks/mcac/CHANGELOG.md
diff --git a/config/chef/site-cookbooks/mcac/README.md b/apps/basechurch/config/chef/site-cookbooks/mcac/README.md
similarity index 100%
rename from config/chef/site-cookbooks/mcac/README.md
rename to apps/basechurch/config/chef/site-cookbooks/mcac/README.md
diff --git a/config/chef/site-cookbooks/mcac/attributes/default.rb b/apps/basechurch/config/chef/site-cookbooks/mcac/attributes/default.rb
similarity index 100%
rename from config/chef/site-cookbooks/mcac/attributes/default.rb
rename to apps/basechurch/config/chef/site-cookbooks/mcac/attributes/default.rb
diff --git a/config/chef/site-cookbooks/mcac/files/default/bash_profile b/apps/basechurch/config/chef/site-cookbooks/mcac/files/default/bash_profile
similarity index 100%
rename from config/chef/site-cookbooks/mcac/files/default/bash_profile
rename to apps/basechurch/config/chef/site-cookbooks/mcac/files/default/bash_profile
diff --git a/config/chef/site-cookbooks/mcac/metadata.rb b/apps/basechurch/config/chef/site-cookbooks/mcac/metadata.rb
similarity index 100%
rename from config/chef/site-cookbooks/mcac/metadata.rb
rename to apps/basechurch/config/chef/site-cookbooks/mcac/metadata.rb
diff --git a/config/chef/site-cookbooks/mcac/recipes/app.rb b/apps/basechurch/config/chef/site-cookbooks/mcac/recipes/app.rb
similarity index 100%
rename from config/chef/site-cookbooks/mcac/recipes/app.rb
rename to apps/basechurch/config/chef/site-cookbooks/mcac/recipes/app.rb
diff --git a/config/chef/site-cookbooks/mcac/recipes/default.rb b/apps/basechurch/config/chef/site-cookbooks/mcac/recipes/default.rb
similarity index 100%
rename from config/chef/site-cookbooks/mcac/recipes/default.rb
rename to apps/basechurch/config/chef/site-cookbooks/mcac/recipes/default.rb
diff --git a/config/chef/site-cookbooks/mcac/recipes/nginx.rb b/apps/basechurch/config/chef/site-cookbooks/mcac/recipes/nginx.rb
similarity index 100%
rename from config/chef/site-cookbooks/mcac/recipes/nginx.rb
rename to apps/basechurch/config/chef/site-cookbooks/mcac/recipes/nginx.rb
diff --git a/config/chef/site-cookbooks/mcac/recipes/postgres.rb b/apps/basechurch/config/chef/site-cookbooks/mcac/recipes/postgres.rb
similarity index 100%
rename from config/chef/site-cookbooks/mcac/recipes/postgres.rb
rename to apps/basechurch/config/chef/site-cookbooks/mcac/recipes/postgres.rb
diff --git a/config/chef/site-cookbooks/mcac/recipes/rbenv.rb b/apps/basechurch/config/chef/site-cookbooks/mcac/recipes/rbenv.rb
similarity index 100%
rename from config/chef/site-cookbooks/mcac/recipes/rbenv.rb
rename to apps/basechurch/config/chef/site-cookbooks/mcac/recipes/rbenv.rb
diff --git a/config/chef/site-cookbooks/mcac/recipes/redis.rb b/apps/basechurch/config/chef/site-cookbooks/mcac/recipes/redis.rb
similarity index 100%
rename from config/chef/site-cookbooks/mcac/recipes/redis.rb
rename to apps/basechurch/config/chef/site-cookbooks/mcac/recipes/redis.rb
diff --git a/config/chef/site-cookbooks/mcac/recipes/ssh.rb b/apps/basechurch/config/chef/site-cookbooks/mcac/recipes/ssh.rb
similarity index 100%
rename from config/chef/site-cookbooks/mcac/recipes/ssh.rb
rename to apps/basechurch/config/chef/site-cookbooks/mcac/recipes/ssh.rb
diff --git a/config/chef/site-cookbooks/mcac/recipes/users.rb b/apps/basechurch/config/chef/site-cookbooks/mcac/recipes/users.rb
similarity index 100%
rename from config/chef/site-cookbooks/mcac/recipes/users.rb
rename to apps/basechurch/config/chef/site-cookbooks/mcac/recipes/users.rb
diff --git a/config/chef/site-cookbooks/mcac/templates/database.yml.erb b/apps/basechurch/config/chef/site-cookbooks/mcac/templates/database.yml.erb
similarity index 100%
rename from config/chef/site-cookbooks/mcac/templates/database.yml.erb
rename to apps/basechurch/config/chef/site-cookbooks/mcac/templates/database.yml.erb
diff --git a/config/chef/site-cookbooks/mcac/templates/nginx.conf.erb b/apps/basechurch/config/chef/site-cookbooks/mcac/templates/nginx.conf.erb
similarity index 100%
rename from config/chef/site-cookbooks/mcac/templates/nginx.conf.erb
rename to apps/basechurch/config/chef/site-cookbooks/mcac/templates/nginx.conf.erb
diff --git a/config/chef/site-cookbooks/mcac/templates/unicorn.rb.erb b/apps/basechurch/config/chef/site-cookbooks/mcac/templates/unicorn.rb.erb
similarity index 100%
rename from config/chef/site-cookbooks/mcac/templates/unicorn.rb.erb
rename to apps/basechurch/config/chef/site-cookbooks/mcac/templates/unicorn.rb.erb
diff --git a/config/chef/site-cookbooks/mcac/templates/unicorn.sh.erb b/apps/basechurch/config/chef/site-cookbooks/mcac/templates/unicorn.sh.erb
similarity index 100%
rename from config/chef/site-cookbooks/mcac/templates/unicorn.sh.erb
rename to apps/basechurch/config/chef/site-cookbooks/mcac/templates/unicorn.sh.erb
diff --git a/apps/basechurch/config/database.yml b/apps/basechurch/config/database.yml
new file mode 100644
index 0000000..4b78bb9
--- /dev/null
+++ b/apps/basechurch/config/database.yml
@@ -0,0 +1,18 @@
+default: &default
+ adapter: postgresql
+ database: mcac
+ encoding: utf8
+ host: <%= ENV["DATABASE_HOST"] %>
+ username: <%= ENV["DATABASE_USER"] %>
+ password: <%= ENV["DATABASE_PASSWORD"] %>
+ pool: 5
+
+development:
+ <<: *default
+
+test:
+ <<: *default
+ database: mcac_test
+
+production:
+ <<: *default
diff --git a/config/deploy.rb b/apps/basechurch/config/deploy.rb
similarity index 100%
rename from config/deploy.rb
rename to apps/basechurch/config/deploy.rb
diff --git a/config/deploy/production.rb b/apps/basechurch/config/deploy/production.rb
similarity index 100%
rename from config/deploy/production.rb
rename to apps/basechurch/config/deploy/production.rb
diff --git a/config/deploy/staging.rb b/apps/basechurch/config/deploy/staging.rb
similarity index 100%
rename from config/deploy/staging.rb
rename to apps/basechurch/config/deploy/staging.rb
diff --git a/config/environment.rb b/apps/basechurch/config/environment.rb
similarity index 100%
rename from config/environment.rb
rename to apps/basechurch/config/environment.rb
diff --git a/config/environments/development.rb b/apps/basechurch/config/environments/development.rb
similarity index 100%
rename from config/environments/development.rb
rename to apps/basechurch/config/environments/development.rb
diff --git a/config/environments/production.rb b/apps/basechurch/config/environments/production.rb
similarity index 100%
rename from config/environments/production.rb
rename to apps/basechurch/config/environments/production.rb
diff --git a/config/environments/staging.rb b/apps/basechurch/config/environments/staging.rb
similarity index 100%
rename from config/environments/staging.rb
rename to apps/basechurch/config/environments/staging.rb
diff --git a/config/environments/test.rb b/apps/basechurch/config/environments/test.rb
similarity index 100%
rename from config/environments/test.rb
rename to apps/basechurch/config/environments/test.rb
diff --git a/config/initializers/devise.rb b/apps/basechurch/config/initializers/devise.rb
similarity index 100%
rename from config/initializers/devise.rb
rename to apps/basechurch/config/initializers/devise.rb
diff --git a/config/initializers/devise_token_auth.rb b/apps/basechurch/config/initializers/devise_token_auth.rb
similarity index 100%
rename from config/initializers/devise_token_auth.rb
rename to apps/basechurch/config/initializers/devise_token_auth.rb
diff --git a/config/initializers/extensions.rb b/apps/basechurch/config/initializers/extensions.rb
similarity index 100%
rename from config/initializers/extensions.rb
rename to apps/basechurch/config/initializers/extensions.rb
diff --git a/config/initializers/friendly_id.rb b/apps/basechurch/config/initializers/friendly_id.rb
similarity index 100%
rename from config/initializers/friendly_id.rb
rename to apps/basechurch/config/initializers/friendly_id.rb
diff --git a/config/initializers/jsonapi_resources.rb b/apps/basechurch/config/initializers/jsonapi_resources.rb
similarity index 100%
rename from config/initializers/jsonapi_resources.rb
rename to apps/basechurch/config/initializers/jsonapi_resources.rb
diff --git a/config/initializers/omniauth.rb b/apps/basechurch/config/initializers/omniauth.rb
similarity index 100%
rename from config/initializers/omniauth.rb
rename to apps/basechurch/config/initializers/omniauth.rb
diff --git a/config/initializers/rspec_api_documentation.rb b/apps/basechurch/config/initializers/rspec_api_documentation.rb
similarity index 100%
rename from config/initializers/rspec_api_documentation.rb
rename to apps/basechurch/config/initializers/rspec_api_documentation.rb
diff --git a/config/initializers/wrap_parameters.rb b/apps/basechurch/config/initializers/wrap_parameters.rb
similarity index 100%
rename from config/initializers/wrap_parameters.rb
rename to apps/basechurch/config/initializers/wrap_parameters.rb
diff --git a/config/routes.rb b/apps/basechurch/config/routes.rb
similarity index 100%
rename from config/routes.rb
rename to apps/basechurch/config/routes.rb
diff --git a/apps/basechurch/config/secrets.yml b/apps/basechurch/config/secrets.yml
new file mode 100644
index 0000000..75dbf23
--- /dev/null
+++ b/apps/basechurch/config/secrets.yml
@@ -0,0 +1,12 @@
+default: &default
+ aws_access_key_id: <%= ENV["AWS_ACCESS_KEY_ID"] %>
+ aws_secret_access_key: <%= ENV["AWS_SECRET_ACCESS_KEY"] %>
+ fb_app_id: <%= ENV["FB_APP_ID"] %>
+ fb_app_secret: <%= ENV["FB_APP_SECRET"] %>
+ prerender_io_token: <%= ENV["PRERENDER_IO_TOKEN"] %>
+ secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>
+
+test: *default
+development: *default
+staging: *default
+production: *default
diff --git a/config/secrets.yml.example b/apps/basechurch/config/secrets.yml.example
similarity index 100%
rename from config/secrets.yml.example
rename to apps/basechurch/config/secrets.yml.example
diff --git a/db/migrate/20141104023408_create_users.rb b/apps/basechurch/db/migrate/20141104023408_create_users.rb
similarity index 100%
rename from db/migrate/20141104023408_create_users.rb
rename to apps/basechurch/db/migrate/20141104023408_create_users.rb
diff --git a/db/migrate/20141104050710_acts_as_taggable_on_migration.acts_as_taggable_on_engine.rb b/apps/basechurch/db/migrate/20141104050710_acts_as_taggable_on_migration.acts_as_taggable_on_engine.rb
similarity index 100%
rename from db/migrate/20141104050710_acts_as_taggable_on_migration.acts_as_taggable_on_engine.rb
rename to apps/basechurch/db/migrate/20141104050710_acts_as_taggable_on_migration.acts_as_taggable_on_engine.rb
diff --git a/db/migrate/20141104050711_add_missing_unique_indices.acts_as_taggable_on_engine.rb b/apps/basechurch/db/migrate/20141104050711_add_missing_unique_indices.acts_as_taggable_on_engine.rb
similarity index 100%
rename from db/migrate/20141104050711_add_missing_unique_indices.acts_as_taggable_on_engine.rb
rename to apps/basechurch/db/migrate/20141104050711_add_missing_unique_indices.acts_as_taggable_on_engine.rb
diff --git a/db/migrate/20141104050712_add_taggings_counter_cache_to_tags.acts_as_taggable_on_engine.rb b/apps/basechurch/db/migrate/20141104050712_add_taggings_counter_cache_to_tags.acts_as_taggable_on_engine.rb
similarity index 100%
rename from db/migrate/20141104050712_add_taggings_counter_cache_to_tags.acts_as_taggable_on_engine.rb
rename to apps/basechurch/db/migrate/20141104050712_add_taggings_counter_cache_to_tags.acts_as_taggable_on_engine.rb
diff --git a/db/migrate/20141104050713_add_missing_taggable_index.acts_as_taggable_on_engine.rb b/apps/basechurch/db/migrate/20141104050713_add_missing_taggable_index.acts_as_taggable_on_engine.rb
similarity index 100%
rename from db/migrate/20141104050713_add_missing_taggable_index.acts_as_taggable_on_engine.rb
rename to apps/basechurch/db/migrate/20141104050713_add_missing_taggable_index.acts_as_taggable_on_engine.rb
diff --git a/db/migrate/20141104050852_create_groups.rb b/apps/basechurch/db/migrate/20141104050852_create_groups.rb
similarity index 100%
rename from db/migrate/20141104050852_create_groups.rb
rename to apps/basechurch/db/migrate/20141104050852_create_groups.rb
diff --git a/db/migrate/20141107023441_create_bulletins.rb b/apps/basechurch/db/migrate/20141107023441_create_bulletins.rb
similarity index 100%
rename from db/migrate/20141107023441_create_bulletins.rb
rename to apps/basechurch/db/migrate/20141107023441_create_bulletins.rb
diff --git a/db/migrate/20141107024218_add_group_id_to_bulletins.rb b/apps/basechurch/db/migrate/20141107024218_add_group_id_to_bulletins.rb
similarity index 100%
rename from db/migrate/20141107024218_add_group_id_to_bulletins.rb
rename to apps/basechurch/db/migrate/20141107024218_add_group_id_to_bulletins.rb
diff --git a/db/migrate/20141115220442_rename_date_column.rb b/apps/basechurch/db/migrate/20141115220442_rename_date_column.rb
similarity index 100%
rename from db/migrate/20141115220442_rename_date_column.rb
rename to apps/basechurch/db/migrate/20141115220442_rename_date_column.rb
diff --git a/db/migrate/20141122193506_create_api_keys.rb b/apps/basechurch/db/migrate/20141122193506_create_api_keys.rb
similarity index 100%
rename from db/migrate/20141122193506_create_api_keys.rb
rename to apps/basechurch/db/migrate/20141122193506_create_api_keys.rb
diff --git a/db/migrate/20141127050515_create_posts.rb b/apps/basechurch/db/migrate/20141127050515_create_posts.rb
similarity index 100%
rename from db/migrate/20141127050515_create_posts.rb
rename to apps/basechurch/db/migrate/20141127050515_create_posts.rb
diff --git a/db/migrate/20141130222902_create_friendly_id_slugs.rb b/apps/basechurch/db/migrate/20141130222902_create_friendly_id_slugs.rb
similarity index 100%
rename from db/migrate/20141130222902_create_friendly_id_slugs.rb
rename to apps/basechurch/db/migrate/20141130222902_create_friendly_id_slugs.rb
diff --git a/db/migrate/20141216021608_create_announcements.rb b/apps/basechurch/db/migrate/20141216021608_create_announcements.rb
similarity index 100%
rename from db/migrate/20141216021608_create_announcements.rb
rename to apps/basechurch/db/migrate/20141216021608_create_announcements.rb
diff --git a/db/migrate/20141227065555_add_slug_to_basechurch_groups.rb b/apps/basechurch/db/migrate/20141227065555_add_slug_to_basechurch_groups.rb
similarity index 100%
rename from db/migrate/20141227065555_add_slug_to_basechurch_groups.rb
rename to apps/basechurch/db/migrate/20141227065555_add_slug_to_basechurch_groups.rb
diff --git a/db/migrate/20150506020938_add_url_to_announcements.rb b/apps/basechurch/db/migrate/20150506020938_add_url_to_announcements.rb
similarity index 100%
rename from db/migrate/20150506020938_add_url_to_announcements.rb
rename to apps/basechurch/db/migrate/20150506020938_add_url_to_announcements.rb
diff --git a/db/migrate/20150517033542_add_banner_url_to_bulletins.rb b/apps/basechurch/db/migrate/20150517033542_add_banner_url_to_bulletins.rb
similarity index 100%
rename from db/migrate/20150517033542_add_banner_url_to_bulletins.rb
rename to apps/basechurch/db/migrate/20150517033542_add_banner_url_to_bulletins.rb
diff --git a/db/migrate/20150525002323_add_sermon_notes_to_bulletins.rb b/apps/basechurch/db/migrate/20150525002323_add_sermon_notes_to_bulletins.rb
similarity index 100%
rename from db/migrate/20150525002323_add_sermon_notes_to_bulletins.rb
rename to apps/basechurch/db/migrate/20150525002323_add_sermon_notes_to_bulletins.rb
diff --git a/db/migrate/20150527041615_add_audio_url_to_bulletins.rb b/apps/basechurch/db/migrate/20150527041615_add_audio_url_to_bulletins.rb
similarity index 100%
rename from db/migrate/20150527041615_add_audio_url_to_bulletins.rb
rename to apps/basechurch/db/migrate/20150527041615_add_audio_url_to_bulletins.rb
diff --git a/db/migrate/20150530024856_add_banner_url_to_post.rb b/apps/basechurch/db/migrate/20150530024856_add_banner_url_to_post.rb
similarity index 100%
rename from db/migrate/20150530024856_add_banner_url_to_post.rb
rename to apps/basechurch/db/migrate/20150530024856_add_banner_url_to_post.rb
diff --git a/db/migrate/20150714004207_add_about_and_banner_url_to_groups.rb b/apps/basechurch/db/migrate/20150714004207_add_about_and_banner_url_to_groups.rb
similarity index 100%
rename from db/migrate/20150714004207_add_about_and_banner_url_to_groups.rb
rename to apps/basechurch/db/migrate/20150714004207_add_about_and_banner_url_to_groups.rb
diff --git a/db/migrate/20150807030656_create_attachments.rb b/apps/basechurch/db/migrate/20150807030656_create_attachments.rb
similarity index 100%
rename from db/migrate/20150807030656_create_attachments.rb
rename to apps/basechurch/db/migrate/20150807030656_create_attachments.rb
diff --git a/db/migrate/20150808012750_remove_banner_url_from_post.rb b/apps/basechurch/db/migrate/20150808012750_remove_banner_url_from_post.rb
similarity index 100%
rename from db/migrate/20150808012750_remove_banner_url_from_post.rb
rename to apps/basechurch/db/migrate/20150808012750_remove_banner_url_from_post.rb
diff --git a/db/migrate/20150808025204_remove_banner_url_and_audio_url_from_bulletins.rb b/apps/basechurch/db/migrate/20150808025204_remove_banner_url_and_audio_url_from_bulletins.rb
similarity index 100%
rename from db/migrate/20150808025204_remove_banner_url_and_audio_url_from_bulletins.rb
rename to apps/basechurch/db/migrate/20150808025204_remove_banner_url_and_audio_url_from_bulletins.rb
diff --git a/db/migrate/20150825021220_remove_attachments.rb b/apps/basechurch/db/migrate/20150825021220_remove_attachments.rb
similarity index 100%
rename from db/migrate/20150825021220_remove_attachments.rb
rename to apps/basechurch/db/migrate/20150825021220_remove_attachments.rb
diff --git a/db/migrate/20150826021028_create_basechurch_attachments.rb b/apps/basechurch/db/migrate/20150826021028_create_basechurch_attachments.rb
similarity index 100%
rename from db/migrate/20150826021028_create_basechurch_attachments.rb
rename to apps/basechurch/db/migrate/20150826021028_create_basechurch_attachments.rb
diff --git a/db/migrate/20150913035436_rename_basechurch_tables.rb b/apps/basechurch/db/migrate/20150913035436_rename_basechurch_tables.rb
similarity index 100%
rename from db/migrate/20150913035436_rename_basechurch_tables.rb
rename to apps/basechurch/db/migrate/20150913035436_rename_basechurch_tables.rb
diff --git a/db/migrate/20160309214255_add_kind_to_posts.rb b/apps/basechurch/db/migrate/20160309214255_add_kind_to_posts.rb
similarity index 100%
rename from db/migrate/20160309214255_add_kind_to_posts.rb
rename to apps/basechurch/db/migrate/20160309214255_add_kind_to_posts.rb
diff --git a/db/migrate/20160414233629_add_details_to_groups.rb b/apps/basechurch/db/migrate/20160414233629_add_details_to_groups.rb
similarity index 100%
rename from db/migrate/20160414233629_add_details_to_groups.rb
rename to apps/basechurch/db/migrate/20160414233629_add_details_to_groups.rb
diff --git a/db/migrate/20160621012226_create_sermons.rb b/apps/basechurch/db/migrate/20160621012226_create_sermons.rb
similarity index 100%
rename from db/migrate/20160621012226_create_sermons.rb
rename to apps/basechurch/db/migrate/20160621012226_create_sermons.rb
diff --git a/db/migrate/20160624024551_add_sermon_id_to_bulletins.rb b/apps/basechurch/db/migrate/20160624024551_add_sermon_id_to_bulletins.rb
similarity index 100%
rename from db/migrate/20160624024551_add_sermon_id_to_bulletins.rb
rename to apps/basechurch/db/migrate/20160624024551_add_sermon_id_to_bulletins.rb
diff --git a/db/migrate/20161011033416_drop_apikeys_table.rb b/apps/basechurch/db/migrate/20161011033416_drop_apikeys_table.rb
similarity index 100%
rename from db/migrate/20161011033416_drop_apikeys_table.rb
rename to apps/basechurch/db/migrate/20161011033416_drop_apikeys_table.rb
diff --git a/db/schema.rb b/apps/basechurch/db/schema.rb
similarity index 85%
rename from db/schema.rb
rename to apps/basechurch/db/schema.rb
index 558328e..9209cbc 100644
--- a/db/schema.rb
+++ b/apps/basechurch/db/schema.rb
@@ -13,6 +13,9 @@
ActiveRecord::Schema.define(version: 20161011033416) do
+ # These are extensions that must be enabled in order to support this database
+ enable_extension "plpgsql"
+
create_table "announcements", force: :cascade do |t|
t.integer "post_id"
t.integer "bulletin_id"
@@ -23,8 +26,8 @@
t.string "url"
end
- add_index "announcements", ["bulletin_id"], name: "index_announcements_on_bulletin_id"
- add_index "announcements", ["post_id"], name: "index_announcements_on_post_id"
+ add_index "announcements", ["bulletin_id"], name: "index_announcements_on_bulletin_id", using: :btree
+ add_index "announcements", ["post_id"], name: "index_announcements_on_post_id", using: :btree
create_table "attachments", force: :cascade do |t|
t.string "key"
@@ -35,7 +38,7 @@
t.datetime "updated_at"
end
- add_index "attachments", ["attachable_type", "attachable_id"], name: "attachments_polymorphic_keys_index"
+ add_index "attachments", ["attachable_type", "attachable_id"], name: "attachments_polymorphic_keys_index", using: :btree
create_table "bulletins", force: :cascade do |t|
t.datetime "published_at"
@@ -49,7 +52,7 @@
t.integer "sermon_id"
end
- add_index "bulletins", ["sermon_id"], name: "index_bulletins_on_sermon_id"
+ add_index "bulletins", ["sermon_id"], name: "index_bulletins_on_sermon_id", using: :btree
create_table "friendly_id_slugs", force: :cascade do |t|
t.string "slug", null: false
@@ -59,10 +62,10 @@
t.datetime "created_at"
end
- add_index "friendly_id_slugs", ["slug", "sluggable_type", "scope"], name: "index_friendly_id_slugs_on_slug_and_sluggable_type_and_scope", unique: true
- add_index "friendly_id_slugs", ["slug", "sluggable_type"], name: "index_friendly_id_slugs_on_slug_and_sluggable_type"
- add_index "friendly_id_slugs", ["sluggable_id"], name: "index_friendly_id_slugs_on_sluggable_id"
- add_index "friendly_id_slugs", ["sluggable_type"], name: "index_friendly_id_slugs_on_sluggable_type"
+ add_index "friendly_id_slugs", ["slug", "sluggable_type", "scope"], name: "index_friendly_id_slugs_on_slug_and_sluggable_type_and_scope", unique: true, using: :btree
+ add_index "friendly_id_slugs", ["slug", "sluggable_type"], name: "index_friendly_id_slugs_on_slug_and_sluggable_type", using: :btree
+ add_index "friendly_id_slugs", ["sluggable_id"], name: "index_friendly_id_slugs_on_sluggable_id", using: :btree
+ add_index "friendly_id_slugs", ["sluggable_type"], name: "index_friendly_id_slugs_on_sluggable_type", using: :btree
create_table "groups", force: :cascade do |t|
t.string "name"
@@ -76,7 +79,7 @@
t.string "meet_details"
end
- add_index "groups", ["slug"], name: "index_groups_on_slug", unique: true
+ add_index "groups", ["slug"], name: "index_groups_on_slug", unique: true, using: :btree
create_table "posts", force: :cascade do |t|
t.integer "group_id"
@@ -91,9 +94,9 @@
t.integer "kind", default: 0
end
- add_index "posts", ["author_id"], name: "index_posts_on_author_id"
- add_index "posts", ["editor_id"], name: "index_posts_on_editor_id"
- add_index "posts", ["group_id"], name: "index_posts_on_group_id"
+ add_index "posts", ["author_id"], name: "index_posts_on_author_id", using: :btree
+ add_index "posts", ["editor_id"], name: "index_posts_on_editor_id", using: :btree
+ add_index "posts", ["group_id"], name: "index_posts_on_group_id", using: :btree
create_table "sermons", force: :cascade do |t|
t.integer "group_id"
@@ -106,7 +109,7 @@
t.datetime "updated_at", null: false
end
- add_index "sermons", ["group_id"], name: "index_sermons_on_group_id"
+ add_index "sermons", ["group_id"], name: "index_sermons_on_group_id", using: :btree
create_table "taggings", force: :cascade do |t|
t.integer "tag_id"
@@ -118,15 +121,15 @@
t.datetime "created_at"
end
- add_index "taggings", ["tag_id", "taggable_id", "taggable_type", "context", "tagger_id", "tagger_type"], name: "taggings_idx", unique: true
- add_index "taggings", ["taggable_id", "taggable_type", "context"], name: "index_taggings_on_taggable_id_and_taggable_type_and_context"
+ add_index "taggings", ["tag_id", "taggable_id", "taggable_type", "context", "tagger_id", "tagger_type"], name: "taggings_idx", unique: true, using: :btree
+ add_index "taggings", ["taggable_id", "taggable_type", "context"], name: "index_taggings_on_taggable_id_and_taggable_type_and_context", using: :btree
create_table "tags", force: :cascade do |t|
t.string "name"
t.integer "taggings_count", default: 0
end
- add_index "tags", ["name"], name: "index_tags_on_name", unique: true
+ add_index "tags", ["name"], name: "index_tags_on_name", unique: true, using: :btree
create_table "users", force: :cascade do |t|
t.string "provider", null: false
@@ -153,8 +156,10 @@
t.datetime "updated_at"
end
- add_index "users", ["email"], name: "index_users_on_email"
- add_index "users", ["reset_password_token"], name: "index_users_on_reset_password_token", unique: true
- add_index "users", ["uid", "provider"], name: "index_users_on_uid_and_provider", unique: true
+ add_index "users", ["email"], name: "index_users_on_email", using: :btree
+ add_index "users", ["reset_password_token"], name: "index_users_on_reset_password_token", unique: true, using: :btree
+ add_index "users", ["uid", "provider"], name: "index_users_on_uid_and_provider", unique: true, using: :btree
+ add_foreign_key "bulletins", "sermons"
+ add_foreign_key "sermons", "groups"
end
diff --git a/db/seeds.rb b/apps/basechurch/db/seeds.rb
similarity index 100%
rename from db/seeds.rb
rename to apps/basechurch/db/seeds.rb
diff --git a/apps/basechurch/docker-compose.override.yml b/apps/basechurch/docker-compose.override.yml
new file mode 100644
index 0000000..e60ce9b
--- /dev/null
+++ b/apps/basechurch/docker-compose.override.yml
@@ -0,0 +1,13 @@
+version: '3'
+services:
+ db:
+ image: postgres:latest
+ api:
+ build: .
+ env_file:
+ - ./.env.${BASECHURCH_ENV}
+ volumes:
+ - .:/app
+ depends_on:
+ - db
+
diff --git a/apps/basechurch/docker-compose.yml b/apps/basechurch/docker-compose.yml
new file mode 100644
index 0000000..3c9b512
--- /dev/null
+++ b/apps/basechurch/docker-compose.yml
@@ -0,0 +1,9 @@
+version: '3'
+services:
+ api:
+ image: fisherhall/api:latest
+ env_file:
+ - ./.env.${BASECHURCH_ENV}
+ command: bundle exec rails s -p 3000 -b '0.0.0.0'
+ ports:
+ - "3000:3000"
diff --git a/lib/basechurch.rb b/apps/basechurch/lib/basechurch.rb
similarity index 100%
rename from lib/basechurch.rb
rename to apps/basechurch/lib/basechurch.rb
diff --git a/lib/basechurch/version.rb b/apps/basechurch/lib/basechurch/version.rb
similarity index 100%
rename from lib/basechurch/version.rb
rename to apps/basechurch/lib/basechurch/version.rb
diff --git a/lib/capistrano/substitute_strings.rb b/apps/basechurch/lib/capistrano/substitute_strings.rb
similarity index 100%
rename from lib/capistrano/substitute_strings.rb
rename to apps/basechurch/lib/capistrano/substitute_strings.rb
diff --git a/lib/capistrano/tasks/check_revision.cap b/apps/basechurch/lib/capistrano/tasks/check_revision.cap
similarity index 100%
rename from lib/capistrano/tasks/check_revision.cap
rename to apps/basechurch/lib/capistrano/tasks/check_revision.cap
diff --git a/lib/capistrano/tasks/logs.cap b/apps/basechurch/lib/capistrano/tasks/logs.cap
similarity index 100%
rename from lib/capistrano/tasks/logs.cap
rename to apps/basechurch/lib/capistrano/tasks/logs.cap
diff --git a/lib/capistrano/tasks/monit.cap b/apps/basechurch/lib/capistrano/tasks/monit.cap
similarity index 100%
rename from lib/capistrano/tasks/monit.cap
rename to apps/basechurch/lib/capistrano/tasks/monit.cap
diff --git a/lib/capistrano/tasks/nginx.cap b/apps/basechurch/lib/capistrano/tasks/nginx.cap
similarity index 100%
rename from lib/capistrano/tasks/nginx.cap
rename to apps/basechurch/lib/capistrano/tasks/nginx.cap
diff --git a/lib/capistrano/tasks/restart.cap b/apps/basechurch/lib/capistrano/tasks/restart.cap
similarity index 100%
rename from lib/capistrano/tasks/restart.cap
rename to apps/basechurch/lib/capistrano/tasks/restart.cap
diff --git a/lib/capistrano/tasks/run_tests.cap b/apps/basechurch/lib/capistrano/tasks/run_tests.cap
similarity index 100%
rename from lib/capistrano/tasks/run_tests.cap
rename to apps/basechurch/lib/capistrano/tasks/run_tests.cap
diff --git a/lib/capistrano/tasks/setup_config.cap b/apps/basechurch/lib/capistrano/tasks/setup_config.cap
similarity index 100%
rename from lib/capistrano/tasks/setup_config.cap
rename to apps/basechurch/lib/capistrano/tasks/setup_config.cap
diff --git a/lib/capistrano/template.rb b/apps/basechurch/lib/capistrano/template.rb
similarity index 100%
rename from lib/capistrano/template.rb
rename to apps/basechurch/lib/capistrano/template.rb
diff --git a/lib/has_attachment.rb b/apps/basechurch/lib/has_attachment.rb
similarity index 100%
rename from lib/has_attachment.rb
rename to apps/basechurch/lib/has_attachment.rb
diff --git a/lib/tasks/attachments.rake b/apps/basechurch/lib/tasks/attachments.rake
similarity index 100%
rename from lib/tasks/attachments.rake
rename to apps/basechurch/lib/tasks/attachments.rake
diff --git a/lib/tasks/basechurch_tasks.rake b/apps/basechurch/lib/tasks/basechurch_tasks.rake
similarity index 100%
rename from lib/tasks/basechurch_tasks.rake
rename to apps/basechurch/lib/tasks/basechurch_tasks.rake
diff --git a/setup_vps.sh b/apps/basechurch/setup_vps.sh
similarity index 100%
rename from setup_vps.sh
rename to apps/basechurch/setup_vps.sh
diff --git a/spec/acceptance/announcements_spec.rb b/apps/basechurch/spec/acceptance/announcements_spec.rb
similarity index 100%
rename from spec/acceptance/announcements_spec.rb
rename to apps/basechurch/spec/acceptance/announcements_spec.rb
diff --git a/spec/acceptance/bulletins_spec.rb b/apps/basechurch/spec/acceptance/bulletins_spec.rb
similarity index 98%
rename from spec/acceptance/bulletins_spec.rb
rename to apps/basechurch/spec/acceptance/bulletins_spec.rb
index 7d41506..edd5cbc 100644
--- a/spec/acceptance/bulletins_spec.rb
+++ b/apps/basechurch/spec/acceptance/bulletins_spec.rb
@@ -14,7 +14,7 @@ def expect_bulletin(payload, model)
end
get "api/v1/sunday" do
- let!(:english_service) { create(:group, :completed, slug: "english-service") }
+ let!(:english_service) { create(:group, :completed, id: 1, slug: "english-service") }
let!(:old_bulletin) do
create(:bulletin, :completed, group: english_service, published_at: 10.days.ago)
diff --git a/spec/acceptance/groups_spec.rb b/apps/basechurch/spec/acceptance/groups_spec.rb
similarity index 100%
rename from spec/acceptance/groups_spec.rb
rename to apps/basechurch/spec/acceptance/groups_spec.rb
diff --git a/spec/acceptance/posts_spec.rb b/apps/basechurch/spec/acceptance/posts_spec.rb
similarity index 97%
rename from spec/acceptance/posts_spec.rb
rename to apps/basechurch/spec/acceptance/posts_spec.rb
index ae25ed0..70685a8 100644
--- a/spec/acceptance/posts_spec.rb
+++ b/apps/basechurch/spec/acceptance/posts_spec.rb
@@ -12,7 +12,7 @@ def expect_post(payload, model)
expect(attributes["content"]).to eq model.content
expect(attributes["kind"]).to eq model.kind
expect(attributes["published-at"]).to eq model.published_at.localtime("+00:00").iso8601
- expect(attributes["tags"]).to eq model.tag_list
+ expect(attributes["tags"]).to eq model.tag_list.sort
expect(attributes["title"]).to eq model.title
end
@@ -100,7 +100,7 @@ def expect_post(payload, model)
to eq data_attributes_published_at.to_time.localtime("+00:00").iso8601
expect(subject.title).to eq data_attributes_title
expect(subject.content).to eq data_attributes_content
- expect(subject.tag_list).to eq data_attributes_tags
+ expect(subject.tag_list.sort).to eq data_attributes_tags
expect(subject.kind).to eq data_attributes_kind
expect(subject.group).to eq group
@@ -179,7 +179,7 @@ def expect_post(payload, model)
expect(subject.title).to eq data_attributes_title
expect(subject.content).to eq data_attributes_content
- expect(subject.tag_list).to eq data_attributes_tags
+ expect(subject.tag_list.sort).to eq data_attributes_tags
expect(subject.kind).to eq data_attributes_kind
expect(subject.group).to eq group
diff --git a/spec/acceptance/sermons_spec.rb b/apps/basechurch/spec/acceptance/sermons_spec.rb
similarity index 97%
rename from spec/acceptance/sermons_spec.rb
rename to apps/basechurch/spec/acceptance/sermons_spec.rb
index 4725a07..4834e42 100644
--- a/spec/acceptance/sermons_spec.rb
+++ b/apps/basechurch/spec/acceptance/sermons_spec.rb
@@ -15,7 +15,7 @@ def expect_sermon(payload, model)
expect(attributes["published-at"]).to eq model.published_at.localtime("+00:00").iso8601
expect(attributes["series"]).to eq model.series
expect(attributes["speaker"]).to eq model.speaker
- expect(attributes["tags"]).to eq model.tag_list
+ expect(attributes["tags"]).to eq model.tag_list.sort
end
get "api/v1/sermons/:id" do
@@ -103,7 +103,7 @@ def expect_sermon(payload, model)
expect(subject.notes).to eq data_attributes_notes
expect(subject.series).to eq data_attributes_series
expect(subject.speaker).to eq data_attributes_speaker
- expect(subject.tag_list).to eq data_attributes_tags
+ expect(subject.tag_list.sort).to eq data_attributes_tags
expect_sermon(response["data"], subject)
end
@@ -195,7 +195,7 @@ def expect_sermon(payload, model)
expect(subject.notes).to eq data_attributes_notes
expect(subject.series).to eq data_attributes_series
expect(subject.speaker).to eq data_attributes_speaker
- expect(subject.tag_list).to eq data_attributes_tags
+ expect(subject.tag_list.sort).to eq data_attributes_tags
expect_sermon(response["data"], subject)
end
diff --git a/spec/acceptance/users_spec.rb b/apps/basechurch/spec/acceptance/users_spec.rb
similarity index 100%
rename from spec/acceptance/users_spec.rb
rename to apps/basechurch/spec/acceptance/users_spec.rb
diff --git a/spec/controllers/concerns/.keep b/apps/basechurch/spec/controllers/concerns/.keep
similarity index 100%
rename from spec/controllers/concerns/.keep
rename to apps/basechurch/spec/controllers/concerns/.keep
diff --git a/spec/controllers/registrations_controller_spec.rb b/apps/basechurch/spec/controllers/registrations_controller_spec.rb
similarity index 100%
rename from spec/controllers/registrations_controller_spec.rb
rename to apps/basechurch/spec/controllers/registrations_controller_spec.rb
diff --git a/spec/controllers/sessions_controller_spec.rb b/apps/basechurch/spec/controllers/sessions_controller_spec.rb
similarity index 100%
rename from spec/controllers/sessions_controller_spec.rb
rename to apps/basechurch/spec/controllers/sessions_controller_spec.rb
diff --git a/spec/lib/random_filename_spec.rb b/apps/basechurch/spec/lib/random_filename_spec.rb
similarity index 100%
rename from spec/lib/random_filename_spec.rb
rename to apps/basechurch/spec/lib/random_filename_spec.rb
diff --git a/spec/lib/s3_signer_spec.rb b/apps/basechurch/spec/lib/s3_signer_spec.rb
similarity index 100%
rename from spec/lib/s3_signer_spec.rb
rename to apps/basechurch/spec/lib/s3_signer_spec.rb
diff --git a/spec/models/announcement_spec.rb b/apps/basechurch/spec/models/announcement_spec.rb
similarity index 100%
rename from spec/models/announcement_spec.rb
rename to apps/basechurch/spec/models/announcement_spec.rb
diff --git a/spec/models/bulletin_spec.rb b/apps/basechurch/spec/models/bulletin_spec.rb
similarity index 100%
rename from spec/models/bulletin_spec.rb
rename to apps/basechurch/spec/models/bulletin_spec.rb
diff --git a/spec/models/group_spec.rb b/apps/basechurch/spec/models/group_spec.rb
similarity index 100%
rename from spec/models/group_spec.rb
rename to apps/basechurch/spec/models/group_spec.rb
diff --git a/spec/models/post_spec.rb b/apps/basechurch/spec/models/post_spec.rb
similarity index 100%
rename from spec/models/post_spec.rb
rename to apps/basechurch/spec/models/post_spec.rb
diff --git a/spec/models/sermon_spec.rb b/apps/basechurch/spec/models/sermon_spec.rb
similarity index 100%
rename from spec/models/sermon_spec.rb
rename to apps/basechurch/spec/models/sermon_spec.rb
diff --git a/spec/models/user_spec.rb b/apps/basechurch/spec/models/user_spec.rb
similarity index 100%
rename from spec/models/user_spec.rb
rename to apps/basechurch/spec/models/user_spec.rb
diff --git a/spec/rails_helper.rb b/apps/basechurch/spec/rails_helper.rb
similarity index 100%
rename from spec/rails_helper.rb
rename to apps/basechurch/spec/rails_helper.rb
diff --git a/spec/resources/api/v1/announcement_resource_spec.rb b/apps/basechurch/spec/resources/api/v1/announcement_resource_spec.rb
similarity index 100%
rename from spec/resources/api/v1/announcement_resource_spec.rb
rename to apps/basechurch/spec/resources/api/v1/announcement_resource_spec.rb
diff --git a/spec/resources/api/v1/bulletin_resource_spec.rb b/apps/basechurch/spec/resources/api/v1/bulletin_resource_spec.rb
similarity index 100%
rename from spec/resources/api/v1/bulletin_resource_spec.rb
rename to apps/basechurch/spec/resources/api/v1/bulletin_resource_spec.rb
diff --git a/spec/resources/api/v1/group_resource_spec.rb b/apps/basechurch/spec/resources/api/v1/group_resource_spec.rb
similarity index 100%
rename from spec/resources/api/v1/group_resource_spec.rb
rename to apps/basechurch/spec/resources/api/v1/group_resource_spec.rb
diff --git a/spec/resources/api/v1/post_resource_spec.rb b/apps/basechurch/spec/resources/api/v1/post_resource_spec.rb
similarity index 100%
rename from spec/resources/api/v1/post_resource_spec.rb
rename to apps/basechurch/spec/resources/api/v1/post_resource_spec.rb
diff --git a/spec/resources/api/v1/sermon_resource_spec.rb b/apps/basechurch/spec/resources/api/v1/sermon_resource_spec.rb
similarity index 100%
rename from spec/resources/api/v1/sermon_resource_spec.rb
rename to apps/basechurch/spec/resources/api/v1/sermon_resource_spec.rb
diff --git a/spec/resources/api/v1/user_resource_spec.rb b/apps/basechurch/spec/resources/api/v1/user_resource_spec.rb
similarity index 100%
rename from spec/resources/api/v1/user_resource_spec.rb
rename to apps/basechurch/spec/resources/api/v1/user_resource_spec.rb
diff --git a/spec/routing/announcements_routing_spec.rb b/apps/basechurch/spec/routing/announcements_routing_spec.rb
similarity index 100%
rename from spec/routing/announcements_routing_spec.rb
rename to apps/basechurch/spec/routing/announcements_routing_spec.rb
diff --git a/spec/routing/bulletins_routing_spec.rb b/apps/basechurch/spec/routing/bulletins_routing_spec.rb
similarity index 100%
rename from spec/routing/bulletins_routing_spec.rb
rename to apps/basechurch/spec/routing/bulletins_routing_spec.rb
diff --git a/spec/routing/groups_routing_spec.rb b/apps/basechurch/spec/routing/groups_routing_spec.rb
similarity index 100%
rename from spec/routing/groups_routing_spec.rb
rename to apps/basechurch/spec/routing/groups_routing_spec.rb
diff --git a/spec/routing/posts_routing_spec.rb b/apps/basechurch/spec/routing/posts_routing_spec.rb
similarity index 100%
rename from spec/routing/posts_routing_spec.rb
rename to apps/basechurch/spec/routing/posts_routing_spec.rb
diff --git a/spec/spec_helper.rb b/apps/basechurch/spec/spec_helper.rb
similarity index 100%
rename from spec/spec_helper.rb
rename to apps/basechurch/spec/spec_helper.rb
diff --git a/spec/support/devise.rb b/apps/basechurch/spec/support/devise.rb
similarity index 100%
rename from spec/support/devise.rb
rename to apps/basechurch/spec/support/devise.rb
diff --git a/spec/support/factories/announcements.rb b/apps/basechurch/spec/support/factories/announcements.rb
similarity index 100%
rename from spec/support/factories/announcements.rb
rename to apps/basechurch/spec/support/factories/announcements.rb
diff --git a/spec/support/factories/attachments.rb b/apps/basechurch/spec/support/factories/attachments.rb
similarity index 100%
rename from spec/support/factories/attachments.rb
rename to apps/basechurch/spec/support/factories/attachments.rb
diff --git a/spec/support/factories/bulletins.rb b/apps/basechurch/spec/support/factories/bulletins.rb
similarity index 100%
rename from spec/support/factories/bulletins.rb
rename to apps/basechurch/spec/support/factories/bulletins.rb
diff --git a/spec/support/factories/groups.rb b/apps/basechurch/spec/support/factories/groups.rb
similarity index 100%
rename from spec/support/factories/groups.rb
rename to apps/basechurch/spec/support/factories/groups.rb
diff --git a/spec/support/factories/posts.rb b/apps/basechurch/spec/support/factories/posts.rb
similarity index 100%
rename from spec/support/factories/posts.rb
rename to apps/basechurch/spec/support/factories/posts.rb
diff --git a/spec/support/factories/sermons.rb b/apps/basechurch/spec/support/factories/sermons.rb
similarity index 100%
rename from spec/support/factories/sermons.rb
rename to apps/basechurch/spec/support/factories/sermons.rb
diff --git a/spec/support/factories/users.rb b/apps/basechurch/spec/support/factories/users.rb
similarity index 100%
rename from spec/support/factories/users.rb
rename to apps/basechurch/spec/support/factories/users.rb
diff --git a/spec/support/factory_girl.rb b/apps/basechurch/spec/support/factory_girl.rb
similarity index 100%
rename from spec/support/factory_girl.rb
rename to apps/basechurch/spec/support/factory_girl.rb
diff --git a/spec/support/request_helpers.rb b/apps/basechurch/spec/support/request_helpers.rb
similarity index 100%
rename from spec/support/request_helpers.rb
rename to apps/basechurch/spec/support/request_helpers.rb
diff --git a/spec/support/shared_examples/authenticated_action.rb b/apps/basechurch/spec/support/shared_examples/authenticated_action.rb
similarity index 100%
rename from spec/support/shared_examples/authenticated_action.rb
rename to apps/basechurch/spec/support/shared_examples/authenticated_action.rb
diff --git a/spec/support/shared_examples/has_attachment.rb b/apps/basechurch/spec/support/shared_examples/has_attachment.rb
similarity index 100%
rename from spec/support/shared_examples/has_attachment.rb
rename to apps/basechurch/spec/support/shared_examples/has_attachment.rb
diff --git a/spec/support/shared_examples/s3_signing.rb b/apps/basechurch/spec/support/shared_examples/s3_signing.rb
similarity index 100%
rename from spec/support/shared_examples/s3_signing.rb
rename to apps/basechurch/spec/support/shared_examples/s3_signing.rb
diff --git a/spec/validators/iso8601_validator_spec.rb b/apps/basechurch/spec/validators/iso8601_validator_spec.rb
similarity index 100%
rename from spec/validators/iso8601_validator_spec.rb
rename to apps/basechurch/spec/validators/iso8601_validator_spec.rb
diff --git a/apps/landing/.env.dev b/apps/landing/.env.dev
new file mode 100644
index 0000000..05667c9
--- /dev/null
+++ b/apps/landing/.env.dev
@@ -0,0 +1,2 @@
+REDIS_HOST=redis
+ENVIRONMENT=development
diff --git a/apps/landing/.env.test b/apps/landing/.env.test
new file mode 100644
index 0000000..2bc6a2d
--- /dev/null
+++ b/apps/landing/.env.test
@@ -0,0 +1,2 @@
+REDIS_HOST=test
+ENVIRONMENT=test
diff --git a/apps/landing/.gitignore b/apps/landing/.gitignore
new file mode 100644
index 0000000..06f3619
--- /dev/null
+++ b/apps/landing/.gitignore
@@ -0,0 +1,68 @@
+# Created by https://www.gitignore.io/api/intellij
+
+### Intellij ###
+# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm
+# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
+
+# User-specific stuff:
+.idea/**/workspace.xml
+.idea/**/tasks.xml
+.idea/dictionaries
+
+# Sensitive or high-churn files:
+.idea/**/dataSources/
+.idea/**/dataSources.ids
+.idea/**/dataSources.xml
+.idea/**/dataSources.local.xml
+.idea/**/sqlDataSources.xml
+.idea/**/dynamic.xml
+.idea/**/uiDesigner.xml
+
+# Gradle:
+.idea/**/gradle.xml
+.idea/**/libraries
+
+# CMake
+cmake-build-debug/
+
+# Mongo Explorer plugin:
+.idea/**/mongoSettings.xml
+
+## File-based project format:
+*.iws
+
+## Plugin-specific files:
+
+# IntelliJ
+/out/
+
+# mpeltonen/sbt-idea plugin
+.idea_modules/
+
+# JIRA plugin
+atlassian-ide-plugin.xml
+
+# Cursive Clojure plugin
+.idea/replstate.xml
+
+# Ruby plugin and RubyMine
+/.rakeTasks
+
+# Crashlytics plugin (for Android Studio and IntelliJ)
+com_crashlytics_export_strings.xml
+crashlytics.properties
+crashlytics-build.properties
+fabric.properties
+
+### Intellij Patch ###
+# Comment Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-215987721
+
+*.iml
+modules.xml
+.idea/misc.xml
+*.ipr
+
+# Sonarlint plugin
+.idea/sonarlint
+
+# End of https://www.gitignore.io/api/intellij
diff --git a/apps/landing/.idea/codeStyleSettings.xml b/apps/landing/.idea/codeStyleSettings.xml
new file mode 100644
index 0000000..5555dd2
--- /dev/null
+++ b/apps/landing/.idea/codeStyleSettings.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/apps/landing/.idea/libraries/landing_jar_with_dependencies.xml b/apps/landing/.idea/libraries/landing_jar_with_dependencies.xml
new file mode 100644
index 0000000..249937a
--- /dev/null
+++ b/apps/landing/.idea/libraries/landing_jar_with_dependencies.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/apps/landing/.idea/misc.xml b/apps/landing/.idea/misc.xml
new file mode 100644
index 0000000..0548357
--- /dev/null
+++ b/apps/landing/.idea/misc.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/apps/landing/.idea/modules.xml b/apps/landing/.idea/modules.xml
new file mode 100644
index 0000000..5d418ec
--- /dev/null
+++ b/apps/landing/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/apps/landing/Dockerfile b/apps/landing/Dockerfile
new file mode 100644
index 0000000..42b5969
--- /dev/null
+++ b/apps/landing/Dockerfile
@@ -0,0 +1,16 @@
+FROM openjdk:8
+
+# Install maven
+RUN apt-get update
+RUN apt-get install -y maven
+
+RUN mkdir /app
+WORKDIR /app
+
+# Prepare by downloading dependencies
+ADD pom.xml /app/pom.xml
+RUN ["mvn", "dependency:resolve"]
+
+ADD src /app/src
+RUN ["mvn", "verify", "-DskipTests"]
+RUN ["mvn", "package", "-DskipTests"]
diff --git a/apps/landing/docker-compose.override.yml b/apps/landing/docker-compose.override.yml
new file mode 100644
index 0000000..3fb9d5c
--- /dev/null
+++ b/apps/landing/docker-compose.override.yml
@@ -0,0 +1,9 @@
+version: '3'
+services:
+ landing:
+ build: .
+ env_file:
+ - ./.env.${BASECHURCH_ENV}
+ volumes:
+ - ./target:/app/target
+ command: bash -c "mvn package && java -jar target/landing-jar-with-dependencies.jar"
diff --git a/apps/landing/docker-compose.test.yml b/apps/landing/docker-compose.test.yml
new file mode 100644
index 0000000..d242227
--- /dev/null
+++ b/apps/landing/docker-compose.test.yml
@@ -0,0 +1,8 @@
+version: '3'
+services:
+ landing:
+ env_file:
+ - ./.env.${BASECHURCH_ENV}
+ volumes:
+ - ./target:/app/target
+ - ./src:/app/src
diff --git a/apps/landing/docker-compose.yml b/apps/landing/docker-compose.yml
new file mode 100644
index 0000000..d551081
--- /dev/null
+++ b/apps/landing/docker-compose.yml
@@ -0,0 +1,14 @@
+version: '3'
+services:
+ redis:
+ image: redis:latest
+ landing:
+ image: fisherhall/landing:latest
+ env_file:
+ - ./.env.${BASECHURCH_ENV}
+ command: java -jar target/landing-jar-with-dependencies.jar
+ ports:
+ - "4567:4567"
+ depends_on:
+ - redis
+
diff --git a/apps/landing/pom.xml b/apps/landing/pom.xml
new file mode 100644
index 0000000..5021fef
--- /dev/null
+++ b/apps/landing/pom.xml
@@ -0,0 +1,108 @@
+
+
+ 4.0.0
+
+ io.fisherhall
+ landing
+ 1.0-SNAPSHOT
+
+
+
+ com.sparkjava
+ spark-core
+ 2.6.0
+
+
+ redis.clients
+ jedis
+ 2.9.0
+
+
+ junit
+ junit
+ 4.12
+ test
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+ 2.4
+
+ landing
+
+
+ true
+ io.fisherhall.Application
+ dependency-jars/
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.1
+
+ 1.8
+ 1.8
+
+
+
+ org.apache.maven.plugins
+ maven-assembly-plugin
+
+
+
+ attached
+
+ package
+
+ landing
+
+ jar-with-dependencies
+
+
+
+ io.fisherhall.Application
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+
+
+
+ test-jar
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-assembly-plugin
+
+
+ src/main/assembly/test-jar-with-dependencies.xml
+
+
+
+
+ package
+
+ single
+
+
+
+
+
+
+
diff --git a/apps/landing/src/main/assembly/test-jar-with-dependencies.xml b/apps/landing/src/main/assembly/test-jar-with-dependencies.xml
new file mode 100644
index 0000000..832c66c
--- /dev/null
+++ b/apps/landing/src/main/assembly/test-jar-with-dependencies.xml
@@ -0,0 +1,19 @@
+
+ test-jar-with-dependencies
+
+ jar
+
+ false
+
+
+ /
+ true
+
+ true
+ true
+ test
+
+
+
diff --git a/apps/landing/src/main/java/io/fisherhall/Application.java b/apps/landing/src/main/java/io/fisherhall/Application.java
new file mode 100644
index 0000000..86cc0d9
--- /dev/null
+++ b/apps/landing/src/main/java/io/fisherhall/Application.java
@@ -0,0 +1,15 @@
+package io.fisherhall;
+
+import redis.clients.jedis.Jedis;
+
+import static spark.Spark.get;
+
+public class Application {
+ public static void main(String[] args) {
+ Jedis jedis = new Jedis(System.getenv().get("REDIS_HOST"));
+ Environment environment = Environment.fromEnvironmentVariable(System.getenv("ENVIRONMENT"));
+ LandingPageStore landingPageStore = LandingPageStore.defaultImplementation(jedis, environment);
+
+ get("*", new LandingController(landingPageStore).indexRoute);
+ }
+}
diff --git a/apps/landing/src/main/java/io/fisherhall/Environment.java b/apps/landing/src/main/java/io/fisherhall/Environment.java
new file mode 100644
index 0000000..6543e45
--- /dev/null
+++ b/apps/landing/src/main/java/io/fisherhall/Environment.java
@@ -0,0 +1,20 @@
+package io.fisherhall;
+
+public enum Environment {
+ TEST, DEVELOPMENT, STAGING, PRODUCTION;
+
+ public static Environment fromEnvironmentVariable(String envVar) {
+ switch (envVar.toLowerCase()) {
+ case "test":
+ return TEST;
+ case "development":
+ return DEVELOPMENT;
+ case "staging":
+ return STAGING;
+ case "production":
+ return PRODUCTION;
+ default:
+ return DEVELOPMENT;
+ }
+ }
+}
diff --git a/apps/landing/src/main/java/io/fisherhall/LandingController.java b/apps/landing/src/main/java/io/fisherhall/LandingController.java
new file mode 100644
index 0000000..3c7d724
--- /dev/null
+++ b/apps/landing/src/main/java/io/fisherhall/LandingController.java
@@ -0,0 +1,19 @@
+package io.fisherhall;
+
+import spark.Request;
+import spark.Response;
+import spark.Route;
+
+import java.util.Optional;
+
+public class LandingController {
+ private LandingPageStore store;
+
+ public final Route indexRoute = (Request request, Response response) -> {
+ return store.getFromRevision(Optional.ofNullable(request.queryParams("revision")));
+ };
+
+ public LandingController(LandingPageStore store) {
+ this.store = store;
+ }
+}
diff --git a/apps/landing/src/main/java/io/fisherhall/LandingPageStore.java b/apps/landing/src/main/java/io/fisherhall/LandingPageStore.java
new file mode 100644
index 0000000..dd48096
--- /dev/null
+++ b/apps/landing/src/main/java/io/fisherhall/LandingPageStore.java
@@ -0,0 +1,48 @@
+package io.fisherhall;
+
+import redis.clients.jedis.Jedis;
+
+import java.util.Optional;
+
+public interface LandingPageStore {
+ public String getFromRevision(Optional revision);
+
+ public static LandingPageStore defaultImplementation(Jedis jedis, io.fisherhall.Environment environment) {
+ return new LandingPageStoreImpl(jedis, environment);
+ }
+}
+
+class LandingPageStoreImpl implements LandingPageStore {
+ private Jedis jedis;
+
+ LandingPageStoreImpl(Jedis jedis, io.fisherhall.Environment environment) {
+ this.jedis = jedis;
+
+ if (environment == Environment.DEVELOPMENT) {
+ seedDevelopmentData();
+ }
+ }
+
+ @Override
+ public String getFromRevision(Optional revision) {
+ return jedis.get(fetchRevisionKey(revision));
+ }
+
+ private String fetchRevisionKey(Optional optionalRevision) {
+ String revision = optionalRevision.
+ filter(s -> !s.isEmpty()).
+ orElse(getCurrentRevision());
+
+ return String.format("basechurch:index:%s", revision);
+ }
+
+ private String getCurrentRevision() {
+ return jedis.get("basechurch:index:current");
+ }
+
+ private void seedDevelopmentData() {
+ jedis.set("basechurch:index:current", "CURRENT_REVISION");
+ jedis.set("basechurch:index:CURRENT_REVISION", "Latest Hello World V2
");
+ jedis.set("basechurch:index:secret", "Secret Hello World
");
+ }
+}
diff --git a/apps/landing/src/test/java/io/fisherhall/LandingPageStoreTest.java b/apps/landing/src/test/java/io/fisherhall/LandingPageStoreTest.java
new file mode 100644
index 0000000..efab982
--- /dev/null
+++ b/apps/landing/src/test/java/io/fisherhall/LandingPageStoreTest.java
@@ -0,0 +1,36 @@
+package io.fisherhall;
+
+import org.junit.Before;
+import org.junit.Test;
+import redis.clients.jedis.Jedis;
+
+import java.util.Optional;
+
+import static org.junit.Assert.assertEquals;
+
+public class LandingPageStoreTest {
+ private Jedis jedis;
+ private LandingPageStore store;
+
+ @Before
+ public void beforeEach() {
+ jedis = new Jedis("redis");
+ jedis.flushAll();
+ store = LandingPageStore.defaultImplementation(jedis, Environment.TEST);
+ }
+
+ @Test
+ public void getFromRevision_with_no_revision() {
+ jedis.set("basechurch:index:current", "CURRENT_REVISION");
+ jedis.set("basechurch:index:CURRENT_REVISION", "My landing page");
+
+ assertEquals("My landing page", store.getFromRevision(Optional.empty()));
+ }
+
+ @Test
+ public void getFromRevision_with_revision() {
+ jedis.set("basechurch:index:1", "v1 landing page");
+
+ assertEquals("v1 landing page", store.getFromRevision(Optional.of("1")));
+ }
+}
\ No newline at end of file
diff --git a/bin/createswarm.sh b/bin/createswarm.sh
new file mode 100644
index 0000000..437c205
--- /dev/null
+++ b/bin/createswarm.sh
@@ -0,0 +1,18 @@
+#!/bin/bash
+
+for i in 1 2; do docker-machine create --driver digitalocean \
+ --digitalocean-image ubuntu-16-04-x64 \
+ --digitalocean-access-token $FISHER_HALL_DOTOKEN \
+ --digitalocean-private-networking \
+ --digitalocean-size 512mb node-$i; done
+
+docker-machine ssh node-1 docker swarm init --advertise-addr $(docker-machine ip node-1)
+
+for i in 1 2 3; do \
+ docker-machine ssh node-$i docker swarm join --token SWMTKN-1-3l8l43ag0sisurwpq8r37862r6mtsx9drelj75b6c0yw5dybo3-eebwijloeem96a1u2v79u5p6o 138.197.107.247:2377; done
+
+
+docker-machine scp apps/basechurch/docker-compose.yml node-1:~
+docker-machine scp apps/basechurch/.env.dev node-1:~
+
+docker stack deploy --compose-file docker-compose.yml fisherhall
diff --git a/bin/init-prod.sh b/bin/init-prod.sh
new file mode 100755
index 0000000..fc1dabf
--- /dev/null
+++ b/bin/init-prod.sh
@@ -0,0 +1,18 @@
+#!/bin/bash
+
+docker-compose \
+ -f apps/basechurch/docker-compose.yml \
+ up -d db
+
+docker-compose \
+ -f apps/basechurch/docker-compose.yml \
+ run api rm /app/tmp/pids/server.pid
+
+docker-compose \
+ -f apps/basechurch/docker-compose.yml \
+ run api bundle exec rake db:create db:migrate db:seed
+
+docker-compose \
+ -f apps/basechurch/docker-compose.yml \
+ up -d
+
diff --git a/bin/init.sh b/bin/init.sh
new file mode 100755
index 0000000..21cd753
--- /dev/null
+++ b/bin/init.sh
@@ -0,0 +1,31 @@
+#!/bin/bash
+
+docker-compose \
+ -f apps/basechurch/docker-compose.yml \
+ -f apps/basechurch/docker-compose.override.yml \
+ up -d db
+
+docker-compose \
+ -f apps/basechurch/docker-compose.yml \
+ -f apps/basechurch/docker-compose.override.yml \
+ run api rm /app/tmp/pids/server.pid
+
+docker-compose \
+ -f apps/basechurch/docker-compose.yml \
+ -f apps/basechurch/docker-compose.override.yml \
+ run api bundle exec rake db:create
+
+docker-compose \
+ -f apps/basechurch/docker-compose.yml \
+ -f apps/basechurch/docker-compose.override.yml \
+ run api bundle exec rake db:migrate
+
+docker-compose \
+ -f apps/basechurch/docker-compose.yml \
+ -f apps/basechurch/docker-compose.override.yml \
+ run api bundle exec rake db:seed
+
+docker-compose \
+ -f apps/basechurch/docker-compose.yml \
+ -f apps/basechurch/docker-compose.override.yml \
+ up -d
diff --git a/bin/shutdown.sh b/bin/shutdown.sh
new file mode 100755
index 0000000..bcf8311
--- /dev/null
+++ b/bin/shutdown.sh
@@ -0,0 +1,12 @@
+#!/bin/bash
+
+docker-compose \
+ -f apps/basechurch/docker-compose.yml \
+ -f apps/basechurch/docker-compose.override.yml \
+ down
+
+docker-compose \
+ -f apps/landing/docker-compose.yml \
+ -f apps/landing/docker-compose.override.yml \
+ down
+
diff --git a/bin/test-basechurch.sh b/bin/test-basechurch.sh
new file mode 100755
index 0000000..33fd11c
--- /dev/null
+++ b/bin/test-basechurch.sh
@@ -0,0 +1,23 @@
+#!/bin/bash
+
+export BASECHURCH_ENV=test
+
+docker-compose \
+ -f apps/basechurch/docker-compose.yml \
+ -f apps/basechurch/docker-compose.override.yml \
+ up -d db
+
+docker-compose \
+ -f apps/basechurch/docker-compose.yml \
+ -f apps/basechurch/docker-compose.override.yml \
+ run -e RAILS_ENV=test api bundle exec rake db:create
+
+docker-compose \
+ -f apps/basechurch/docker-compose.yml \
+ -f apps/basechurch/docker-compose.override.yml \
+ run -e RAILS_ENV=test api bundle exec rake db:migrate
+
+docker-compose \
+ -f apps/basechurch/docker-compose.yml \
+ -f apps/basechurch/docker-compose.override.yml \
+ run api bundle exec rspec
diff --git a/bin/test-landing.sh b/bin/test-landing.sh
new file mode 100755
index 0000000..b97fcc3
--- /dev/null
+++ b/bin/test-landing.sh
@@ -0,0 +1,16 @@
+#!/bin/bash
+
+export BASECHURCH_ENV=test
+
+docker-compose \
+ -f apps/landing/docker-compose.yml \
+ -f apps/landing/docker-compose.override.yml \
+ -f apps/landing/docker-compose.test.yml \
+ up -d redis
+
+docker-compose \
+ -f apps/landing/docker-compose.yml \
+ -f apps/landing/docker-compose.override.yml \
+ -f apps/landing/docker-compose.test.yml \
+ run landing mvn test
+
diff --git a/config/chef/site-cookbooks/.gitkeep b/config/chef/site-cookbooks/.gitkeep
deleted file mode 100644
index e69de29..0000000
diff --git a/config/database.yml b/config/database.yml
deleted file mode 100644
index 9d1152d..0000000
--- a/config/database.yml
+++ /dev/null
@@ -1,25 +0,0 @@
-# SQLite version 3.x
-# gem install sqlite3
-#
-# Ensure the SQLite 3 gem is defined in your Gemfile
-# gem 'sqlite3'
-#
-default: &default
- adapter: sqlite3
- pool: 10
- timeout: 50000
-
-development:
- <<: *default
- database: db/development.sqlite3
-
-# Warning: The database defined as "test" will be erased and
-# re-generated from your development database when you run "rake".
-# Do not set this db to the same as development or production.
-test:
- <<: *default
- database: db/test.sqlite3
-
-production:
- <<: *default
- database: db/production.sqlite3
diff --git a/config/initializers/sidekiq.rb b/config/initializers/sidekiq.rb
deleted file mode 100644
index da49bfb..0000000
--- a/config/initializers/sidekiq.rb
+++ /dev/null
@@ -1,7 +0,0 @@
-Sidekiq.configure_server do |config|
- config.redis = { url: RedisSettings.url }
-end
-
-Sidekiq.configure_client do |config|
- config.redis = { url: RedisSettings.url }
-end
diff --git a/config/redis.yml b/config/redis.yml
deleted file mode 100644
index 0c8d925..0000000
--- a/config/redis.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-test:
- url: redis://localhost:6379
-
-development:
- url: redis://localhost:6379
diff --git a/config/secrets.yml b/config/secrets.yml
deleted file mode 100644
index 5affcfa..0000000
--- a/config/secrets.yml
+++ /dev/null
@@ -1,10 +0,0 @@
-default: &default
- secret_key_base: <%= Secrets.secret_key_base %>
- aws_access_key_id: <%= Secrets.aws_access_key_id %>
- aws_secret_access_key: <%= Secrets.aws_secret_access_key %>
- prerender_io_token: <%= Secrets.prerender_io_token %>
-
-test: *default
-development: *default
-staging: *default
-production: *default
diff --git a/config/test-secrets.yml b/config/test-secrets.yml
deleted file mode 100644
index 1093923..0000000
--- a/config/test-secrets.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-test:
- secret_key_base: asdlkjfh23lkj4h23lkjehfsd7f8xc98zxvhxkvjhenrweefdxi99
- aws_access_key_id: test_aws_access_key_id
- aws_secret_access_key: test_aws_secret_access_key
- fb_app_id: test_fb_app_id
- fb_app_secret: test_fb_app_secret
- prerender_io_token: test_prerender_token