# Emergo
## Introdução

O intuito desta página é trazer informações sobre o que será feito a respeito do sistema de gerenciamento e configuração do EmerGO, com as motivações e definições do projeto.

### Visão Geral do Projeto

O EmerGO é um aplicativo que visa agilizar o processo de se buscar ajuda ou encontrar o hospital mais próximo, com o objetivo de auxiliar usuários em situação de emergência. Este aplicativo liga automaticamente para o SAMU se o caso for de extrema urgência.
O aplicativo também organiza todas as Unidades de Saúde do DF para que o usuário possa pesquisar as informações que deseja em um só aplicativo, otimizando seu tempo de pesquisa. É um dispositivo em linguagem de programação Android.
As ferramentas utilizadas no desenvolvimento do produto foram:
* Android Studio
* Firebase
A url do repositório oficial do EmerGO: https://github.com/fga-gpp-mds/2016.1-Emergo

## Gerenciamento de Configuração de Software
### Escopo

Os objetivos que definem o escopo são:
* Integração Contínua
* Levantamento automatizado de ambiente

### Integração Contínua

A integração contínua é um termo originado na metodologia ágil XP e utilizado em diversas metodologias, consistindo em algo simples: o desenvolvedor integra o código alterado e/ou desenvolvido ao projeto principal na mesma frequência com que as funcionalidades são desenvolvidas, sendo feito muitas vezes ao dia ao invés de apenas uma vez. O objetivo principal de utilizar a integração contínua é verificar se as alterações ou novas funcionalidades não criaram novos defeitos no projeto já existente. A prática da integração contínua pode ser feita através de processos manuais ou automatizados.
Ferramenta utilizada: Travis CI

### Levantamento automatizado de ambiente

Com a criação de um arquivo que se executado baixa todas as as dependências e ferramentas necessárias a se rodar o projeto EmerGo, se facilita aos desenvolvedores que queiram contribuir com o projeto.
Ferramenta utilizada: Arquivo Shell Script

### Cronograma / Marcos do Projeto

| Ferramenta | Objetivo | Disponível em |
| GitHub | Sistema para realização do controle de versão | https://github.com/ |
| Travis CI | Serviço gratuito de integração contínua que será integrado ao GitHub | https://travis-ci.com/ |
| Data | Atividade |
| 26/09 | Criação do plano |
| 27/09 - 03/10 | Configuração do ambiente para projeto |
| 04/10 - 10/10 | Realizar integração contínua com Travis CI |
| 11/10 - 17/10 | Iniciar configurações do ambiente |
| 18/10 - 24/10 | Ambiente automatizado |
| 25/10 - 31/10 | Iniciar Apresentação do projeto |
| 1/11 - 20/11 | Revisar estrutura do plano e entregáveis |
| 05/12 | Apresentação final |

## Resultados
### Integração Contínua

A integração continua foi realizada com a combinação entre o GitHub e o Travis CI de maneira simples e prática. Os passos necessários para a realização se dão somente com a criação um arquivo .yml, feito na própria página do GitHub a partir das configurações necessárias. A partir de um commit a integração contínua se implementa.
O arquivo .travis.yml ficou configurado da seguinte forma:

### Levantamento de Ambiente Automatizado

Como dito anteriomente, o levantamento automatizado de ambiente foi feito a partir de um arquivo shell script com todas as configurações necessárias para que o ambiente do EmerGo fosse instalado. Desta forma, o arquivo contem todas as dependências, e pacotes necessários com encaminhamentos aos respectivos repositórios. São eles: Java 8, Android e Android Studio.
O arquivo .setup-env-ubuntu-16.sh ficou configurado da seguinte forma: