====== Desenvolvimento Colaborativo ====== O Sistema Acadêmico está sendo desenvolvido por uma equipe de Analistas de TI lotados na Diretoria de Gestão da Tecnologia da Informação - DIRTI da Reitoria hoje formada por três pessoas que também atuam em outros projetos paralelamente. O desenvolvimento segue as prioridades definidas pela Diretoria de Gestão Acadêmica - DIRGA, que fica diretamente ligada a Pró-Reitoria de Ensino - PROEN, que faz o papel de área de negócio (definição do escopo da demanda, coleta de requisitos básicos, negociação com a área fim, etc.) em todas as questões ligadas ao ensino. Essas prioridades hoje estão listadas em [[https://docs.google.com/spreadsheets/d/1n95tk-dkWqp6bwjHj3lc3w3LupDT_iEOV-5cM2bS_rw/edit#gid=1013508490|uma planilha compartilhada]] entre os envolvidos, com a situação e o aprazamento para cada uma das demandas. ===== Tecnologias utilizadas ===== O sistema é Web e desenvolvido usando: * Linguagem **PHP 5.6.x** (bibliotecas ativas: GD2, php_intl e cURL) * Framework PHP **[[https://cakephp.org/|CakePHP]]** (2.1 na parte administrativa e 3.5 na parte do estudante) * Servidor web **Apache2** (mod_rewrite habilitado, suporte ao PostgreSQL, HTTPs, etc.) * Banco de dados **PostgreSQL 9.5** É recomendável a instalação em máquina com sistema operacional linux (Ubuntu ou Debian) 64bits. ===== Ambientes ===== Temos três ambientes distintos dentro do desenvolvimento do projeto do sistema acadêmico: * **Produção**: ambiente utilizado pelos servidores e estudantes, disponível 24x7 no endereço [[https://academico.ifms.edu.br]]; * **Homologação**: ambiente utilizado para testes e homologação de novas funcionalidades, disponível no endereço [[http://academico-testes.ifms.edu.br]]; * **Desenvolvimento**: ambiente configurado pelo desenvolvedor para programação no projeto. ===== Repositório de código ===== Endereço GIT: [[https://bitbucket.org/ifms/sigaeduext]] (requer permissão de acesso) Branchs oficiais: * **master**: //branch// principal que contém o código atualmente em produção (código testado e homologado); * **homolog**: //branch// para consolidação dos códigos disponíveis para homologação; Toda alteração deve ser documentada (comentários, etc.) e os //commits// devem sempre conter uma descrição concisa com a alteração que está sendo submetida. Todo código antes de ser adicionado as //branchs// oficiais deve ter sido feito o //merge// com a //branch// em questão antes para evitar conflitos. Os colaboradores do projeto poderão submeter códigos apenas para a //branch// **homolog** e criar //pull request// quando quiserem fazer //merge// com a //branch// master que passará por avaliação antes de sua aplicação. Para ter acesso a branch **homolog** o colaborador deve fazer o seu cadastro no Bitbucket e encaminhar solicitação de participação no projeto para sd@ifms.edu.br informando o nome do usuário ou email. ===== Definição do que será desenvolvido ===== O desenvolvimento do sistema é guiado pela lista de demandas mantida pela DIRGA. Ela é definida com base nas solicitações dos usuários em alinhamento com o planejamento estratégico da instituição. Todas as demandas são pensadas de forma sistêmica a fim de atenderem a todos os //campi// da mesma forma. A prioridade de cada demanda também é definida pela DIRGA em conjunto com todos os //campi//. Portanto a equipe segue o desenvolvimento demanda por demanda conforme disposição na planilha, exceto os casos em que existe a necessidade de priorização de demanda em razão de alterações na legislação, recomendação por órgão de controle ou mudança na estratégia da gestão. As demandas desenvolvidas pelos colaboradores devem ser alinhadas previamente com a DIRGA e comunicadas a equipe de desenvolvimento para acompanhamento. ===== Homologação ===== A homologação das funcionalidades feitas pelos colaboradores será de responsabilidade da área de negócio, cabendo a ela os testes e a autorização para a sua entrada em produção. ===== Documentação ===== O sistema acadêmico é utilizado por diferentes pessoas dentro da instituição o que exige uma série de preocupações quanto a política de acesso, permissões e comunicação dos usuários a respeito do funcionamento de cada parte do sistema. Para que esse entendimento do sistema seja de fácil acesso a todos contamos com um ambiente de documentação do sistema, que hoje é a [[http://sistemas.ifms.edu.br/catalogo/sistema_academico:pagina_inicial|wiki do catálogo de sistemas]]. Sempre que uma nova funcionalidade for desenvolvida ou houver a alteração de alguma tela/procedimento é preciso que o processo de cadastro/operação dentro do sistema seja documentado de forma que o usuário tenha ciêcia de como proceder. ===== Ambiente de desenvolvimento ===== [[Criação de ambiente de desenvolvimento]] ===== Alterações no banco de dados ===== Sempre que for necessária alteração no banco de dados elas devem ser acrescentadas ao arquivo "database_update.sql" do Projeto, para que quando for para o ambiente de produção/homologação essas alterações sejam aplicadas.