Coder Social home page Coder Social logo

README

CiecleCI Build Status Code Climate Test Coverage Dependency Status

This is the source for the website sampierson.com.

I use it as a platform for experimentation, therefore some of the technology and methodology choices made here are not what I might use while doing for-profit work.

Technology

  • Ruby 2.3.x
  • Rails 4.2.x
  • PostgreSQL, foreigner
  • RSpec 3, FactoryGirl, Capybara, Poltergeist (phanjomjs)
  • Zeus, Guard, guard-rspec, guard-livereload
  • Bootstrap 3 (bootstrap-sass)
  • Authentication from scratch
  • A form builder I wrote for Bootstrap 3 (simple_bootstrap_form), which has a similar API to simple_form, as at the time I started this project, simple_form was not yet Bootstrap 3 compatible.

Services

  • CirleCI for Continuous Integration.
  • CodeClimate for code complexity and coverage analysis.

Methodology

  • Follow the GitHub Ruby Styleguide, with the following exception:
    • It's okay to use JSON format for Hashes instead of hashrockets
  • Maintain 100% code coverage
  • Maintain a CodeClimate GPA of 4.0
  • Comply with Sandy Metz's 5 Rules.
    1. Classes can be no longer than 100 lines of code
    2. Methods can be no longer than five lines of code
    3. Pass no more than four parameters into a method
    4. Rails controller actions can only instantiate one object
    5. You can pass only one instance variable to a view
  • Use Form Objects for all non-trivial forms.
  • Screenshot every page in integration tests. This allows for rapid scanning for problems when sweeping CSS changes are made. The goal is to to eventually compile these images into a single PDF. If you know how to automatically do that, please let me know.
  • Run brakeman manually, as CodeClimate won't run it for open source projects.

Getting Started

Know what you are doing, skip the steps you don't need:

brew install postgres phantomjs terminal-notifier

git clone [email protected]:Piersonally/SamPierson.git
rvm install `cat SamPierson/.ruby-version`

createuser --superuser
rake db:create db:migrate db:test:prepare

rake tabs

On Mac OS X rake tabs will open up a set of windows running the rails console, server, and guard. Press return in the guard window to run all tests.

Deployment

This app is continuously deployed to Heroku by CircleCI upon a successful build.

TO DO

  • Attachments
  • Search

Sam Pierson's Projects

autotest icon autotest

Save a file, autotest will run the matching tests! (Autotest without ZenTest)

daemonize icon daemonize

Command line utility to run a program as a Unix daemon

dcplib icon dcplib

A library of modules shared among multiple Data Coordination Platform components

errbit icon errbit

The open source error catcher that's Airbrake API compliant

github-services icon github-services

Official GitHub Services Integration - You can set these up in your repo admin screen under Service Hooks

page_specific_js icon page_specific_js

Target javascript to specific Rails application pages (controllers/actions)

restful-authentication icon restful-authentication

Generates common user authentication code for Rails/Merb, with a full test/unit and rspec suite and optional Acts as State Machine support built-in.

rubygems icon rubygems

Library packaging and distribution for Ruby.

sinon icon sinon

Test spies, stubs and mocks for JavaScript.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.