TemRemedioAí
Introdução
[editar | editar código-fonte]Contexto
[editar | editar código-fonte]O aplicativo “Tem Remédio Aí?” tem como objetivo facilitar o acesso à informação da disponibilidade de medicamentos em Unidades Básicas de Saúde, Hospitais e Farmácias de Alto Custo da Secretaria de Estado de Saúde do Distrito Federal. Tendo informações sobre os remédios e a possível disponibilidade dos mesmos nas unidades básicas de saúde. Disponibilizando também as informações sobre as unidades básicas, como endereço, telefone e podendo gerar a trajetória pelo Google Maps. Os usuários podem informar se acharam ou não o remédio em uma determinada unidade básica, assim outros usuários podem visualizar se alguém conseguiu ou não o remédio.
Objetivo
[editar | editar código-fonte]- Esta página tem como objetivo acompanhar a Gerência de Configuração de Software (GCS) do projeto, como cronograma, pápeis, integração contínua.
Visão Geral
[editar | editar código-fonte]O aplicativo possui as seguintes funcionalidades:
- Informa disponibilidade do remédio.
- Gerar trajetória.
- Login.
- Cadastro.
- Usuário informa disponibilidade.
A aplicação foi desenvolvida para Android, utilizando as seguintes ferramentas:
- Android Studio
- Parse Server
- MongoDB
Componentes
[editar | editar código-fonte]Nome | Matrícula |
---|---|
João Pedro de Lima Pereira | 14/0145826 |
Vinícius Borges de Almeida | 15/0151225 |
Repositório
[editar | editar código-fonte]- O repositório do aplicativo com a GCS se encontra no GitHub.
- O repositório original do aplicativo se encontra no GitHub
- O aplicativo se encontra publicado na Google Play.
- O repositório do script de instalação do ambiente de desenvolvimento do projeto se encontra no GitHub.
Gerenciamento de Configuração de Software
[editar | editar código-fonte]Cronograma
[editar | editar código-fonte]Milestone | Período | Atividade | Status |
---|---|---|---|
Planejamento | 20/09 ~ 26/09 | Fazer plano de GCS | Concluído |
27/09 ~ 03/10 | Pesquisar ferramentas a serem utilizadas | Concluído | |
Preparação | 04/10 ~ 17/10 | Alterar a política de branches | Concluído |
18/10 ~ 28/10 | Criação de um script para instalação do projeto | Concluído | |
29/10 ~ 07/11 | Configuração do Jenkins para build do código | Concluído | |
07/11 ~ 14/11 | Configuração do Jenkins para testes | Concluído | |
Apresentação | 14/11 | Ponto de controle do andamento do projeto | |
Execução | 15/11 ~ 18/11 | Geração de builds a partir dos pushes no GitHub | Concluído |
19/11 ~ 28/11 | Realização de ajustes | A realizar | |
Apresentação | 28/11 | Entrega final do projeto |
Papéis
[editar | editar código-fonte]Papel | Responsabilidade | Responsável |
---|---|---|
Gerente de Configuração de Software | Acompanha as mudanças nos itens de configuração do software | João Pedro e Vinícius B. |
Ferramentas, Ambiente e Infra-estrutura
[editar | editar código-fonte]Ferramenta | Descrição |
---|---|
Github | Repositório remoto, para controle de versão |
Android Studio | IDE para desenvolvimento da aplicação |
Jenkins | Ferramenta de integração contínua |
Parse Server | Server para o parse das informações do app para o banco |
MongoDB | Banco de dados remoto |
Google Drive | Repositório de documentos |
Resultados do Projeto
[editar | editar código-fonte]Política de Branches
[editar | editar código-fonte]A política de branches utilizada anteriormente era de uma branch master e uma branch para cada dupla pareada no desenvolvimento do aplicativo. Neste projeto ela foi alterada, deixando apenas a branch master, que abrigará o código utilizado para gerar as builds automatizadas pelo Jenkins, ferramenta de integração contínua escolhida, e uma branch para cada funcionalidade a ser desenvolvida no projeto. Desta forma, as builds do projeto serão geradas a cada novo commit realizado na branch master.
Script de Instalação
[editar | editar código-fonte]Com o objetivo de facilitar a instalação do ambiente de desenvolvimento, criamos um script para Ubuntu que realiza as seguintes operações:
- Muda a cor do texto apresentado no Terminal para amarelo;
- Adiciona os repositórios do Java Development Kit e Android Studio;
- Instala o JDK e o Android Studio;
- Instala bibliotecas adicionais caso a versão do sistema seja de 64 bits;
- Cria a pasta de projetos do Android Studio;
- Copia os arquivos do repositório do Git para a pasta de projetos;
- Cria um atalho do Android Studio na Área de Trabalho;
- Inicializa o Android Studio.
#!/bin/bash
#Definindo a cor amarela
YELLOW='\033[1;33m'
#Definindo a falta de cor
NOCOLOR='\033[0m'
#Consultando a versão do sistema
VERSION=`uname -m`
#Definindo a versão desejada
TARGET_VERSION="x86_64"
#Definindo o caminho da pasta de projetos do Android Studio
PROJECTS_FOLDER="/home/$USER/AndroidStudioProjects"
#Definindo o endereço do repositório remoto do projeto no GitHub
PROJECT_REPO="https://github.com/jplpereira/GCS-TemRemedioAi.git"
echo -e "${YELLOW}#################################################################################################################"
echo "Iniciando a instalação do projeto TemRemedioAi"
echo "Adicionando repositórios"
sudo add-apt-repository ppa:webupd8team/java
sudo add-apt-repository ppa:paolorotolo/android-studio
sudo apt-get update
echo "Instalando o Java Development Kit"
sudo apt-get install oracle-java8-installer
sudo apt-get install oracle-java8-set-default
echo "Instalando o Android Studio"
sudo apt-get install android-studio
Instalando bibliotecas adicionais caso a versão do sistema seja de 64 bits
if [ "${VERSION}" == "${TARGET_VERSION}" ]; then
echo "Seu sistema é de 64 bits. Será necessário instalar algumas bibliotecas"
echo "Instalando bibliotecas"
sudo apt-get install lib32z1 lib32ncurses5 lib32bz2-1.0 lib32stdc++6
else
echo "Seu sistema é de 32 bits. Não será necessário instalar outras bibliotecas"
fi
echo "Criando a pasta de projetos do Android Studio"
sudo mkdir $PROJECTS_FOLDER
echo "Clonando o projeto do GitHub"
cd $PROJECTS_FOLDER
sudo git clone $PROJECT_REPO
echo "Criando atalho para o desktop"
echo -e "[Desktop Entry]\nVersion=1.0\nType=Application\nName=Android Studio\nExec='/opt/android-studio/bin/studio.sh' %f\nIcon=/opt/android-studio/bin/studio.png\nCategories=Development;IDE;\nTerminal=false\nStartupNotify=true\nStartupWMClass=android-studio" >> ~/.local/share/applications/androidstudio.desktop
echo "Inicializando o Android Studio"
./opt/android-studio/bin/studio.sh
echo -e "#################################################################################################################${NOCOLOR}"
Jenkins
[editar | editar código-fonte]Para fazer a build automatizada do projeto utilizamos o Jenkins CI, ferramenta de integração contínua. Ele se encontra instalada localmente em uma das máquinas do grupo. Tivemos vários problemas em gerar as builds, pois várias dependências do projeto estavam desatualizadas, assim como outros erros que não estavam permitindo que o build da aplicação fosse realizado no Android Studio. Após a resolução desses problemas, cada build gerava um erro, que por fim foram todos solucionados, enfim permitindo a geração do build do projeto que incluem tanto as dependências do projeto, como também a suíte de testes, fazendo com que, desta forma, o build da aplicação só seja realizado caso todos os testes passem. O gatilho de geração de build é realizada a cada commit na branch master do projeto. Nada foi automatizado para o pós-build, pois por enquanto o projeto está parado, ou seja, não existe uma equipe continuando o desenvolvimento da aplicação, fazendo com que deixássemos essa opção para o futuro.
E segue o ultimo log de build: