Initial commit.

Lays the foundation for the new project. A new repository had already
been created on GitHub.

    $ rails new febrink.com --skip-test-unit
    $ cd febrink.com
    $ touch commit-message.txt
    - README.rdoc was changed so that it better reflects the project.
    - .gitignore was edited to include the recommended file types.
    - Gemfile was edited to include the likely gems.
    $ bundle update
    $ bundle install
    $ git init
    $ git add .
    $ git commit -F commit-message.txt
    $ git remote add origin git@github.com:februaryInk/febrink.com.git
    $ git push remote master
Configure RSpec test suite.

Sets up the RSpec test suite so that it performs as desired.

    $ rails generate rspec:install
        * .rspec
        * spec
        * spec/spec_helper.rb
        * spec/rails_helper.rb
    - rails_helper.rb and spec_helper.rb were stripped of much of the default
      content, particularly comments, and desired options were added in.
    - Capybara was enabled by adding the required lines to spec_helper.rb.
    - .rspec was edited to make test presentation more helpful.
    - The folders controllers, factories, features, helpers, models, requests,
      routing, and views, each with .keep files in them, were added to the spec
      folder for potential future use.
    $ git add .
    $ git commit -F commit-message.txt
    $ git push origin master
Refactor default code and files so styles align with preferences.

Alters all of the default code generated by Rails so that it follows the
stylistic form that is desired for this project at this time. No
functional changes were made.

    $ notepad++ . -r
    - Files were edited as needed. The code style was made consistent with
      preferences, unnecessary comments were removed, and a couple of
      unnecessary .keep files were deleted. Potentially unusual style
      preferences are as follows:
        * Use tab indents rather than two-space indents.
        * In HAML code, children should be indented one tab past their parents,
          inasmuch as is possible.
        * Put a buffer space between curly braces, brackets, parenthesis, and
          uprights and whatever they enclose. If they enclose nothing, put two
          blank spaces.
        * Put one blank line after the beginning of each class, method, module,
          multi-line block, and so on.
        * In all but HAML files and exceptional cases:
            - Code fills columns 1 through 88,
            - blank spaces fill columns 89 through 92, and
            - comments fill columns 93 through 180.
        * If a block, lambda, if statement, proc, or unless statement only
          includes one line of instruction, write it on one line.
        * Never omit parenthesis, curly braces, or (in HAML code) division
          declarations.
        * Use an explicit return if a return value is going to be used.
        * Use :value => key rather than value: key.
        * If a required module file's extension is known, include it.
        * Use double quotes only when necessary; otherwise, use single quotes.
        * In comments, use double quotes around bash commands. Otherwise,
          avoid quotes.
    $ git add . --all
    $ git commit -F commit-message.txt
    $ git push origin master
Add website name helper and its test.

Makes the site_name(  ) helper function that returns the website's name and
its RSpec test. This will make the name easy to change, if that is ever desired
in the future. In such an event, only app/helpers/application_helper.rb and
spec/helpers/application_helper_spec.rb will need to be modified.

    - application_helper_spec.rb was created.
    - spec/helpers/.keep was deleted.
    - A test for the helper function was added to application_helper_spec.rb.
    $ bundle exec rspec
        * Test is failing.
    - The helper function was added to application_helper.rb.
    $ bundle exec rspec
        * Test is passing.
    - The single existing instance of the site's name was replaced with the
      helper.
    $ git add . --all
    $ git commit -F commit-message.txt
    $ git push origin master

Tests passing: 1
Tests failing: 0
Add tests for home page support.

Adds tests for the existence of a home page, but not its content.

    $ rails generate rspec:controller welcome
        * spec/controllers/welcome_controller_spec.rb
    $ rails generate rspec:helper welcome
        * spec/helpers/welcome_helper_spec.rb
    - spec/routing/welcome_routes_spec.rb was created.
    - Now unnecessary .keep files were deleted.
    - General tests for root page support were added to the created files.
    - spec/spec_helper.rb was modified so that any welcome helper code
      will be accounted for.
    $ git add .
    $ git commit -F commit-message.txt
    $ git push origin master

Tests passing: 1
Tests failing: 4
Create root page support.

Creates the files and configurations necessary to begin building the
application's home page, but no content.

    $ rails generate controller Welcome index --no-controller-specs
    --no-helper-specs --no-view-specs
        * app/controllers/welcome_controller.rb
        * app/views/welcome
        * app/views/welcome/index.html.haml
        * app/helpers/welcome_helper.rb
        * app/assets/javascript/welcome.js
        * app/assets/stylesheets/welcome.scss
    - app/views/layouts/welcome.html.haml was created.
    - app/views/layouts/application.html.erb and welcome.html.haml were edited
      so that they would nest.
    - The generated files were modified so that they follow the style rules.
    - The root path was made to direct to the home page in routes.rb.
    - A function was used to define the home page's name in
      application_helper.rb.
    $ git add .
    $ git commit -F commit-message.txt
    $ git push origin master

