IT61/it61-rails

View on GitHub
README.md

Summary

Maintainability
Test Coverage
# It61

[![View performance data on Skylight](https://badges.skylight.io/status/9ACn286v2ne4.svg)](https://oss.skylight.io/app/applications/9ACn286v2ne4)

## Requirements

- Ruby 2.4.3 (with bundler)
- PostgreSQL >= 9.5
- Redis

## Development setup

1. Install gems: `bundle install`
2. **optional:** Install `overcommit` for GIT commit hooks
3. **optional:** Install GIT hooks with `overcommit`: `overcommit --install -f`
4. **optional:** Run `overcommit --sign` to trust the hooks in this repository.
5. Before creating the database you must setup connection strings for PostgreSQL and Redis. Put these default values to `.env` file:

    ```
    DATABASE_URL=postgres://postgres@localhost:5432/it61
    REDIS_URL=redis://localhost:6379
    ```

6. Setup database and run migrations: `rails db:setup`
7. Run server: `./bin/rails server`

## Docker development setup

Docker-based development environment requires `docker-compose >= 1.9.0`.
Visit [https://docs.docker.com/compose/install/](https://docs.docker.com/compose/install/) for more details.

Forwarded ports and access:

* Web: [http://localhost:3000](http://localhost:3000) (host machine).
* Database: `postgres://postgres@localhost:6543` (host machine).

Use `bin/dev` helper script for `docker-compose` management. Run `bin/dev -h` to see help for this tool.

First time you will need to build containers, get gems installed and manually migrate database.

```bash
$ bin/dev up -d
$ bin/dev log
### wait until gems installed
$ bin/dev migrate
### develop
$ bin/dev stop
```

After first run when all gems installed and migration applied you can just use simple `bin/dev start`
and `bin/dev stop` commands to start and stop dev environment.

## Environment variables

* `ENABLE_QUERY_TRACE=[1|0]` - enable query tracing for ActiveRecord;
* `RACK_MINI_PROFILER=[1|0]` - enable the mini profiler.

## Guidelines

Use the following guides for getting things done, programming well, and
programming in style.

* [Protocol](http://github.com/thoughtbot/guides/blob/master/protocol)
* [Best Practices](http://github.com/thoughtbot/guides/blob/master/best-practices)
* [Style](http://github.com/thoughtbot/guides/blob/master/style)

## License

[MIT](https://github.com/IT61/it61.info/blob/master/LICENSE)