Giter Site home page Giter Site logo

noteworthy's Introduction

Noteworthy

Build Status Maintainability Test Coverage

Setting up your development environment

  1. Install system prerequisites:

    • Ruby - version 2.3.1 or later. This project contains .ruby_version file, so if you use rbenv, you'll be automatically switched to 2.3.1.

    • Bundler - Ruby dependencies for this app are managed using the Bundler gem. After installing ruby, run gem install bundler to install Bundler. Once complete, the bundle command should be available on your path.

    • Pow - A zero- low-configuration rack server. This one's actually optional, but recommended for ease of development. Simply run

      $ curl get.pow.cx | sh
    • PostgreSQL - An open-source relational database with great GIS plugins. For mac users who don't like headaches, we highly recommend the Postgres App. If you enjoy the occasional headache, postgres can be installed via Homebrew or MacPorts. If you're a connoisseur of headaches, you may install postgres from source.

    • Heroku CLI - Heroku's command-line interface.

      $ brew install heroku
  2. Clone this repository using git (we recommend using SSH for pulls/pushes):

    $ git clone [email protected]:hellojustin/noteworthy.git
  3. Install dependencies via Bundler. We recommend using the path setting to place all the installed gems in a subdirectory of this project. That way, you'll avoid version conflicts with already-installed versions, and can blow away your bundle without breaking other projects.

    $ bundle install --path .bundle
  4. Create a .env file to store your environment variables. The .env file will contain environment variables for your app (things like the Database Url, Stripe API Keys, and other settings/credentials). We've provided an example file which has all the right variable names. Just copy it and replace the values. We use the .env file so that you don't have to pollute your system environment with variables for this application. Unfortunately, this means running our app locally is a little more complicated (see next step).

    $ cp .env.example .env
  5. Prepare your database:

    $ bundle exec rake db:create
    $ bundle exec rake db:migrate
    $ bundle exec rake db:seed
  6. At this point you can serve the app locally via Puma using the following command:

    $ bundle exec foreman run rails s

    This works and you can visit your app at http://localhost:3000, but the foreman and bundle exec calls are a little messy. Instead, we recommend using Pow. With Pow, there's just a little first-time setup, but after that you only need to interact with pow when you want to restart the app. To set up your app for Pow, simply create a symlink in your ~/.pow directory, and restart the app. Like so:

    $ ln -s $(pwd) ~/.pow/noteworthy
    $ mkdir tmp
    $ touch tmp/restart.txt

    Now you can visit your app at http://noteworthy.dev. Note that you don't have to worry about port numbers when running multiple rails apps, and your apps are served from a real-looking domain.

Running the tests suite/build

Test suite coming soon.

Deploying to production

  1. Configure a git remote to point at the production Heroku environment:

    $ heroku git:remote -a noteworthy-prod
  2. Push the master branch to the heroku remote:

    $ git push heroku master

Known technical debt

This will become a list of issues that we know we have to fix.

noteworthy's People

Contributors

hellojustin avatar

Watchers

 avatar

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.