Tests passing: 5
Tests failing: 0
Create root page content Rspec files; no tests.

Creates the files necessary to add Rspec tests in the future, but no tests
were written. It has been determined that additional tests will be forgone
until an Rspec 3.X instructional book is available.

    $ rails generate rspec:feature WelcomeFeature
        * spec/features/welcome_features_spec.rb
    - spec/requests/welcome_requests_spec.rb was created.
    - spec/views/welcome_views_spec.rb was created.
    - Now unnecessary .keep files were deleted.
    $ git add .
    $ git commit -F commit-message.txt
    $ git push origin master

Tests passing: 5
Tests failing: 0
Add root page content and styling.

    - app/layouts/application.html.haml and app/layouts/welcome.html.haml
      were modified so they will nest.
    - Content was added to app/views/welcome/index.html.haml.
    - Welcome page styling was added to app/assets/stylesheets/welcome.css.scss.
    $ git add .
    $ git commit -F commit-message.txt
    $ git push origin master

Tests passing: 5
Tests failing: 0
Refactor SCSS file organization and various file names.

Gives the SCSS files a preferable system of organization and changes several
file names. No functional changes were made.

    - SCSS files were organized into folders and content-specific files.
    - .css and .html were removed from all HAML and SCSS file names.
    - A couple of lines of code were changed to adhere to the style rules.
    $ git add .
    $ git commit -F commit-message.txt
    $ git push origin master

Tests passing: 5
Tests failing: 0
Create header and footer.

Creates a basic header and footer. SCSS styles were also tweaked.

    - app/layouts/application.haml was modified so that it would accept
      header and footer partials, and app/layouts/welcome.haml was
      modified so that it would provide them.
    - app/layouts/_header.haml and app/layouts/_footer.rb were created.
    - _header.rb and _footer.rb were given their content.
    - Header, footer, and a few other styles were added or changed in
      the SCSS files.
    $ git add .
    $ git commit -F commit-message.txt
    $ git push origin master

Tests passing: 5
Tests failing: 0
Add content and JQuery effects to the home page.

Changes the home page's content so that it is closer to what is desired.
JQuery effects and SCSS rules were added to transition between content,
but while the effects generally work for the development screen resolution,
the code is a mess, follows bad practices, and most likely will not work on
other resolutions. These issues will hopefully be addressed, for the most
part, in the next commit.

    - div#quote was added to app/views/welcome/index.haml.
    - app/assets/stylesheets/styles/welcome.scss was altered to position
      and style div#quote. Its ancestors were also changed around and
      renamed.
    - A JQuery function to transition out div#quote was added to
      app/assets/javascripts/welcome.js.
    - div#greeting was added to index.haml and it was styled.
    - Another JQuery function was written in welcome.js to transition
      in div#greeting.
    - The JQuery transition functions were generalized to work for other
      divisions.
    - div#secret and its styles were added, along with a mapped link that
      triggers its transition in.
    $ git add .
    $ git commit -F commit-message.txt
    $ git push origin master

Known problems to fix:

    - If the febrink.com logo link is clicked to reload the page, the JQuery
      effects stop working.
    - Sometimes, there is a strange delay between an event and the activation of
      its associated JQuery function.
    - Transitioning elements don't fade in and fade out at the same spot, which
      is desired.
    - If a duration is added to .fadeTo(  ), it makes the elements immediately
      at opacity 1. A better way to change the display from hidden while keeping
      opacity at 0 is probably available.
    - The link that is supposed to be on the fox's nose doesn't end up there
      for any other browser sizes.
    - Links for JQuery functions are currently set to use href='#'.
    - General messiness; the code is not DRY and has unnecessary elements.

Tests passing: 5
Tests failing: 0
Partially fix problems and refactor code.

Fixes some of the problems that were introduced in the last commit and somewhat
cleans up the code. A more thorough refactor will need to be accomplished at
a later date, once the main pages are running.

    - JQuery animation effects were rewritten to run more smoothly and quickly.
    - Replaced instances of href='#' with href='root_path'.
    - The febrink.com #logo was rewritten so that if a user is already on the
      root page, it will not behave as a root_path link. Once a second page is
      up, it can be determined if this keeps the JQuery effects from breaking.
    - Made #fox a static size.
    - Edited fox.png.
    $ git add -u .
    $ git commit -F commit-message.txt
    $ git push origin master

Tests passing: 5
Tests failing: 0
Create user support.

