Ourikas é um app para busca de empresas e serviços. Tem o objetivo de ser simples, rápido útil. Você pode acessar a versão atualmente em produção em http://ourikas.github.io.
Para iniciar você pode simplesmente clonar o repositório do ourikas e instalar todas as dependências.
Você precisa do git para clonar o repositório do ourikas. Você pode conseguir o git em http://git-scm.com/.
Nós também usamos algumas ferramentas do node.js para inicializar e testar o ourikas. Você tem quer ter o node.js e o seu gerenciador de pacotes (npm) instalados. Você pode conseguir eles em http://nodejs.org/.
Clone o repositório do ourikas usando o git:
git clone https://github.com/ourikas/ourikas.git
cd ourikas
Nós temos dois tipos de dependências nesse projeto: ferramentas e bibliotecas/frameworks. As ferramentas ajudam a gerenciar e testar p app.
- Conseguimos as ferramentas de que dependemos via
npm
, o gerenciador de pacotes do node. - Conseguimos as bibliotecas e framworks via
bower
, um gerenciador de pacotes de código client-side.
Pré-configuramos o npm
para automaticamente rodar o bower
então podemos simplesmente rodar o comando:
npm install
Por trás das cortinas isso também vai rodar bower install
. Você deve encontrar dois novos diretórios em seu projeto.
node_modules
- contém os pacotes npm das ferramentas que precisamosapp/bower_components
- contém as bibliotecas e frameworks
Enquanto o ourikas é um aplicação client-side-only, sendo possível rodar sem um backend e consequentemente não precisando de um webserver, nós recomendamos rodar o projeto num servidor durante o desenvolvimento para evitar problemas com restrições de segurança (sandbox) nos browsers. As inplementações de sandbox variam entre os browsers, mas geralmente previne coisas como cookies, xhr, etc de funcionar corretamente quando uma página html é aberta no equema file://
ao invés de http://
.
O ourikas vem pré-configurado com um webserver local para desenvolvimento. É um plugin do gulp chamado gulp-connect. Você pode iniciar o webserver com:
npm start
Agora aponte seu navegador para http://localhost:8000
.
app/
js/ --> todos os arquivos javascript do app
sass/ --> todos os arquivos de estilo do app
templates/ --> páginas html para as rotas do app
index.html --> arquivo de layout do app (principal template html do app)
karma.conf.js --> arquivo de configuração para rodar os testes unitários com o Karma
e2e-tests/ --> testes end-to-end
protractor-conf.js --> arquivo de configuração do Protractor
scenarios.js --> cenários end-to-end para serem rodados com o Protractor
Exitem dois timpos de testes no app ourikas: Testes Unitários e Testes End to End.
O ourikas vem pré-configurado com testes unitários. Estes são escritos em Jasmine e rodamos com o Karma Test Runner.
- a configuração é encontrada em
karma.conf.js
- os testes unitários são encontrados próximos ao código que eles estão testando e são nomeados como
..._test.js
.
A forma mais fácil de rodar os testes unitários é usando um script npm:
npm test
Esse script vai iniciar o Karma test runner para executar os testes unitários. Além disso ficará observando os arquivos de teste e quando houver alguma mudança e assim que haja alguma alteração rodará os testes novamente. Essa é a estratégia recomendada; se os testes unitários estão sendo rodados sempre que você salva um arquivo então você recebe feedback instantâneo em qualquer mudança que eventualmente quebre a funcionalidade esperada do código.
Você pode fazer com que o Karma rode os testes apenas uma vez. Isso é útil se você quer checar se uma versão particular do código está funcionando como o esperado. O projeto contém um script para isso:
npm run test-single-run
O ourikas vem com testes end-to-end, que também são escritos em Jasmine. Esses testes são rodados com o Protractor End-to-End test runner.
- o arquivo de configuração está em
e2e-tests/protractor-conf.js
- os aquivos de testes end-to-end estão em
e2e-tests/scenarios.js
Protractor interage com nossa aplicação e verifica se ela responde corretamente. Além disso nosso web server procisa está servindo a aplicação para que o Protractor possa interagir com ela.
npm start
Uma vez que você verificou que o servidor de desenvolvimento está rodando você pode usar esse comando npm:
npm run protractor
Esse script irá executar os tests end-to-end na aplicação servida pelo webserver.
Para mais informações entre no chat do projeto em https://gitter.im/ourikas