Skip to content

Commit

Permalink
Initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
github-classroom[bot] committed May 14, 2022
0 parents commit ab9d79f
Show file tree
Hide file tree
Showing 292 changed files with 31,446 additions and 0 deletions.
2 changes: 2 additions & 0 deletions .browserslistrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
defaults

22 changes: 22 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@

# EditorConfig helps developers define and maintain consistent
# coding styles between different editors and IDEs
# editorconfig.org

root = true

[*]

# We recommend you to keep these unchanged
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true

# Change these settings to your own preference
indent_style = space
indent_size = 4

[*.md]
trim_trailing_whitespace = false

5 changes: 5 additions & 0 deletions .eslintignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@

/node_modules/*
/public/*
postcss.config.js

24 changes: 24 additions & 0 deletions .eslintrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@

module.exports = {
env: {
browser: true,
commonjs: true,
es6: true,
jquery: true
},
extends: [
'airbnb-base'
],
globals: {
Atomics: 'readonly',
SharedArrayBuffer: 'readonly',
},
parserOptions: {
ecmaVersion: 2018,
},
rules: {
indent: ['error', 4],
'linebreak-style': ['error', 'unix'],
},
};

81 changes: 81 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@

*.rbc
capybara-*.html
.rspec
/db/*.sqlite3
/db/*.sqlite3-journal
/db/*.sqlite3-[0-9]*
/public/system
/coverage/
/spec/tmp
*.orig
rerun.txt
pickle-email-*.html

# Ignore all logfiles and tempfiles.
/log/*
/tmp/*
!/log/.keep
!/tmp/.keep

# Note: It is not OK to publish secrets in repo, use figaro instead.
config/initializers/secret_token.rb
config/master.key

# Only include if you have production secrets in this file, which is no longer a Rails default
# config/secrets.yml

# dotenv, dotenv-rails
# TODO Comment out these rules if environment variables can be committed
.env
.env.*

## Environment normalization:
/.bundle
/vendor/bundle

# these should all be checked in to normalize the environment:
# Gemfile.lock, .ruby-version, .ruby-gemset

# unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
.rvmrc

# Ignore erb files generated by rails_real_favicon
# Instead use `bundle exec rails haml:erb2haml app/views/application/_favicon.html.erb` to convert to haml.
app/views/application/_favicon.html.erb

# if using bower-rails ignore default bower_components path bower.json files
/vendor/assets/bower_components
*.bowerrc
bower.json

# Ignore pow environment settings
.powenv

# Ignore Byebug command history file.
.byebug_history

# Ignore node_modules
/node_modules

# Use yarn instead of npm
package-lock.json

# Ignore precompiled javascript packs
/public/packs
/public/packs-test
/public/assets

# Ignore yarn files
/yarn-error.log
yarn-debug.log*
.yarn-integrity

# Ignore uploaded files in development
/storage/*
!/storage/.keep
/public/uploads


# Ignore master key for decrypting credentials and more.
/config/master.key
13 changes: 13 additions & 0 deletions .haml-lint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@

linters:
LineLength:
max: 120
severity: error
Indentation: # For consistency with default rubocop rules.
character: space
width: 4
severity: error
exclude:
- 'node_modules/**/*'
- 'vendor/**/*'

106 changes: 106 additions & 0 deletions .rubocop.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@

require: rubocop-rails
AllCops:
TargetRubyVersion: 2.6
Exclude:
- 'Guardfile'
- 'bin/*'
- 'node_modules/**/*'
- 'vendor/**/*'
- 'db/seed_data.rb'
- 'db/seeds.rb'
- 'db/schema.rb'
- 'config/routes.rb'

Rails:
Enabled: true

Gemspec/RequiredRubyVersion:
Enabled: true

# No space makes the method definition shorter and differentiates
# from a regular assignment.
Layout/SpaceAroundEqualsInParameterDefault:
EnforcedStyle: no_space

# Most readable form.
Layout/HashAlignment:
EnforcedHashRocketStyle: table
EnforcedColonStyle: table

Layout/LineLength:
Max: 120

Layout/IndentationWidth:
Width: 4 # 4 spaces for Indentation.

Lint/RaiseException:
Enabled: true

Lint/StructNewOverride:
Enabled: true

Metrics/BlockLength:
ExcludedMethods: ['describe', 'context', 'shared_examples', 'namespace', 'ActiveRecord::Schema.define']

# Skips style of child classes and modules.
Style/ClassAndModuleChildren:
Enabled: false

Style/CollectionMethods:
Enabled: true
PreferredMethods:
# inject seems more common in the community.
reduce: "inject"

Style/Documentation:
Enabled: false

Style/HashEachMethods:
Enabled: true
AutoCorrect: false # Unsafe autocorrect

Style/HashTransformKeys:
Enabled: true
AutoCorrect: false # Unsafe autocorrect

Style/HashTransformValues:
Enabled: true
AutoCorrect: false # Unsafe autocorrect

# Mixing the styles looks just silly.
Style/HashSyntax:
EnforcedStyle: ruby19_no_mixed_keys

# has_key? and has_value? are far more readable than key? and value?
Style/PreferredHashMethods:
EnforcedStyle: verbose

Layout/EmptyLinesAroundAttributeAccessor:
Enabled: true
Layout/SpaceAroundMethodCallOperator:
Enabled: true
Style/ExponentialNotation:
Enabled: true
Style/SlicingWithRange:
Enabled: true

Metrics/MethodLength:
Max: 20
Exclude:
- 'db/seed_data.rb'

