# FLOSSCoach
## Introdução

O FLOSSCoach é um portal de apoio a novatos com dificuldades em adentrar à comunidade de projetos de software livre.
O portal visa fornecer informações sobre:
* Habilidades necessárias para desenvolver os projetos;
* O passo-a-passo para a contribuição;
* A localização de recursos como repositório de código fonte;
* Gerenciador de tarefas e lista de e-mails;
* Uma lista de tarefas adequadas;
* Dicas de como se portar frente à comunidade.

## Informações

* Página oficial: http://www.flosscoach.com
* Repositório oficial: https://gitlab.com/flosscoach/flosscoach
* Repositório do time de MES: https://gitlab.com/MES2016/flosscoach
* Equipe:
| Nome | Usuário |
| Filipe Ribeiro | filiperibeiro77 |
| Keli Cristina Vieira Sirqueira Borges | keliunb |
| Mateus Furquim | mfurquim |
| Tainara Santos Reis (coach) | tainarareis |
| Victor Henrique Magalhães Fernandes | victor.hmf |
| Tâmara Barbosa | tamarabarbosa |

### Tecnologias utilizadas:

* Ruby on Rails;
* Bootstrap;
* Font Awesome;
* Joomla;
* Gitlab.

### Funcionalidades existentes:

* Cadastrar/Editar usuário;
* Login por redes sociais;
* Cadastrar/Editar projeto;
* GUI.

## Política de branches
### Boas práticas de controle de versão

* Não é permitido realizar alterações diretamente na master;
* Cada colaborador deve utilizar mais de um remote:
* Repositório do time: em seu computador, o colaborador deve clonar o repositório git@gitlab.com:MES20161/flosscoach.
* Repositório oficial:
* Nomeação padronizada das branchs: NumeroDaIssue_tituloCurto (ex: 05_cadastroUsuario);
* Quando a issue for fechada, revisada e o merge request aceito a branch pode ser deletada;
* O merge request deve referenciar a issue a qual está relacionado;
* Antes de realizar qualquer modificação no código, o colaborador deve pegar as modificações da master do repositório oficial (upstream). Ex:

## Commit de vários colaboradores

Quando for comitar utilize:
ou
Ou escreve no fim da mensagem, em uma linha separada por outra linha em branco no corpo do commit:
Caso o commit já tenha sido feito, use git commit --amend ou git rebase -i para editar a mensagem do commit, e adicionar a linha com "Signed-off-by".

## Processo de revisão de código

* Rodar os testes;
* Ler e analisar o código;
* Realizar correções de estilo (adequar à folha de estilo padrão do Ruby), sintaxe.
* Caso o código esteja de acordo subir o código para a branch dev e realizar merge request da branch da issue (ex: issue42_cadastro) para a master do repositório oficial.

## Acompanhamento das atividades
### 16/09 e 18/09

* Script de instalação: https://gitlab.com/MES2016/flosscoach/commit/e44ae5cd67da50d1566aac660aaaee2eb161250c
* Aprimoramento do gitignore;
* Definição da política de Branch;
* Substituição da ferramenta de teste;
* Ambientes configurados:
** API’s de Login.

### SPRINT 1

* 23/08 a 06/09;
* Objetivo da sprint: nivelar o conhecimento da equipe e iniciar as atividades de testes usando o Rspec e Cucumber;
* Issues planejadas:
| Issue | Par | Link | Finalizado | Problemas para finalizar |
| Criar papel de administrador | Tâmara e Keli | https://gitlab.com/flosscoach/flosscoach/issues/5 | Não | Na criação do projeto não está sendo setado o id do usuário administrador: os relacionamentos foram feitos de acordo com várias documentações porém ainda não está funcionando totalmente; |
| Testar Models | Filipe e Mateus | https://gitlab.com/flosscoach/flosscoach/issues/3 | Não | API de login Omniauth não funciona sempre havendo a necessidade de ser reconfigurada ou banco deletado sempre que pára de funcionar; Mock de usuário da API: dadas as maneiras de "mockar" encontradas em documentações, nenhuma funcionou; Colegas de outras equipes buscaram ajudar porém também não encontraram solução |
| Testar login a partir do cadastro | Tainara e Victor | https://gitlab.com/flosscoach/flosscoach/issues/2 | Não | API de login Omniauth não funciona sempre havendo a necessidade de ser reconfigurada ou banco deletado sempre que pára de funcionar; Mock de usuário da API: dadas as maneiras de "mockar" encontradas em documentações, nenhuma funcionou; Colegas de outras equipes buscaram ajudar porém também não encontraram solução |

### SPRINT 2

* 06/09 a 22/09;
* Objetivo da sprint: prosseguir com os testes funcionais usando o Cucumber e desenvolver novas funcionalidades;
* Issues planejadas:
| Issue | Par | Link | Finalizado |
| Criar papel de administrador | Tâmara, Keli, Filipe e Mateus | https://gitlab.com/flosscoach/flosscoach/issues/5 | Done |
| Atribuir papel de administrador do projeto a quem cria o projeto | Tâmara, Keli, Filipe e Mateus | https://gitlab.com/flosscoach/flosscoach/issues/7 | Doing |
| Criar mecanismo para aprovar ou não a entrada de membros em um projeto | - | https://gitlab.com/flosscoach/flosscoach/issues/6 | Doing |
| Testar login a partir do cadastro | Tainara e Victor | https://gitlab.com/flosscoach/flosscoach/issues/2 | Doing |