hugodias/san-pedro-valley-jobs

View on GitHub
README.md

Summary

Maintainability
Test Coverage
San Pedro Valley Jobs - Beta
-

[![Deploy to Heroku](https://www.herokucdn.com/deploy/button.png)](https://heroku.com/deploy)

Este é o repositório do novo Job Board de [San Pedro Valley](http://jobs.sanpedrovalley.org)

Veja funcionando em [jobs.sanpedrovalley.org](http://jobs.sanpedrovalley.org)


[![Build Status](https://semaphoreci.com/api/v1/hugodias/san-pedro-valley-jobs/branches/master/badge.svg)](https://semaphoreci.com/hugodias/san-pedro-valley-jobs) [![Join the chat at https://gitter.im/hugodias/san-pedro-valley-jobs](https://badges.gitter.im/hugodias/san-pedro-valley-jobs.svg)](https://gitter.im/hugodias/san-pedro-valley-jobs?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)

## Requerimentos

- Ruby 2.3.0
- Rails 4.2.5.2
- Elasticsearch (Searchkick)
- Sidekiq (Opcional)
- Mailgun (Free no heroku)


## Como funciona

Qualquer pessoa pode cadastrar um **job** no aplicativo, porém apenas adminstradores podem aprovar ou reprovar um job.

Ao cadastrar um **job**, o adminstrador recebe um e-mail com dois links: Aprovar ou Reprovar, e os dados do job no corpo do e-mail.

O adminstrador poderá também aprovar, reprovar e remover jobs no dashboard dentro da plataforma, protegida por login. Utilizamos o `devise` para authenticação.

O autor da vaga poderá remove-la a qualquer momento informando o e-mail de cadastro do job. Ao solicitar a remoção da vaga o mesmo receberá um e-mail com o link para remover o **job** do site.

A busca de jobs é realizada utilizando o `elasticsearch` e os e-mail são enviados em background pelo `sidekiq`.

Um usuário adminstrador é criado ao rodar o seed com `rake db:seed`- Não se esqueça de fazer o passo 4 do guia abaixo para funcionar.


## Discussões [![Join the chat at https://gitter.im/hugodias/san-pedro-valley-jobs](https://badges.gitter.im/hugodias/san-pedro-valley-jobs.svg)](https://gitter.im/hugodias/san-pedro-valley-jobs?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)

Para discussões relacionadas ao projeto, é utilizado o [gitter](https://gitter.im/hugodias/san-pedro-valley-jobs) que disponibiliza um chat em tempo real.

## Começando

Pré-requisitos: Instale o [Elasticsearch](https://www.elastic.co/products/elasticsearch) e o [Sidekiq](https://github.com/mperham/sidekiq). PS: Atualmente utilizamos o sidekiq apenas para enviar os e-mails.


1. Clone o repositório:

    ```sh
    $ git clone git://github.com/hugodias/san-pedro-valley-jobs.git
    ```
2. Vá para pasta do projeto:

    ```sh
    $ cd san-pedro-valley-jobs
    ```

3. Instale todas as gems:

    ```sh
    $ bundle install
    ```

4. Duplique o arquivo `.env.example` na raiz do projeto:

    ````
    cp .env.example .env
    ````

5. Crie as tabelas:

    ```sh
    $ rake db:create && rake db:migrate && rake db:seed
    ```

6. E finalmente rode:

    ```sh
    $ rails s
    ```

7. Opcional: utilize heroku local para ligar o server e iniciar o sidekiq

    ```sh
    $ heroku local
    ```

## Deploy

A aplicação já está preparada para para fazer o deploy para o heroku sem nenhuma alteração adicional.

Addons necessários no heroku:
* Bonsai Elasticsearch (Ou algum outro de Elasticsearch)
* Postgres
* Redis To Go (Para o sidekiq)
* Mailgun/Sandgrid/Mandril

Não se esqueça de habilitar ao menos 1 worker no painel do heroku para que o sidekiq funcione corretamente.

## Contribuindo

Quer ajudar? Excelente! O primeiro passo é procurar issues [com a tag help wanted no github](https://github.com/hugodias/san-pedro-valley-jobs/labels/help%20wanted).

Não tem nada lá? Não tem problema, porque como você sabe, [Software has bugs. This is normal](https://m.signalvnoise.com/software-has-bugs-this-is-normal-f64761a262ca#.9e469ys8y). Encontrou um Bug? *A casa é sua, fique a vontade, a geladeira é ali ó*.

Se quiser enviar um pull request, por favor faça-o na branch `dev`.

* `master` contém a versão estável do projeto.
* `dev` contém as funcionalidades que estão em desenvolvimento.

Tenha certeza que sua pull-request está bem testada, de preferência com testes unitários e de integração (Veja a pasta specs/features)

## Garantia da Qualidade [![Code Climate](https://codeclimate.com/github/hugodias/san-pedro-valley-jobs/badges/gpa.svg)](https://codeclimate.com/github/hugodias/san-pedro-valley-jobs) [![Test Coverage](https://codeclimate.com/github/hugodias/san-pedro-valley-jobs/badges/coverage.svg)](https://codeclimate.com/github/hugodias/san-pedro-valley-jobs/coverage)

Para garantir a qualidade, é utilizado um guia de estilos, boas práticas e má praticas. Essa garantia é monitorada pelo [Code Climate](https://codeclimate.com) e pelo [houndci](http://houndci.com). O Code Climate checa por má práticas de programação em relação a estrutura do código enquanto que o Houndci checa má práticas na sintaxe do código, isto é, se a leitura do mesmo não é demasiada complicada.