Creates model, controller, routes, helper, Javascript file, SCSS file, view
files, database migration, and RSpec files for users. The current user pages
are edit, index, new, and show.

    $ rails generate controller Users edit index new show --no-test-framework
        * app/controllers/users_controller.rb
        * app/views/users/edit.html.haml
        * app/views/users/index.html.haml
        * app/views/users/new.html.haml
        * app/views/users/show.html.haml
        * app/helpers/users_helper.rb
        * app/assets/javascripts/users.js
        * app/assets/stylesheets/users.css.scss
    $ rails generate model User email:string username:string
        * db/migrate/20140925222122_create_users.rb
        * app/models/user.rb
        * spec/models/user_spec.rb
        * spec/factories/users.rb
    - The default files were edited to make them stylistically consistent.
    - Additional RSpec files were created:
        * spec/features/users_features_spec.rb
        * spec/requests/users_requests_spec.rb
        * spec/routing/users_routes_spec.rb
        * spec/views/users_views_spec.rb
    - spec/spec_helper.rb was modified so that users_helper.rb will be included
      in tests.
    - Routes for users were added.
    - Unnecessary .keep files were deleted.
    $ git add -u .
    $ git commit -F commit-message.txt
    $ git push origin master

Tests passing: 5
Tests failing: 0
Add validations and filters to regulate user's information.

Adds validations and filters that will enforce restrictions on a user's email
and username. A username must:

    - Be present;
    - be less than 32 characters;
    - consist of at least one alphanumeric character, spaces, underscores,
      periods, and/or dashes;
    - be unique, even with regard to case and when stripped of spaces,
      underscores, periods, and/or dashes; and,
    - not have spaces at the beginning or end.

An email must:

    - Be present;
    - be unique;
    - be case-insensitive;
    - follow the proper email format; and,
    - be saved in all lower-case.

The uniqueness of the user's name was ensured by adding a database column
called simple_name and requiring its uniqueness.

    - The validations were added to app/models/user.rb.
    - A simple_name column was added to the users table set up by the database
      migration 20140925222122_create_users.rb. Indices and uniqueness were
      added to the email and simple_name columns.
    $ rake db:migrate RAILS_ENV=development
    $ git add .
    $ git commit -F commit-message.txt
    $ git push origin master

Tests passing: 5
Tests failing: 0
Add user password validations.

Adds validations that will enforce the user password requirements. The password
must:

    - Be present;
    - be at least 10 characters long;
    - be at most 32 characters long; and,
    - be saved as a hash called the user's password digest.

The function has_secure_password was added to the user model to handle most of
the validation work, and consequently a column password_digest was added to the
user table in the database and the password hashing is accomplished via BCrypt.

    - The validations were added to app/models/user.rb.
    - A password_digest column was added to the users table set up by the
      database migration 20140925222122_create_users.rb.
    $ rake db:rollback RAILS_ENV=development
    $ rake db:migrate RAILS_ENV=development
    $ git add .
    $ git commit -F commit-message.txt
    $ git push origin master

Tests passing: 5
Tests failing: 0
Add projects page, create reset SCSS and Resources controller.

A projects page was added for displaying current or completed projects,
with links to their pages. A Resources controller was created to handle
a resume PDF on the projects page and any future such files. A reset
SCSS file was created to scrub undesired browser-imposed styles.

    - app/views/welcome/projects.haml was created and filled in with
      content, and a corresponding function was defined in the Welcome
      controller.
    - app/assets/stylesheets/base/reset.scss was created to remove any
      browser-imposed styles.
    $ rails generate controller Resources --skip-assets --skip-views
      --no-view-specs
    - A route to display a PDF on the projects page was added to
      config/routes.rb.
    - The automatically generated files were cleaned up.
    $ git add .
    $ git commit -F commit-message.txt
    $ git push origin master

Tests passing: 5
Tests failing: 0
Fixed name error in resource helper.
Make site layout more traditional.

The jQuery transition on the home page was eliminated in favor of a
traditional link and a separate about page. The header was given a
navigation bar to support this.

    - app/views/welcome/about.haml was created and filled in with
      content. A corresponding function and route were defined.
    - The header was reconfigured.
    - Site styling, particularly for the header, was altered.
    $ git add .
    $ git commit -F commit-message.txt
    $ git push origin master

Tests passing: 5
Tests failing: 0
Add animation to fox image.

A CSS keyframe animation was used to make the fox image's eyes blink. (Only
on the home page, not on the about page.)

    - The eyes of the fox were made into div elements rather than part
      of the image.
    - The animation was added to the welcome style sheet.
    $ git add .
    $ git commit -F commit-message.txt
    $ git push origin master

Tests passing: 5
Tests failing: 0
Delete test suite.

The test suite was deleted altogether, and related gems were removed from
the Gemfile. Testing will be deferred for now.

    - The spec folder was deleted.
    - The Gemfile was edited to remove most test suite gems.
    $ bundle install
    $ git add . -u
    $ git commit -F commit-message.txt