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:
- Portal de aplicativos: Marketplace de aplicativos educacionais.
- Visualizações semânticas: Armazenamento e construção de visualizações semânticas do Redu.
- Central de Ajuda: Tutoriais de suporte no uso da plataforma.
- Página de desenvolvedores: Documentação da API REST do Redu
- Página do livro: Pagina do livro Educar com o Redu
- Redu Mobile: Aplicativo Android oficial.
- Wally Server: Mural do Redu (server-side)
- Wally.js: Mural do Redu (client-side)
- Untied: Message Bus utilizado na comunicação entre serviços.
- Permit: Autorização e gerênciamento de políticas de acesso entre serviços.
- ReduPy: Encapsulador Python para a API REST do Redu.
- JRedu: Encapsulador Java para a API REST do Redu
Setup Ubuntu Setup Windows/Mac OS/Ubuntu (Deprecated)
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
O estilo e padrões de código utilizados estão disponíveis neste guia. Leia com atenção antes de submeter patches.
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:
- Criar um branch novo
- Realizar mudanças ou adicionar a feature
- Commitar mudanças e enviá-las para o remoto
- Realizar pull request e atribuir a um revisor
- Caso existam revisões: realizar novos commits no mesmo branch criado e enviar para o remoto
Um exemplo de resolução de issue seguiria o seguinte fluxo:
Assumindo que o issue tenha o ID 1300.
$ redu (master) > git pull origin master
$ redu (master) > git checkout -b issue-1300
$ redu (issue-1300) > git commit -a -m "Minhas modificações"
$ redu (issue-1300) > git push origin issue-1300
Para mais informações sobre como fazer o pull request, consulte este post.
O primeiro passo é decidir em qual repositório criar o issue:
- Para bugs na API HTTP propriamente dita: https://github.com/OpenRedu/OpenRedu/issues
- Para bugs na documentação: https://github.com/OpenRedu/redu.github.com
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.
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
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.