Projeto Semestral (clique para ver as informações)
Projeto Semestral
Ao longo deste semestre, iremos desenvolver um SaaS aplicando as melhores práticas de Engenharia de Software.
Para isso, nos dividiremos em grupos de 5 ou 6 alunos, para projetar, planejar, desenvolver, testar e implantar um software como serviço ao longo do semestre.
Cada grupo é livre para escolher o software a ser desenvolvido. Sejam ousados! Essa pode ser uma chance de transformar uma ideia em algo que pode render frutos no futuro. Alguns softwares que começaram a ser desenvolvido aqui migraram para a Incubadora Habits ao final do projeto.
O software não será avaliado por suas funcionalidades ou beleza. Ele será avaliado pelo esforço despendido por cada integrante do grupo para projetar, planejar, desenvolver, testar e implantar o software.
A implementação do software deverá, obrigatoriamente, usar:
- o arcabouço Ruby on Rails para o backend e HTML5+JavaScript para a interface;
- o arcabouço para testes de unidade e funcional RSpec (para Ruby e Rails) e Jasmine (para JavaScript);
- uma forma de medir a cobertura dos testes (Coveralls e Travis CI)
- um arcabouço de testes que possa expressar testes que corresponderão às histórias dos usuários (Cucumber e Capybara)
- um arcabouço para medição da qualidade do código, que ajude a identificar mal cheiros de projetos, problemas no estilo do código, etc. (CodeClimate)
Vejam exemplos de projetos implementados pelos alunos em oferecimentos anteriores do curso.
Iteração 0
A Iteração 0 trata da configuração do ambiente de desenvolvimento do projeto e da formação dos grupos.
O primeiro passo é organizar os grupos. Na Planilha de Divisão de Grupos, vá até a aba correspondente ao seu curso (ACH2006 ou SIN5005) e mova o seu nome da lista de matriculados para um dos grupos. O primeiro nome indicado em cada grupo será o meu contato para os próximos passos. Lembrem-se que os grupos devem ter 5 ou 6 alunos.
Cada grupo deverá, então, seguir os seguintes passos (sugiro que a ordem dos itens seja seguida):
- Criar um projeto no GitHub
- Adicionar todos os integrantes do grupo como colaboradores
- Todos os membros devem conseguir fazer um clone do repositório e executar o projeto em seu ambiente de desenvolvimento local. Recomendação (em ordem de preferência): use Linux/MacOS, a imagem do Docker a ser disponibilizada pelos monitores ou use um serviço de IDE online como o Cloud9
- Os comandos rake spec e rake cucumber deve rodar sem erros (mesmo que ainda não haja testes escritos)
- Integrar o repositório com Travis CI, o que significa ter o Travis CI reportando "Build: passing"
- Integrar o repositório com o CodeClimate
- Implantar o projeto na plataforma Heroku;
- Um README.md no repositório do projeto que inclua todos os itens abaixo:
- "CodeClimate badge" mostrando o GPA do projeto
- "Travis CI badge" mostrando o status do build no branch master (deve ser: passing)
- Link para a app implantada no Heroku
- Link para o projeto no Pivotal Tracker
(não crie um projeto agora, o link será fornecido por mim, o projeto no
Pivotal será criado assim que os grupos forem definidos)
- Integrantes do projeto e uma pequena descrição de qual problema o software de vocês resolverá
O link para o projeto do GitHub deverá ser enviado pelo aluno indicado como contato do grupo para mim, por e-mail, até o dia 5/set.