/Openredu

Rede Social Educacional

Primary LanguageRubyGNU General Public License v2.0GPL-2.0

Build Status

OpenRedu Core

Este repositório contem o core do OpenRedu. O openredu-core é a parte central da plataforma social educacional OpenRedu. Também existem alguns subsistemas/serviços que estão em servidores/projetos/repositórios diferentes. A saber:

Setup

Setup Ubuntu Setup Windows/Mac OS/Ubuntu (Deprecated)

Dependências

Para fazer o OpenRedu funcionar em ambiente de desenvolvimento você precisará instalar as seguintes dependências:

  • MySQL 5.1
  • MongoDB 2.0.6
  • Solr 1.4.0

Coding style

O estilo e padrões de código utilizados estão disponíveis neste guia. Leia com atenção antes de submeter patches.

Contribuições

Todas as contribuições serão analisadas pelos integrantes da comunidade OpenRedu, o código do OpenRedu não está ligado a nenhuma instituição. É um código de software livre.

Um guia muito bom é o do GitHub, ele explica detalhadamente as práticas e como contribuir como projetos de Open Source.

As informações abaixo são só reforços do guia do GitHub.

Pull requests

Os passos para contribuir com a evolução do código, seja para resolução de issue ou criação de features são os seguintes:

  1. Fork do projeto no GitHub
  2. Criar um branch próprio para o problema
  3. Realizar mudanças ou adicionar a feature
  4. Commitar mudanças e enviá-las para o remoto do seu repositório
  5. Realizar pull request
  6. Caso existam revisões: realizar novos commits no mesmo branch criado e enviar para o remoto

Reportando issues

Descreva o issue de forma mais clara possível, sempre usando usando algum casa de uso. Casa haja alguma melhoria de código ou de funcionalidade, tente justificar o motivo.

Sempre tente seguir esse checklist para reportar um issue:

  • Adicione um título claro do que se trata o issue
  • Se for um bug, escreva uma descrição mostrando em que ambiente e como aconteceu o erro. Um vídeo ou uma imagem pode ajudar na reprodução do erro.
  • Se for uma melhoria, descreva detalhamente o motivo da melhoria que você pretende adicionar.

Reportando issues da API

O primeiro passo é decidir em qual repositório criar o issue:

Para problemas na API REST, É importante expressar os problemas em termos de HTTP e não da linguagem utilizada. Por exemplo, ao invés de dizer que o método getUsers() está lançando null pointer, tentem explicar que uma requisição do tipo GET para /api/spaces/1/users está retornando o código 500. Fica mais fácil de investigar dessa forma.

DelayedJob

O DelayedJob é utilizado como infraestrutura para processamento de tarefas em background.


#### Responsabilidades de cada worker do Delayed Job

- `delayed_job.0` (general): Execução de tarefas gerais como criação de associações entre usuários e postagens no mural (não há necessidade de serem executadas imediatamente).
- `delayed_job.1` (email): Envio de emails.
- `delayed_job.2` (vis): Envio de dados para Vis (requisições HTTP).
- `delayed_job.3` (hierarchy-associations): Criação de associações da hierarquia que precisam ser feitas o quanto antes.

### Serviço de entrega de e-mails

Para utilizar entrega em segundo plano, é necessário chamar o método do ActionMailer da seguinte forma: ``object.delay(:queue => 'email').method``. Onde ``method`` é tipo de notificação que deve ser gerada. Por exemplo, para enviar o e-mail de convite, a chamada seria a seguinte:

```ruby
UserNotifier.delay(:queue => 'email').external_user_course_invitation(user_course_invitation, course)

É importante notar que e-mails devem ser enfileirados na fila email para evitar que o envio dos mesmos afetem a vazão do processamento de outros Jobs. Para cada e-mail será enfileirado um Job do DelayedJob que lidará com a renderização da View e entrega para a Amazon SES.

Para mais informações de uso: bundle exec ar_sendmail_rails3 -h

Licença Utilizada

O pacote global de software Redu tem direitos reservados para vários autores registrado junto ao INPI. Ele é um Software Livre e de Código Aberto e tudo isso é fornecido sob os termos da licença GNU General Public License versão 2 publicada pela Free Software Foundation.

Redu e a documentação do Redu são distribuídos na esperança de que eles vão ser útil, mas SEM NENHUMA GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou ADEQUAÇÃO A UM DETERMINADO FIM. Consulte a Licença Pública Geral GNU aqui para mais detalhes.