├── log └── .keep ├── tmp └── .keep ├── lib ├── assets │ └── .keep └── tasks │ └── .keep ├── public ├── favicon.ico ├── apple-touch-icon.png ├── apple-touch-icon-precomposed.png ├── robots.txt ├── 500.html ├── 422.html └── 404.html ├── .ruby-version ├── app ├── assets │ ├── images │ │ └── .keep │ ├── javascripts │ │ ├── channels │ │ │ └── .keep │ │ ├── application.js │ │ ├── users.coffee │ │ ├── admin │ │ │ ├── skills.coffee │ │ │ ├── users.coffee │ │ │ └── application.coffee │ │ ├── static_pages.coffee │ │ └── cable.js │ ├── config │ │ └── manifest.js │ └── stylesheets │ │ ├── application.scss │ │ ├── users.scss │ │ ├── admin │ │ ├── users.scss │ │ ├── skills.scss │ │ └── application.scss │ │ ├── static_pages.scss │ │ └── custom.scss ├── models │ ├── concerns │ │ └── .keep │ ├── application_record.rb │ ├── skill.rb │ └── user.rb ├── controllers │ ├── concerns │ │ └── .keep │ ├── static_pages_controller.rb │ ├── application_controller.rb │ ├── admin │ │ ├── application_controller.rb │ │ ├── skills_controller.rb │ │ └── users_controller.rb │ └── users_controller.rb ├── views │ ├── layouts │ │ ├── mailer.text.erb │ │ ├── mailer.html.erb │ │ └── application.html.erb │ ├── admin │ │ ├── skills │ │ │ ├── index.html.erb │ │ │ └── new.html.erb │ │ ├── application │ │ │ └── index.html.erb │ │ └── users │ │ │ ├── index.html.erb │ │ │ └── edit.html.erb │ ├── users │ │ ├── show.html.erb │ │ └── edit.html.erb │ ├── static_pages │ │ └── home.html.erb │ ├── devise │ │ ├── mailer │ │ │ ├── password_change.html.erb │ │ │ ├── confirmation_instructions.html.erb │ │ │ ├── unlock_instructions.html.erb │ │ │ └── reset_password_instructions.html.erb │ │ ├── passwords │ │ │ ├── new.html.erb │ │ │ └── edit.html.erb │ │ ├── unlocks │ │ │ └── new.html.erb │ │ ├── confirmations │ │ │ └── new.html.erb │ │ ├── sessions │ │ │ └── new.html.erb │ │ ├── shared │ │ │ └── _links.html.erb │ │ └── registrations │ │ │ ├── new.html.erb │ │ │ └── edit.html.erb │ ├── welcome_mailer │ │ ├── welcome_email.text.erb │ │ └── welcome_email.html.erb │ └── shared │ │ └── _navbar.html.erb ├── helpers │ ├── users_helper.rb │ ├── admin │ │ ├── skills_helper.rb │ │ ├── users_helper.rb │ │ └── application_helper.rb │ ├── application_helper.rb │ └── static_pages_helper.rb ├── jobs │ └── application_job.rb ├── channels │ └── application_cable │ │ ├── channel.rb │ │ └── connection.rb └── mailers │ ├── application_mailer.rb │ └── welcome_mailer.rb ├── vendor └── assets │ ├── javascripts │ └── .keep │ └── stylesheets │ └── .keep ├── .rspec ├── spec ├── features │ ├── accessing_admin_home_spec.rb │ ├── admin │ │ ├── deleting_user_spec.rb │ │ ├── editing_a_user_as_admin_spec.rb │ │ ├── adding_a_new_skill_spec.rb │ │ ├── viewing_admin_homepage_spec.rb │ │ └── viewing_users_spec.rb │ ├── user_profile_page_spec.rb │ ├── edit_user_profile_page_spec.rb │ ├── signing_up_spec.rb │ └── logged_in_user_spec.rb ├── support │ ├── factory_girl.rb │ └── database_cleaner.rb ├── controllers │ ├── users_controller_spec.rb │ ├── admin │ │ ├── users_controller_spec.rb │ │ ├── skills_controller_spec.rb │ │ └── application_controller_spec.rb │ └── static_pages_controller_spec.rb ├── views │ ├── admin │ │ ├── users │ │ │ └── index.html.erb_spec.rb │ │ └── application │ │ │ └── index.html.erb_spec.rb │ └── static_pages │ │ └── home.html.erb_spec.rb ├── models │ ├── skill_spec.rb │ └── user_spec.rb ├── mailers │ ├── previews │ │ └── welcome_mailer_preview.rb │ └── welcome_mailer_spec.rb ├── factories │ └── user.rb ├── helpers │ ├── users_helper_spec.rb │ ├── admin │ │ ├── users_helper_spec.rb │ │ ├── skills_helper_spec.rb │ │ └── application_helper_spec.rb │ └── static_pages_helper_spec.rb ├── rails_helper.rb └── spec_helper.rb ├── bin ├── bundle ├── rake ├── rails ├── spring ├── update └── setup ├── config ├── spring.rb ├── boot.rb ├── environment.rb ├── cable.yml ├── initializers │ ├── session_store.rb │ ├── mime_types.rb │ ├── application_controller_renderer.rb │ ├── filter_parameter_logging.rb │ ├── cookies_serializer.rb │ ├── backtrace_silencers.rb │ ├── assets.rb │ ├── wrap_parameters.rb │ ├── inflections.rb │ ├── new_framework_defaults.rb │ └── devise.rb ├── routes.rb ├── locales │ ├── en.yml │ └── devise.en.yml ├── application.rb ├── secrets.yml ├── environments │ ├── test.rb │ ├── development.rb │ └── production.rb ├── puma.rb └── database.yml ├── config.ru ├── db ├── migrate │ ├── 20170325185436_add_admin_to_users.rb │ ├── 20170809030459_add_country_code_to_users.rb │ ├── 20170516015252_create_skills.rb │ ├── 20170413093153_add_username_to_users.rb │ └── 20170310033200_devise_create_users.rb ├── seeds.rb └── schema.rb ├── Rakefile ├── .gitignore ├── Gemfile ├── README.md ├── mission_statement.md └── Gemfile.lock /log/.keep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tmp/.keep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /lib/assets/.keep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /lib/tasks/.keep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.ruby-version: -------------------------------------------------------------------------------- 1 | 2.4.0 2 | -------------------------------------------------------------------------------- /app/assets/images/.keep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/models/concerns/.keep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/apple-touch-icon.png: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/controllers/concerns/.keep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vendor/assets/javascripts/.keep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vendor/assets/stylesheets/.keep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/assets/javascripts/channels/.keep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/apple-touch-icon-precomposed.png: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.rspec: -------------------------------------------------------------------------------- 1 | --color 2 | --require spec_helper 3 | -------------------------------------------------------------------------------- /app/views/layouts/mailer.text.erb: -------------------------------------------------------------------------------- 1 | <%= yield %> 2 | -------------------------------------------------------------------------------- /app/helpers/users_helper.rb: -------------------------------------------------------------------------------- 1 | module UsersHelper 2 | end 3 | -------------------------------------------------------------------------------- /app/helpers/admin/skills_helper.rb: -------------------------------------------------------------------------------- 1 | module Admin::SkillsHelper 2 | end 3 | -------------------------------------------------------------------------------- /app/helpers/admin/users_helper.rb: -------------------------------------------------------------------------------- 1 | module Admin::UsersHelper 2 | end 3 | -------------------------------------------------------------------------------- /app/helpers/application_helper.rb: -------------------------------------------------------------------------------- 1 | module ApplicationHelper 2 | end 3 | -------------------------------------------------------------------------------- /app/helpers/static_pages_helper.rb: -------------------------------------------------------------------------------- 1 | module StaticPagesHelper 2 | end 3 | -------------------------------------------------------------------------------- /app/jobs/application_job.rb: -------------------------------------------------------------------------------- 1 | class ApplicationJob < ActiveJob::Base 2 | end 3 | -------------------------------------------------------------------------------- /app/helpers/admin/application_helper.rb: -------------------------------------------------------------------------------- 1 | module Admin::ApplicationHelper 2 | end 3 | -------------------------------------------------------------------------------- /app/views/admin/skills/index.html.erb: -------------------------------------------------------------------------------- 1 | <%= @skills.each do |skill| %> 2 | <%= skill %> 3 | <% end %> -------------------------------------------------------------------------------- /spec/features/accessing_admin_home_spec.rb: -------------------------------------------------------------------------------- 1 | require 'rails_helper' 2 | 3 | RSpec.feature "Being able to" -------------------------------------------------------------------------------- /spec/support/factory_girl.rb: -------------------------------------------------------------------------------- 1 | RSpec.configure do |config| 2 | config.include FactoryGirl::Syntax::Methods 3 | end 4 | -------------------------------------------------------------------------------- /app/models/application_record.rb: -------------------------------------------------------------------------------- 1 | class ApplicationRecord < ActiveRecord::Base 2 | self.abstract_class = true 3 | end 4 | -------------------------------------------------------------------------------- /app/controllers/static_pages_controller.rb: -------------------------------------------------------------------------------- 1 | class StaticPagesController < ApplicationController 2 | def home 3 | end 4 | end 5 | -------------------------------------------------------------------------------- /app/channels/application_cable/channel.rb: -------------------------------------------------------------------------------- 1 | module ApplicationCable 2 | class Channel < ActionCable::Channel::Base 3 | end 4 | end 5 | -------------------------------------------------------------------------------- /app/assets/config/manifest.js: -------------------------------------------------------------------------------- 1 | //= link_tree ../images 2 | //= link_directory ../javascripts .js 3 | //= link_directory ../stylesheets .css 4 | -------------------------------------------------------------------------------- /app/models/skill.rb: -------------------------------------------------------------------------------- 1 | class Skill < ApplicationRecord 2 | 3 | validates :name, presence: true, uniqueness: {case_sensitive: false} 4 | end 5 | -------------------------------------------------------------------------------- /spec/controllers/users_controller_spec.rb: -------------------------------------------------------------------------------- 1 | require 'rails_helper' 2 | 3 | RSpec.describe UsersController, type: :controller do 4 | 5 | end 6 | -------------------------------------------------------------------------------- /app/channels/application_cable/connection.rb: -------------------------------------------------------------------------------- 1 | module ApplicationCable 2 | class Connection < ActionCable::Connection::Base 3 | end 4 | end 5 | -------------------------------------------------------------------------------- /app/mailers/application_mailer.rb: -------------------------------------------------------------------------------- 1 | class ApplicationMailer < ActionMailer::Base 2 | default from: 'from@example.com' 3 | layout 'mailer' 4 | end 5 | -------------------------------------------------------------------------------- /bin/bundle: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__) 3 | load Gem.bin_path('bundler', 'bundle') 4 | -------------------------------------------------------------------------------- /config/spring.rb: -------------------------------------------------------------------------------- 1 | %w( 2 | .ruby-version 3 | .rbenv-vars 4 | tmp/restart.txt 5 | tmp/caching-dev.txt 6 | ).each { |path| Spring.watch(path) } 7 | -------------------------------------------------------------------------------- /app/assets/stylesheets/application.scss: -------------------------------------------------------------------------------- 1 | @import 'bootstrap-sprockets'; 2 | @import 'bootstrap'; 3 | @import 'font-awesome'; 4 | @import "custom.scss"; 5 | -------------------------------------------------------------------------------- /config/boot.rb: -------------------------------------------------------------------------------- 1 | ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../Gemfile', __dir__) 2 | 3 | require 'bundler/setup' # Set up gems listed in the Gemfile. 4 | -------------------------------------------------------------------------------- /config.ru: -------------------------------------------------------------------------------- 1 | # This file is used by Rack-based servers to start the application. 2 | 3 | require_relative 'config/environment' 4 | 5 | run Rails.application 6 | -------------------------------------------------------------------------------- /spec/controllers/admin/users_controller_spec.rb: -------------------------------------------------------------------------------- 1 | require 'rails_helper' 2 | 3 | RSpec.describe Admin::UsersController, type: :controller do 4 | 5 | 6 | end 7 | -------------------------------------------------------------------------------- /config/environment.rb: -------------------------------------------------------------------------------- 1 | # Load the Rails application. 2 | require_relative 'application' 3 | 4 | # Initialize the Rails application. 5 | Rails.application.initialize! 6 | -------------------------------------------------------------------------------- /app/assets/javascripts/application.js: -------------------------------------------------------------------------------- 1 | 2 | //= require jquery 3 | //= require jquery_ujs 4 | //= require bootstrap-sprockets 5 | //= require turbolinks 6 | //= require_tree . 7 | -------------------------------------------------------------------------------- /config/cable.yml: -------------------------------------------------------------------------------- 1 | development: 2 | adapter: async 3 | 4 | test: 5 | adapter: async 6 | 7 | production: 8 | adapter: redis 9 | url: redis://localhost:6379/1 10 | -------------------------------------------------------------------------------- /config/initializers/session_store.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | Rails.application.config.session_store :cookie_store, key: '_code_connection_session' 4 | -------------------------------------------------------------------------------- /db/migrate/20170325185436_add_admin_to_users.rb: -------------------------------------------------------------------------------- 1 | class AddAdminToUsers < ActiveRecord::Migration[5.0] 2 | def change 3 | add_column :users, :admin, :boolean, default: false 4 | end 5 | end 6 | -------------------------------------------------------------------------------- /db/migrate/20170809030459_add_country_code_to_users.rb: -------------------------------------------------------------------------------- 1 | class AddCountryCodeToUsers < ActiveRecord::Migration[5.0] 2 | def change 3 | add_column :users, :country_code, :string 4 | end 5 | end 6 | -------------------------------------------------------------------------------- /config/initializers/mime_types.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # Add new mime types for use in respond_to blocks: 4 | # Mime::Type.register "text/richtext", :rtf 5 | -------------------------------------------------------------------------------- /spec/views/admin/users/index.html.erb_spec.rb: -------------------------------------------------------------------------------- 1 | require 'rails_helper' 2 | 3 | RSpec.describe "users/index.html.erb", type: :view do 4 | pending "add some examples to (or delete) #{__FILE__}" 5 | end 6 | -------------------------------------------------------------------------------- /spec/views/static_pages/home.html.erb_spec.rb: -------------------------------------------------------------------------------- 1 | require 'rails_helper' 2 | 3 | RSpec.describe "static_pages/home.html.erb", type: :view do 4 | pending "add some examples to (or delete) #{__FILE__}" 5 | end 6 | -------------------------------------------------------------------------------- /spec/models/skill_spec.rb: -------------------------------------------------------------------------------- 1 | require 'rails_helper' 2 | 3 | RSpec.describe Skill, type: :model do 4 | it {should validate_presence_of(:name)} 5 | it {should validate_uniqueness_of(:name).case_insensitive} 6 | end 7 | -------------------------------------------------------------------------------- /spec/views/admin/application/index.html.erb_spec.rb: -------------------------------------------------------------------------------- 1 | require 'rails_helper' 2 | 3 | RSpec.describe "application/index.html.erb", type: :view do 4 | pending "add some examples to (or delete) #{__FILE__}" 5 | end 6 | -------------------------------------------------------------------------------- /app/assets/stylesheets/users.scss: -------------------------------------------------------------------------------- 1 | // Place all the styles related to the Users controller here. 2 | // They will automatically be included in application.css. 3 | // You can use Sass (SCSS) here: http://sass-lang.com/ 4 | -------------------------------------------------------------------------------- /app/views/users/show.html.erb: -------------------------------------------------------------------------------- 1 | Profile page of <%= @user.username %> 2 | 3 | <%= @user.country_name %> 4 | <% if current_user.id == @user.id %> 5 | <%= link_to "Edit Your Profile", edit_user_path(@user) %> 6 | <% end %> -------------------------------------------------------------------------------- /app/assets/stylesheets/admin/users.scss: -------------------------------------------------------------------------------- 1 | // Place all the styles related to the admin/users controller here. 2 | // They will automatically be included in application.css. 3 | // You can use Sass (SCSS) here: http://sass-lang.com/ 4 | -------------------------------------------------------------------------------- /app/assets/stylesheets/admin/skills.scss: -------------------------------------------------------------------------------- 1 | // Place all the styles related to the admin/skills controller here. 2 | // They will automatically be included in application.css. 3 | // You can use Sass (SCSS) here: http://sass-lang.com/ 4 | -------------------------------------------------------------------------------- /app/assets/stylesheets/static_pages.scss: -------------------------------------------------------------------------------- 1 | // Place all the styles related to the StaticPages controller here. 2 | // They will automatically be included in application.css. 3 | // You can use Sass (SCSS) here: http://sass-lang.com/ 4 | -------------------------------------------------------------------------------- /config/initializers/application_controller_renderer.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # ApplicationController.renderer.defaults.merge!( 4 | # http_host: 'example.org', 5 | # https: false 6 | # ) 7 | -------------------------------------------------------------------------------- /db/migrate/20170516015252_create_skills.rb: -------------------------------------------------------------------------------- 1 | class CreateSkills < ActiveRecord::Migration[5.0] 2 | def change 3 | create_table :skills do |t| 4 | t.string :name 5 | 6 | t.timestamps 7 | end 8 | end 9 | end 10 | -------------------------------------------------------------------------------- /public/robots.txt: -------------------------------------------------------------------------------- 1 | # See http://www.robotstxt.org/robotstxt.html for documentation on how to use the robots.txt file 2 | # 3 | # To ban all spiders from the entire site uncomment the next two lines: 4 | # User-agent: * 5 | # Disallow: / 6 | -------------------------------------------------------------------------------- /app/assets/stylesheets/admin/application.scss: -------------------------------------------------------------------------------- 1 | // Place all the styles related to the admin/application controller here. 2 | // They will automatically be included in application.css. 3 | // You can use Sass (SCSS) here: http://sass-lang.com/ 4 | -------------------------------------------------------------------------------- /app/views/static_pages/home.html.erb: -------------------------------------------------------------------------------- 1 |
Hello <%= @resource.email %>!
5 | 6 |We're contacting you to notify you that your password has been changed.
7 | 8 |Welcome <%= @email %>!
5 | 6 |You can confirm your account email through the link below:
7 | 8 |<%= link_to 'Confirm my account', confirmation_url(@resource, confirmation_token: @token) %>
9 | 10 |Hello <%= @resource.email %>!
5 | 6 |Your account has been locked due to an excessive number of unsuccessful sign in attempts.
7 | 8 |Click the link below to unlock your account:
9 | 10 |<%= link_to 'Unlock my account', unlock_url(@resource, unlock_token: @token) %>
11 | 12 |Hello <%= @resource.email %>!
5 | 6 |Someone has requested a link to change your password. You can do this through the link below.
7 | 8 |<%= link_to 'Change my password', edit_password_url(@resource, reset_password_token: @token) %>
9 | 10 |If you didn't request this, please ignore this email.
11 |Your password won't change until you access the link above and create a new one.
12 | 13 |If you are the application owner check the logs for more information.
64 |Unhappy?
34 | 35 | <%= button_to "Cancel my account", registration_path(resource_name), data: { confirm: "Are you sure?" },:class => "btn btn-danger", method: :delete %> 36 |Maybe you tried to change something you didn't have access to.
63 |If you are the application owner check the logs for more information.
65 |You may have mistyped the address or the page may have moved.
63 |If you are the application owner check the logs for more information.
65 |
11 | You have successfully signed up to codeconnection.com,
12 | your username is:
13 |
14 |
15 |
17 | To login to the site, just follow this link:<%= @url %>. 18 |
19 | 20 |But first, let me tell you a little bit more about Code Connection: 21 | The idea behind Code Connection came to life during one of the weekly Twitter chats hosted by <%= link_to "CodeNewbie.org", "http://www.codenewbie.org/", :target => "_blank" %>.
22 | 23 |It is well known about the importance of pair programming and code reviews while coding, especially for those who are just starting to code. However, sometimes, it's quite difficult to find someone to code with. Our mission is to create a safe environment where people can connect through code, exchange ideas, find people to work with, etc.
24 | 25 |So... How does Code Connection work? Well, it is fairly easy, you only have to create a user profile where you specify your coding skills and your specific needs (Whether you are looking for someone to work with on specific projects or if you are looking to share your knowledge with others by becoming a mentor, etc.)
26 |Thanks for joining and have a great day!
29 | 30 | So <%= link_to "Lets get started", root_url %> 31 | 32 |Code Connection team
33 | 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /config/environments/test.rb: -------------------------------------------------------------------------------- 1 | Rails.application.configure do 2 | # Settings specified here will take precedence over those in config/application.rb. 3 | 4 | # The test environment is used exclusively to run your application's 5 | # test suite. You never need to work with it otherwise. Remember that 6 | # your test database is "scratch space" for the test suite and is wiped 7 | # and recreated between test runs. Don't rely on the data there! 8 | config.cache_classes = true 9 | 10 | # Do not eager load code on boot. This avoids loading your whole application 11 | # just for the purpose of running a single test. If you are using a tool that 12 | # preloads Rails for running tests, you may have to set it to true. 13 | config.eager_load = false 14 | 15 | # Configure public file server for tests with Cache-Control for performance. 16 | config.public_file_server.enabled = true 17 | config.public_file_server.headers = { 18 | 'Cache-Control' => 'public, max-age=3600' 19 | } 20 | 21 | # Show full error reports and disable caching. 22 | config.consider_all_requests_local = true 23 | config.action_controller.perform_caching = false 24 | 25 | # Raise exceptions instead of rendering exception templates. 26 | config.action_dispatch.show_exceptions = false 27 | 28 | # Disable request forgery protection in test environment. 29 | config.action_controller.allow_forgery_protection = false 30 | config.action_mailer.perform_caching = false 31 | 32 | # Tell Action Mailer not to deliver emails to the real world. 33 | # The :test delivery method accumulates sent emails in the 34 | # ActionMailer::Base.deliveries array. 35 | config.action_mailer.delivery_method = :test 36 | config.action_mailer.default_url_options = { :host => 'localhost:3000' } 37 | 38 | # Print deprecation notices to the stderr. 39 | config.active_support.deprecation = :stderr 40 | 41 | # Raises error for missing translations 42 | # config.action_view.raise_on_missing_translations = true 43 | end 44 | -------------------------------------------------------------------------------- /config/puma.rb: -------------------------------------------------------------------------------- 1 | # Puma can serve each request in a thread from an internal thread pool. 2 | # The `threads` method setting takes two numbers a minimum and maximum. 3 | # Any libraries that use thread pools should be configured to match 4 | # the maximum value specified for Puma. Default is set to 5 threads for minimum 5 | # and maximum, this matches the default thread size of Active Record. 6 | # 7 | threads_count = ENV.fetch("RAILS_MAX_THREADS") { 5 }.to_i 8 | threads threads_count, threads_count 9 | 10 | # Specifies the `port` that Puma will listen on to receive requests, default is 3000. 11 | # 12 | port ENV.fetch("PORT") { 3000 } 13 | 14 | # Specifies the `environment` that Puma will run in. 15 | # 16 | environment ENV.fetch("RAILS_ENV") { "development" } 17 | 18 | # Specifies the number of `workers` to boot in clustered mode. 19 | # Workers are forked webserver processes. If using threads and workers together 20 | # the concurrency of the application would be max `threads` * `workers`. 21 | # Workers do not work on JRuby or Windows (both of which do not support 22 | # processes). 23 | # 24 | # workers ENV.fetch("WEB_CONCURRENCY") { 2 } 25 | 26 | # Use the `preload_app!` method when specifying a `workers` number. 27 | # This directive tells Puma to first boot the application and load code 28 | # before forking the application. This takes advantage of Copy On Write 29 | # process behavior so workers use less memory. If you use this option 30 | # you need to make sure to reconnect any threads in the `on_worker_boot` 31 | # block. 32 | # 33 | # preload_app! 34 | 35 | # The code in the `on_worker_boot` will be called if you are using 36 | # clustered mode by specifying a number of `workers`. After each worker 37 | # process is booted this block will be run, if you are using `preload_app!` 38 | # option you will want to use this block to reconnect to any threads 39 | # or connections that may have been created at application boot, Ruby 40 | # cannot share connections between processes. 41 | # 42 | # on_worker_boot do 43 | # ActiveRecord::Base.establish_connection if defined?(ActiveRecord) 44 | # end 45 | 46 | # Allow puma to be restarted by `rails restart` command. 47 | plugin :tmp_restart 48 | -------------------------------------------------------------------------------- /config/environments/development.rb: -------------------------------------------------------------------------------- 1 | Rails.application.configure do 2 | # Settings specified here will take precedence over those in config/application.rb. 3 | 4 | # In the development environment your application's code is reloaded on 5 | # every request. This slows down response time but is perfect for development 6 | # since you don't have to restart the web server when you make code changes. 7 | config.cache_classes = false 8 | 9 | # Do not eager load code on boot. 10 | config.eager_load = false 11 | 12 | # Show full error reports. 13 | config.consider_all_requests_local = true 14 | 15 | # Enable/disable caching. By default caching is disabled. 16 | if Rails.root.join('tmp/caching-dev.txt').exist? 17 | config.action_controller.perform_caching = true 18 | 19 | config.cache_store = :memory_store 20 | config.public_file_server.headers = { 21 | 'Cache-Control' => 'public, max-age=172800' 22 | } 23 | else 24 | config.action_controller.perform_caching = false 25 | 26 | config.cache_store = :null_store 27 | end 28 | 29 | # Don't care if the mailer can't send. 30 | config.action_mailer.raise_delivery_errors = false 31 | 32 | config.action_mailer.perform_caching = false 33 | 34 | # Print deprecation notices to the Rails logger. 35 | config.active_support.deprecation = :log 36 | 37 | # Raise an error on page load if there are pending migrations. 38 | config.active_record.migration_error = :page_load 39 | 40 | # Debug mode disables concatenation and preprocessing of assets. 41 | # This option may cause significant delays in view rendering with a large 42 | # number of complex assets. 43 | config.assets.debug = true 44 | 45 | # Suppress logger output for asset requests. 46 | config.assets.quiet = true 47 | 48 | # Raises error for missing translations 49 | # config.action_view.raise_on_missing_translations = true 50 | 51 | # Use an evented file watcher to asynchronously detect changes in source code, 52 | # routes, locales, etc. This feature depends on the listen gem. 53 | config.file_watcher = ActiveSupport::EventedFileUpdateChecker 54 | config.action_mailer.default_url_options = { host: 'localhost', port: 3000 } 55 | end 56 | -------------------------------------------------------------------------------- /db/schema.rb: -------------------------------------------------------------------------------- 1 | # This file is auto-generated from the current state of the database. Instead 2 | # of editing this file, please use the migrations feature of Active Record to 3 | # incrementally modify your database, and then regenerate this schema definition. 4 | # 5 | # Note that this schema.rb definition is the authoritative source for your 6 | # database schema. If you need to create the application database on another 7 | # system, you should be using db:schema:load, not running all the migrations 8 | # from scratch. The latter is a flawed and unsustainable approach (the more migrations 9 | # you'll amass, the slower it'll run and the greater likelihood for issues). 10 | # 11 | # It's strongly recommended that you check this file into your version control system. 12 | 13 | ActiveRecord::Schema.define(version: 20170809030459) do 14 | 15 | # These are extensions that must be enabled in order to support this database 16 | enable_extension "plpgsql" 17 | enable_extension "citext" 18 | 19 | create_table "skills", force: :cascade do |t| 20 | t.string "name" 21 | t.datetime "created_at", null: false 22 | t.datetime "updated_at", null: false 23 | end 24 | 25 | create_table "users", force: :cascade do |t| 26 | t.string "email", default: "", null: false 27 | t.string "encrypted_password", default: "", null: false 28 | t.string "reset_password_token" 29 | t.datetime "reset_password_sent_at" 30 | t.datetime "remember_created_at" 31 | t.integer "sign_in_count", default: 0, null: false 32 | t.datetime "current_sign_in_at" 33 | t.datetime "last_sign_in_at" 34 | t.inet "current_sign_in_ip" 35 | t.inet "last_sign_in_ip" 36 | t.datetime "created_at", null: false 37 | t.datetime "updated_at", null: false 38 | t.boolean "admin", default: false 39 | t.citext "username" 40 | t.string "country_code" 41 | t.index ["email"], name: "index_users_on_email", unique: true, using: :btree 42 | t.index ["reset_password_token"], name: "index_users_on_reset_password_token", unique: true, using: :btree 43 | t.index ["username"], name: "index_users_on_username", unique: true, using: :btree 44 | end 45 | 46 | end 47 | -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- 1 | ruby '2.4.0' 2 | source 'https://rubygems.org' 3 | 4 | git_source(:github) do |repo_name| 5 | repo_name = "#{repo_name}/#{repo_name}" unless repo_name.include?("/") 6 | "https://github.com/#{repo_name}.git" 7 | end 8 | 9 | 10 | # Bundle edge Rails instead: gem 'rails', github: 'rails/rails' 11 | gem 'rails', '~> 5.0.1' 12 | # Use postgresql as the database for Active Record 13 | gem 'pg', '~> 0.18' 14 | # Use Puma as the app server 15 | gem 'puma', '~> 3.0' 16 | # Use SCSS for stylesheets 17 | gem 'sass-rails', '~> 5.0' 18 | gem 'bootstrap-sass', '~> 3.3', '>= 3.3.7' 19 | gem 'font-awesome-rails', '~> 4.7', '>= 4.7.0.1' 20 | gem 'country_select' 21 | # Use Uglifier as compressor for JavaScript assets 22 | gem 'uglifier', '>= 1.3.0' 23 | # Use CoffeeScript for .coffee assets and views 24 | gem 'coffee-rails', '~> 4.2' 25 | # See https://github.com/rails/execjs#readme for more supported runtimes 26 | # gem 'therubyracer', platforms: :ruby 27 | gem 'devise', '~> 4.2' 28 | 29 | # Use jquery as the JavaScript library 30 | gem 'jquery-rails' 31 | # Turbolinks makes navigating your web application faster. Read more: https://github.com/turbolinks/turbolinks 32 | gem 'turbolinks', '~> 5' 33 | # Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder 34 | gem 'jbuilder', '~> 2.5' 35 | # Use Redis adapter to run Action Cable in production 36 | # gem 'redis', '~> 3.0' 37 | # Use ActiveModel has_secure_password 38 | # gem 'bcrypt', '~> 3.1.7' 39 | 40 | # Use Capistrano for deployment 41 | # gem 'capistrano-rails', group: :development 42 | 43 | group :development, :test do 44 | # Call 'byebug' anywhere in the code to stop execution and get a debugger console 45 | gem 'byebug', platform: :mri 46 | gem 'rspec-rails', '~> 3.5', '>= 3.5.2' 47 | gem 'pry-rails', '~> 0.3.5' 48 | end 49 | 50 | group :development do 51 | # Access an IRB console on exception pages or by using <%= console %> anywhere in the code. 52 | gem 'web-console', '>= 3.3.0' 53 | gem 'listen', '~> 3.0.5' 54 | # Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring 55 | gem 'spring' 56 | gem 'spring-watcher-listen', '~> 2.0.0' 57 | end 58 | 59 | group :test do 60 | gem 'capybara', '~> 2.12', '>= 2.12.1' 61 | gem 'factory_girl_rails', '~> 4.8' 62 | gem 'shoulda-matchers', '~> 3.1', '>= 3.1.1' 63 | gem 'database_cleaner' 64 | gem 'email_spec' 65 | end 66 | 67 | # Windows does not include zoneinfo files, so bundle the tzinfo-data gem 68 | gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby] 69 | -------------------------------------------------------------------------------- /spec/rails_helper.rb: -------------------------------------------------------------------------------- 1 | # This file is copied to spec/ when you run 'rails generate rspec:install' 2 | ENV['RAILS_ENV'] ||= 'test' 3 | require File.expand_path('../../config/environment', __FILE__) 4 | # Prevent database truncation if the environment is production 5 | abort("The Rails environment is running in production mode!") if Rails.env.production? 6 | require 'spec_helper' 7 | require 'rspec/rails' 8 | # Add additional requires below this line. Rails is not loaded until this point! 9 | 10 | # Requires supporting ruby files with custom matchers and macros, etc, in 11 | # spec/support/ and its subdirectories. Files matching `spec/**/*_spec.rb` are 12 | # run as spec files by default. This means that files in spec/support that end 13 | # in _spec.rb will both be required and run as specs, causing the specs to be 14 | # run twice. It is recommended that you do not name files matching this glob to 15 | # end with _spec.rb. You can configure this pattern with the --pattern 16 | # option on the command line or in ~/.rspec, .rspec or `.rspec-local`. 17 | # 18 | # The following line is provided for convenience purposes. It has the downside 19 | # of increasing the boot-up time by auto-requiring all files in the support 20 | # directory. Alternatively, in the individual `*_spec.rb` files, manually 21 | # require only the support files necessary. 22 | # 23 | Dir[Rails.root.join('spec/support/**/*.rb')].each { |f| require f } 24 | 25 | # Checks for pending migration and applies them before tests are run. 26 | # If you are not using ActiveRecord, you can remove this line. 27 | ActiveRecord::Migration.maintain_test_schema! 28 | 29 | RSpec.configure do |config| 30 | # Remove this line if you're not using ActiveRecord or ActiveRecord fixtures 31 | config.fixture_path = "#{::Rails.root}/spec/fixtures" 32 | 33 | # If you're not using ActiveRecord, or you'd prefer not to run each of your 34 | # examples within a transaction, remove the following line or assign false 35 | # instead of true. 36 | config.use_transactional_fixtures = false 37 | 38 | # RSpec Rails can automatically mix in different behaviours to your tests 39 | # based on their file location, for example enabling you to call `get` and 40 | # `post` in specs under `spec/controllers`. 41 | # 42 | # You can disable this behaviour by removing the line below, and instead 43 | # explicitly tag your specs with their type, e.g.: 44 | # 45 | # RSpec.describe UsersController, :type => :controller do 46 | # # ... 47 | # end 48 | # 49 | # The different available types are documented in the features, such as in 50 | # https://relishapp.com/rspec/rspec-rails/docs 51 | config.infer_spec_type_from_file_location! 52 | 53 | # Filter lines from Rails gems in backtraces. 54 | config.filter_rails_from_backtrace! 55 | # arbitrary gems may also be filtered via: 56 | # config.filter_gems_from_backtrace("gem name") 57 | config.include Warden::Test::Helpers, type: :feature 58 | config.after(type: :feature) { Warden.test_reset!} 59 | 60 | config.include(EmailSpec::Helpers) 61 | config.include(EmailSpec::Matchers) 62 | end 63 | 64 | Shoulda::Matchers.configure do |config| 65 | config.integrate do |with| 66 | with.test_framework :rspec 67 | with.library :rails 68 | end 69 | end -------------------------------------------------------------------------------- /config/database.yml: -------------------------------------------------------------------------------- 1 | # PostgreSQL. Versions 9.1 and up are supported. 2 | # 3 | # Install the pg driver: 4 | # gem install pg 5 | # On OS X with Homebrew: 6 | # gem install pg -- --with-pg-config=/usr/local/bin/pg_config 7 | # On OS X with MacPorts: 8 | # gem install pg -- --with-pg-config=/opt/local/lib/postgresql84/bin/pg_config 9 | # On Windows: 10 | # gem install pg 11 | # Choose the win32 build. 12 | # Install PostgreSQL and put its /bin directory on your path. 13 | # 14 | # Configure Using Gemfile 15 | # gem 'pg' 16 | # 17 | default: &default 18 | adapter: postgresql 19 | encoding: unicode 20 | # For details on connection pooling, see rails configuration guide 21 | # http://guides.rubyonrails.org/configuring.html#database-pooling 22 | pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %> 23 | 24 | development: 25 | <<: *default 26 | database: code_connection_development 27 | 28 | # The specified database role being used to connect to postgres. 29 | # To create additional roles in postgres see `$ createuser --help`. 30 | # When left blank, postgres will use the default role. This is 31 | # the same name as the operating system user that initialized the database. 32 | #username: code_connection 33 | 34 | # The password associated with the postgres role (username). 35 | #password: 36 | 37 | # Connect on a TCP socket. Omitted by default since the client uses a 38 | # domain socket that doesn't need configuration. Windows does not have 39 | # domain sockets, so uncomment these lines. 40 | #host: localhost 41 | 42 | # The TCP port the server listens on. Defaults to 5432. 43 | # If your server runs on a different port number, change accordingly. 44 | #port: 5432 45 | 46 | # Schema search path. The server defaults to $user,public 47 | #schema_search_path: myapp,sharedapp,public 48 | 49 | # Minimum log levels, in increasing order: 50 | # debug5, debug4, debug3, debug2, debug1, 51 | # log, notice, warning, error, fatal, and panic 52 | # Defaults to warning. 53 | #min_messages: notice 54 | 55 | # Warning: The database defined as "test" will be erased and 56 | # re-generated from your development database when you run "rake". 57 | # Do not set this db to the same as development or production. 58 | test: 59 | <<: *default 60 | database: code_connection_test 61 | 62 | # As with config/secrets.yml, you never want to store sensitive information, 63 | # like your database password, in your source code. If your source code is 64 | # ever seen by anyone, they now have access to your database. 65 | # 66 | # Instead, provide the password as a unix environment variable when you boot 67 | # the app. Read http://guides.rubyonrails.org/configuring.html#configuring-a-database 68 | # for a full rundown on how to provide these environment variables in a 69 | # production deployment. 70 | # 71 | # On Heroku and other platform providers, you may have a full connection URL 72 | # available as an environment variable. For example: 73 | # 74 | # DATABASE_URL="postgres://myuser:mypass@localhost/somedatabase" 75 | # 76 | # You can use this database configuration with: 77 | # 78 | # production: 79 | # url: <%= ENV['DATABASE_URL'] %> 80 | # 81 | production: 82 | <<: *default 83 | database: code_connection_production 84 | username: code_connection 85 | password: <%= ENV['CODE_CONNECTION_DATABASE_PASSWORD'] %> 86 | -------------------------------------------------------------------------------- /config/environments/production.rb: -------------------------------------------------------------------------------- 1 | Rails.application.configure do 2 | # Settings specified here will take precedence over those in config/application.rb. 3 | 4 | # Code is not reloaded between requests. 5 | config.cache_classes = true 6 | 7 | # Eager load code on boot. This eager loads most of Rails and 8 | # your application in memory, allowing both threaded web servers 9 | # and those relying on copy on write to perform better. 10 | # Rake tasks automatically ignore this option for performance. 11 | config.eager_load = true 12 | 13 | # Full error reports are disabled and caching is turned on. 14 | config.consider_all_requests_local = false 15 | config.action_controller.perform_caching = true 16 | 17 | # Disable serving static files from the `/public` folder by default since 18 | # Apache or NGINX already handles this. 19 | config.public_file_server.enabled = ENV['RAILS_SERVE_STATIC_FILES'].present? 20 | 21 | # Compress JavaScripts and CSS. 22 | config.assets.js_compressor = :uglifier 23 | # config.assets.css_compressor = :sass 24 | 25 | # Do not fallback to assets pipeline if a precompiled asset is missed. 26 | config.assets.compile = false 27 | 28 | # `config.assets.precompile` and `config.assets.version` have moved to config/initializers/assets.rb 29 | 30 | # Enable serving of images, stylesheets, and JavaScripts from an asset server. 31 | # config.action_controller.asset_host = 'http://assets.example.com' 32 | 33 | # Specifies the header that your server uses for sending files. 34 | # config.action_dispatch.x_sendfile_header = 'X-Sendfile' # for Apache 35 | # config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for NGINX 36 | 37 | # Mount Action Cable outside main process or domain 38 | # config.action_cable.mount_path = nil 39 | # config.action_cable.url = 'wss://example.com/cable' 40 | # config.action_cable.allowed_request_origins = [ 'http://example.com', /http:\/\/example.*/ ] 41 | 42 | # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies. 43 | # config.force_ssl = true 44 | 45 | # Use the lowest log level to ensure availability of diagnostic information 46 | # when problems arise. 47 | config.log_level = :debug 48 | 49 | # Prepend all log lines with the following tags. 50 | config.log_tags = [ :request_id ] 51 | 52 | # Use a different cache store in production. 53 | # config.cache_store = :mem_cache_store 54 | 55 | # Use a real queuing backend for Active Job (and separate queues per environment) 56 | # config.active_job.queue_adapter = :resque 57 | # config.active_job.queue_name_prefix = "code_connection_#{Rails.env}" 58 | config.action_mailer.perform_caching = false 59 | 60 | # Ignore bad email addresses and do not raise email delivery errors. 61 | # Set this to true and configure the email server for immediate delivery to raise delivery errors. 62 | # config.action_mailer.raise_delivery_errors = false 63 | 64 | # Enable locale fallbacks for I18n (makes lookups for any locale fall back to 65 | # the I18n.default_locale when a translation cannot be found). 66 | config.i18n.fallbacks = true 67 | 68 | # Send deprecation notices to registered listeners. 69 | config.active_support.deprecation = :notify 70 | 71 | # Use default logging formatter so that PID and timestamp are not suppressed. 72 | config.log_formatter = ::Logger::Formatter.new 73 | 74 | # Use a different logger for distributed setups. 75 | # require 'syslog/logger' 76 | # config.logger = ActiveSupport::TaggedLogging.new(Syslog::Logger.new 'app-name') 77 | 78 | if ENV["RAILS_LOG_TO_STDOUT"].present? 79 | logger = ActiveSupport::Logger.new(STDOUT) 80 | logger.formatter = config.log_formatter 81 | config.logger = ActiveSupport::TaggedLogging.new(logger) 82 | end 83 | 84 | # Do not dump schema after migrations. 85 | config.active_record.dump_schema_after_migration = false 86 | end 87 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |  2 | > An attempt to bring scattered coders of all skiil levels and languages together to find people to learn from, work with, or projects to work on 3 | 4 | ## Where'd you get the idea? 5 | 6 | Participating in a weekly twitter chat by [Code Newbie](http://www.codenewbie.org), someone mentioned the dificulty finding people to work with for a reason specific to them. That started me thinking how most of the time I'm working/learning on my own. A variety of factors contribute to this on my end, but I realized that there might be others who have their own issues in regards to finding people to work with. It could be geography, availability (some of us learning to code are doing so while also working full-time jobs and/or dealing with other obligations), skill level, language base, any number of things. Thus I mentioned an idea to the chat folk regarding the idea of a web site where people could perhaps *register* to find others to work with based on whatever criteria was required. It was an idea that stuck with me, and I decided to give it a try. I created this repository to store what is now a [mission statement](https://github.com/jemagee/code_connection/blob/master/mission_statement.md) but was originally the README.md document of the repository. If you want a deep insight into what I was thinking hopefully that helps. 7 | 8 | ### Platform 9 | 10 | Code Connection is currently set up in the enviornment that I know best: 11 | 12 | * Rails 5 / Ruby 2.4.0 13 | * Postgres Database 14 | * RSpec / Capybara for testing 15 | * Bootstrap for Responsive Layout 16 | * Devise for User Creation foundation (to be added) 17 | 18 | As I said, these are currently being used because I know them best, if you are interested in contributing but work better with something different, please feel free to suggest it. 19 | 20 | ### Contributing 21 | 22 | Please, contribute. Anyone who wants to contribute is welcome. Use the Issues (or the new Projects tab if you want) as a way to make suggestions that you want to see or even want to create. This is the initial README doc and as such the application doesn't have much, but as you can see above, we do have a great logo. As such, the application is open to things, please read the mission statement, check the issues, and projects, and see what you might want to work on, or create a new idea for us to work on. 23 | 24 | As I want code connection to follow the principles of test-driven development (as I understand them), please ensure that you've written tests to ensure your additions do what you wish them to do, and that you've run the whole test suite to make sure all existing tests pass. 25 | 26 | 27 | 28 | ### Getting Started 29 | 30 | * Fork this repository 31 | * Clone the fork to your local machine 32 | * Navigate into the folder on your local machine that has your cloned fork 33 | * Create an upstream remote that stays synched with this repository 34 | 35 | If you aren't sure how to accomplish any of those steps above (the upstream one always gets me) this [Tutorial](https://help.github.com/articles/fork-a-repo/) by the good folks at GitHub should walk you through it 36 | 37 | Within the folder on your local machine that contains your cloned fork: 38 | 39 | * If not your standard version, set the local ruby version to 2.4.0 40 | * Type bundle and hit enter to install all gems 41 | * Use postgres command line CREATEDB to create code_connection_test & code_connection_development 42 | * Type rails db:migrate and hit enter to create any database tables that might exist (reminder, don't forget to do this any time you synch with upstream in case new information is available) 43 | * Type rspec and hit enter to make sure all tests are passing 44 | 45 | 46 | ### Code of Conduct 47 | 48 | The purpose of this project is to bring coders of all stripes together, and in that vein, be nice, be kind, be constructive, and be helpful. It is my hope that coders from multiple coding ecosystems, countries, and levels will participant. Treat everyone with respect. Right? 49 | 50 | -------------------------------------------------------------------------------- /config/locales/devise.en.yml: -------------------------------------------------------------------------------- 1 | # Additional translations at https://github.com/plataformatec/devise/wiki/I18n 2 | 3 | en: 4 | devise: 5 | confirmations: 6 | confirmed: "Your email address has been successfully confirmed." 7 | send_instructions: "You will receive an email with instructions for how to confirm your email address in a few minutes." 8 | send_paranoid_instructions: "If your email address exists in our database, you will receive an email with instructions for how to confirm your email address in a few minutes." 9 | failure: 10 | already_authenticated: "You are already signed in." 11 | inactive: "Your account is not activated yet." 12 | invalid: "Invalid %{authentication_keys} or password." 13 | locked: "Your account is locked." 14 | last_attempt: "You have one more attempt before your account is locked." 15 | not_found_in_database: "Invalid %{authentication_keys} or password." 16 | timeout: "Your session expired. Please sign in again to continue." 17 | unauthenticated: "You need to sign in or sign up before continuing." 18 | unconfirmed: "You have to confirm your email address before continuing." 19 | mailer: 20 | confirmation_instructions: 21 | subject: "Confirmation instructions" 22 | reset_password_instructions: 23 | subject: "Reset password instructions" 24 | unlock_instructions: 25 | subject: "Unlock instructions" 26 | password_change: 27 | subject: "Password Changed" 28 | omniauth_callbacks: 29 | failure: "Could not authenticate you from %{kind} because \"%{reason}\"." 30 | success: "Successfully authenticated from %{kind} account." 31 | passwords: 32 | no_token: "You can't access this page without coming from a password reset email. If you do come from a password reset email, please make sure you used the full URL provided." 33 | send_instructions: "You will receive an email with instructions on how to reset your password in a few minutes." 34 | send_paranoid_instructions: "If your email address exists in our database, you will receive a password recovery link at your email address in a few minutes." 35 | updated: "Your password has been changed successfully. You are now signed in." 36 | updated_not_active: "Your password has been changed successfully." 37 | registrations: 38 | destroyed: "Bye! Your account has been successfully cancelled. We hope to see you again soon." 39 | signed_up: "Welcome! You have signed up successfully." 40 | signed_up_but_inactive: "You have signed up successfully. However, we could not sign you in because your account is not yet activated." 41 | signed_up_but_locked: "You have signed up successfully. However, we could not sign you in because your account is locked." 42 | signed_up_but_unconfirmed: "A message with a confirmation link has been sent to your email address. Please follow the link to activate your account." 43 | update_needs_confirmation: "You updated your account successfully, but we need to verify your new email address. Please check your email and follow the confirm link to confirm your new email address." 44 | updated: "Your account has been updated successfully." 45 | sessions: 46 | signed_in: "Signed in successfully." 47 | signed_out: "Signed out successfully." 48 | already_signed_out: "Signed out successfully." 49 | unlocks: 50 | send_instructions: "You will receive an email with instructions for how to unlock your account in a few minutes." 51 | send_paranoid_instructions: "If your account exists, you will receive an email with instructions for how to unlock it in a few minutes." 52 | unlocked: "Your account has been unlocked successfully. Please sign in to continue." 53 | errors: 54 | messages: 55 | already_confirmed: "was already confirmed, please try signing in" 56 | confirmation_period_expired: "needs to be confirmed within %{period}, please request a new one" 57 | expired: "has expired, please request a new one" 58 | not_found: "not found" 59 | not_locked: "was not locked" 60 | not_saved: 61 | one: "1 error prohibited this %{resource} from being saved:" 62 | other: "%{count} errors prohibited this %{resource} from being saved:" 63 | -------------------------------------------------------------------------------- /spec/spec_helper.rb: -------------------------------------------------------------------------------- 1 | # This file was generated by the `rails generate rspec:install` command. Conventionally, all 2 | # specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`. 3 | # The generated `.rspec` file contains `--require spec_helper` which will cause 4 | # this file to always be loaded, without a need to explicitly require it in any 5 | # files. 6 | # 7 | # Given that it is always loaded, you are encouraged to keep this file as 8 | # light-weight as possible. Requiring heavyweight dependencies from this file 9 | # will add to the boot time of your test suite on EVERY test run, even for an 10 | # individual file that may not need all of that loaded. Instead, consider making 11 | # a separate helper file that requires the additional dependencies and performs 12 | # the additional setup, and require it from the spec files that actually need 13 | # it. 14 | # 15 | # The `.rspec` file also contains a few flags that are not defaults but that 16 | # users commonly want. 17 | # 18 | # See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration 19 | RSpec.configure do |config| 20 | # rspec-expectations config goes here. You can use an alternate 21 | # assertion/expectation library such as wrong or the stdlib/minitest 22 | # assertions if you prefer. 23 | config.expect_with :rspec do |expectations| 24 | # This option will default to `true` in RSpec 4. It makes the `description` 25 | # and `failure_message` of custom matchers include text for helper methods 26 | # defined using `chain`, e.g.: 27 | # be_bigger_than(2).and_smaller_than(4).description 28 | # # => "be bigger than 2 and smaller than 4" 29 | # ...rather than: 30 | # # => "be bigger than 2" 31 | expectations.include_chain_clauses_in_custom_matcher_descriptions = true 32 | end 33 | 34 | # rspec-mocks config goes here. You can use an alternate test double 35 | # library (such as bogus or mocha) by changing the `mock_with` option here. 36 | config.mock_with :rspec do |mocks| 37 | # Prevents you from mocking or stubbing a method that does not exist on 38 | # a real object. This is generally recommended, and will default to 39 | # `true` in RSpec 4. 40 | mocks.verify_partial_doubles = true 41 | end 42 | 43 | # This option will default to `:apply_to_host_groups` in RSpec 4 (and will 44 | # have no way to turn it off -- the option exists only for backwards 45 | # compatibility in RSpec 3). It causes shared context metadata to be 46 | # inherited by the metadata hash of host groups and examples, rather than 47 | # triggering implicit auto-inclusion in groups with matching metadata. 48 | config.shared_context_metadata_behavior = :apply_to_host_groups 49 | 50 | # The settings below are suggested to provide a good initial experience 51 | # with RSpec, but feel free to customize to your heart's content. 52 | =begin 53 | # This allows you to limit a spec run to individual examples or groups 54 | # you care about by tagging them with `:focus` metadata. When nothing 55 | # is tagged with `:focus`, all examples get run. RSpec also provides 56 | # aliases for `it`, `describe`, and `context` that include `:focus` 57 | # metadata: `fit`, `fdescribe` and `fcontext`, respectively. 58 | config.filter_run_when_matching :focus 59 | 60 | # Allows RSpec to persist some state between runs in order to support 61 | # the `--only-failures` and `--next-failure` CLI options. We recommend 62 | # you configure your source control system to ignore this file. 63 | config.example_status_persistence_file_path = "spec/examples.txt" 64 | 65 | # Limits the available syntax to the non-monkey patched syntax that is 66 | # recommended. For more details, see: 67 | # - http://rspec.info/blog/2012/06/rspecs-new-expectation-syntax/ 68 | # - http://www.teaisaweso.me/blog/2013/05/27/rspecs-new-message-expectation-syntax/ 69 | # - http://rspec.info/blog/2014/05/notable-changes-in-rspec-3/#zero-monkey-patching-mode 70 | config.disable_monkey_patching! 71 | 72 | # Many RSpec users commonly either run the entire suite or an individual 73 | # file, and it's useful to allow more verbose output when running an 74 | # individual spec file. 75 | if config.files_to_run.one? 76 | # Use the documentation formatter for detailed output, 77 | # unless a formatter has already been configured 78 | # (e.g. via a command-line flag). 79 | config.default_formatter = 'doc' 80 | end 81 | 82 | # Print the 10 slowest examples and example groups at the 83 | # end of the spec run, to help surface which specs are running 84 | # particularly slow. 85 | config.profile_examples = 10 86 | 87 | # Run specs in random order to surface order dependencies. If you find an 88 | # order dependency and want to debug it, you can fix the order by providing 89 | # the seed, which is printed after each run. 90 | # --seed 1234 91 | config.order = :random 92 | 93 | # Seed global randomization in this process using the `--seed` CLI option. 94 | # Setting this allows you to use `--seed` to deterministically reproduce 95 | # test failures related to randomization by passing the same `--seed` value 96 | # as the one that triggered the failure. 97 | Kernel.srand config.seed 98 | =end 99 | end 100 | -------------------------------------------------------------------------------- /mission_statement.md: -------------------------------------------------------------------------------- 1 | # What is Code Connection? 2 | 3 | ## *Seeking Input and Potential Contributors* 4 | 5 | ### What is Code Connection 6 | 7 | Code Connection is an idea that spawned from a weekly Twitter chat hosted by [CodeNewbie.org](http://www.codenewbie.org). Simply put, I see code connection as a way for people who code independently to find others to learn with, build projects with, bounce ideas off of, or whatever else you need to build up your code chops and/or projects. 8 | 9 | ### Why Do I Think There is a Need for Code Connection? 10 | 11 | I have been working on learning how to code, in one way or another, for over 20 years. I've done it mostly on my own, at home, but have taken a few courses at the local community college. I attend Meetups locally but find them not that helpful in what I'm looking for, somewhat intimidating, or the groups in my area are barely active (The local Rails meetup has met twice in the past year for instance). 12 | 13 | I'm in my 40s. I work 40+ hours per week, I'm married, I have a dog and four cats. The time I have to work on my coding projects is limited to a few hours after work and weekend hours, but let's not forget a person needs to have a life, and if I want to keep my wife, I have to pay attention to her. 14 | 15 | A blog post on [Firehose Project](http://blog.thefirehoseproject.com/posts/this-23-step-framework-will-help-you-finally-launch-your-side-project/) led me to start my [Twitter Account](http://www.twitter.com/mageeworld), and that has been very helpful. I've connected with some people who are great, but it still doesn't fill the need(s), I've found that I'm looking for, but it has shown me that there are a plethora of people out there working to code, in so many languages or libraries, of all experience levels, age groups, desires, project goals, geographic locations etc...and, well, I think maybe there might be way to harness all that potential, no matter where it's located into building things that any of us want to build. 16 | 17 | Thus the idea for this project came into my head. 18 | 19 | The name Code Connection is not fixed, it is just the first name I came up with. 20 | 21 | ### What Do I want Code Connection to do? 22 | 23 | I think it's pretty simple. I want Code Connection to connect people. I want people to be able to fill out not only a profile of their traits, qualities, but a profile of traits qualities they're looking for. 24 | 25 | Whether you need people to learn with who are learning the same code base as you, or someone more experienced than you in a different code base to help you solve a specific problem, or to learn that code base, you might be able to find someone available when you're available. 26 | 27 | Perhaps like me, you're much better at back end work than front end work, but you want some help on the front end design of your proejct, put it out there for as little or as much as you want help with. Maybe someone will guide you through wire framing, maybe someone will help you work through the concept of responsive design in bootstrap or flexbox. 28 | 29 | Maybe, also like me, you've got big ideas for big projects (perhaps an SaaS system, perhaps a distributed social network with no owner, who knows), but you're still learning your ropes through deploying your application and haven't yet leared how to use ActionMailer (yeah, that's me right now), and you want to make connections with people who have different chops (but also have holes) who are looking for something to work on as well. 30 | 31 | I could go on, but I think you get the general idea. 32 | 33 | 34 | ### That's a Great Idea but How Would It Work? 35 | 36 | Right now, this is just a kernel of an idea, but it's an idea I want to pursue, so I only have some broad strokes, but the idea works out something like this. 37 | 38 | 1. Users Create a Profile and tell other users about themselves, but not any personal stuff, but more about you as a coder: 39 | * Libraries/Languges/Applications you know and the level you are at (be it Ember, Rails, or Adobe Illustrator, all skills would be welcome) 40 | * Methodologies you work in (or want to work in) (TDD, AGILE, others that I don't know the name off off the top of my head) 41 | * Avaiability in terms of days / time / etc... 42 | * Looking for categories (study buddies to work with, projects to do, layouts to help with, whatever) 43 | * And more would show up over time I'm sure 44 | 45 | 2. *Searches* would be posted by users 46 | * I'm looking for people looking to learn Rails using Cucumber (that's a thing I promise) who are available M-F from 9-11 AM Pacific Daylight Time 47 | * I'm looking for UI/UX beginners who want to practice their chops on my project whose back end I'm in love with, but whose front end looks like a dog built it 48 | * Other stuff would evolve during the planning stage too 49 | 50 | 51 | 3. Other Things - As They Occur to Me 52 | 53 | ### Some things I would want this to be 54 | 55 | Free - this isn't about jobs or paid projects - I want people to find people they want to work with on Code Connection because they can't find the connection they need in a more traditional way 56 | Inclusive - I know language translation stuff exists, and I don't know how to use it, but the more languages the application could speak the better. 57 | Kind - There would be a very strict code of conduct and word usage filter - and violators would not be tolerated. 58 | 59 | ### What Do I Need? 60 | 61 | Well that is a pretty easy question. I need help. Heck, perhaps this already exists and I haven't found it in my web trails. If it does, just send me the link on [Twitter](http://www.twitter.com/mageeworld), but if it doesn't and this sounds like a good idea to you, then still contact me on Twitter. Let me know if you want to be included in any way shape or form. If you just want to participate in helping set up the guidelines, please, the more input the better. If you want to write some code, front or back end, let me know. If you have some suggestions about how to build this, that would be great too. I'm mostly a Rails, SQL guy...but I know there's a lot of different ideas and ways to peel a lemon out there (sorry, no cat skinning, like I said, I have 4 of them, and it really is an awful saying isn't it?), and I'm open to them all. 62 | 63 | Heck, if you have resources you think might be helpful let me know (for instance, it would be great if we could not only help people connect but give them a place to talk, or chat, or track their progress or projects, without little to now costs). 64 | 65 | Ok, I think I've gone on long enough. If you are interested, or want to know more, you can find me on Twitter or you can email me directly at