Metrics/ModuleLength:
Exclude:
- 'db/seed_data.rb'

# Version 0.85.0
Lint/DeprecatedOpenSSLConstant:
Enabled: true
Lint/MixedRegexpCaptureTypes:
Enabled: true
Style/RedundantRegexpCharacterClass:
Enabled: true
Style/RedundantRegexpEscape:
Enabled: true

23 changes: 23 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
env:
secure: Roq8/1BG2VJS0nBliiPkKm8pggAHE7KHWQ4FaLqdE/ZcNeSGpoYkx6cRSfgqRyP2d/cKtBMrDCHXW0JKZe3x3jLdVMimAb/syexDL5ISOB2J2bTySY8e8h4Li6pUiXl54rLVWt/N1dv3QfD+WbazNhB95kkrYNccVm6/wWCRM2a5CE5cy8WAMjVX4CRY511J7/3DHQ/64N2qhRwzNqIwEuE96eKOa/WGf6tuzW5ym2yqSZvPJy7lPz0vew5h4zJI/jXuDTcISBaiKQFSwRvduLQdK5RAAfaWfLidVXARZ09W98vgNEwEAkFHbQdwSYwcdmk/SLPGgdlsBZ36GhM97wMmo2ANS1No/aQjKoJp6BlDunnOWVGDXCcU5UPOodVbmQ04HJiOtNUIcWC6wOg3QJpP+MQd1GYdBuurs61TVK4lDI5p2Ob/kwgT4pjhlleHod8LWUxlZouhHoa5Cl2650yxxmn80+XPkRtAIrThQ1bMHTq772iE1Avmw0Lea4tqgW916TwaUEeHyPKK+jIURVn4JolUDKv/FqAsv4e4lu3zgKiHico9zH6uejyM6KTw+J5qCnIps2axANsMN2zrAUhw06Ji/FMV8QUXPXShWWjJ4ljBOW6xFztVMucm7gwurnmEYjAajB7e3utMSReuEmPVisOVrYgNGUL24AZrbbc=
language: ruby
dist: focal
rvm:
- 2.6.6
cache:
directories:
- node_modules
- vendor/bundle
before_install:
- gem install bundler:2.1.4
- nvm install 12.13.1
- npm install -g [email protected]
before_script:
- bundle install
- yarn install
script:
- bundle exec rake db:drop
- RAILS_ENV=test bundle exec rake db:migrate --trace
- bundle exec rake db:test:prepare
- bundle exec rspec
- bundle exec cucumber
94 changes: 94 additions & 0 deletions Gemfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
# frozen_string_literal: true

source 'https://rubygems.org'
git_source(:github) { |repo| "https://github.com/#{repo}.git" }

ruby '2.6.6' # Make sure that this matches .ruby-version file.

# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '~> 5.2.4'
# Use Puma as the app server
gem 'puma', '~> 3.11'
# Transpile app-like JavaScript. Read more: https://github.com/rails/webpacker
# Note: Pin the webpacker version to the same version used in package.json
gem 'webpacker', '5.1.1'
# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
gem 'jbuilder', '~> 2.5'
# Use figaro to easily manage config across environments
gem 'figaro'
# Use ActiveModel has_secure_password
# gem 'bcrypt', '~> 3.1.7'
# Use third party sign on authenticate users
gem 'omniauth'
gem 'omniauth-github'
gem 'omniauth-google-oauth2'
gem 'omniauth-rails_csrf_protection'

# Use Haml instead of erb
gem 'haml-rails'

# Google Civic Client
gem 'google-api-client', '~> 0.34'

# Use assets pipeline to serve topojson files.
gem 'sprockets', '4.0.0'

# Use ActiveStorage variant
# gem 'mini_magick', '~> 4.8'

# Use Capistrano for deployment
# gem 'capistrano-rails', group: :development

# Reduces boot times through caching; required in config/boot.rb
gem 'bootsnap', '>= 1.1.0', require: false

# Even though this gem is only required for rake tasks, heroku needs it to run
# pre-receive rake tasks hook so it is included for production environment.
gem 'rubyzip'

gem 'date_validator'

group :development, :test do
# Call 'byebug' anywhere in the code to stop execution and get a debugger console
gem 'byebug', platforms: %i[mri mingw x64_mingw]

# Testing utilities
gem 'cucumber-rails', require: false
gem 'database_cleaner'
gem 'factory_bot'
gem 'haml_lint'
gem 'rspec-rails'
gem 'rubocop-rails'
gem 'sqlite3'

# Guard Plugins
gem 'guard'
gem 'guard-cucumber', require: false
gem 'guard-rspec', require: false
gem 'guard-rubocop', require: false

# Generate different sizes of favicon from a single image.
gem 'rails_real_favicon'

# Report coverage.
gem 'codecov', require: false
gem 'simplecov'
end

group :development do
# Access an interactive console on exception pages or by calling 'console' anywhere in the code.
gem 'listen', '>= 3.0.5', '< 3.2'
gem 'web-console', '>= 3.3.0'
# Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
gem 'spring'
gem 'spring-watcher-listen', '~> 2.0.0'
end

group :production do
# Use postgresql as the database for Active Record in production (Heroku)
gem 'pg', '>= 0.18', '< 2.0'
gem 'rails_12factor'
end

# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
gem 'tzinfo-data', platforms: %i[mingw mswin x64_mingw jruby]
Loading

0 comments on commit ab9d79f

Please sign in to comment.