No workflow pensado para o processo de monografia, resumidamente, tínhamos:
aluno envia o projeto de TCC.
coordenador aprova
aluno envia a mono da banca
aluno envia a versão final
coordenador aprova
Contudo, os coordenadores levantaram alguns problemas na gestão do processo de monografia e que podem atrapalhar o trabalho deles:
O aluno pode enviar o projeto de TCC e depois informar a banca sem ter enviado a monografia e o sistema informará que o trabalho está já aguardando aprovação
O aluno pode ter enviado a monografia e informado a banca e depois defendeu. Mas pode não ter enviado a versão final da monografia e o coordenador não saberá se a versão que está no sistema é a versão final ou não.
Esse foi um erro que ocorreu na especificação do workflow e que temos que resolver agora.
Para resolver o problema 1
Uma ideia seria forçar o aluno a enviar um novo PDF depois que o projeto foi aprovado. Neste caso, tem algumas soluções de código:
quando o projeto for aprovado, apagar o projeto do banco para que o sistema peça novo PDF quando for editar a monografia [solução muito ruim]
guardar a data que o coordenador aprovou o projeto e se ela for posterior ao envio do PDF, forçar o aluno a enviar novo PDF. [solução média]
ao invés de guardar somente 1 PDF por trabalho, permitir que o banco armazene 2 PDFs: um de projeto e um de monografia (caso já não esteja assim). Assim, quando aprovar o projeto, o sistema passaria a checar o campo de monografia se ele está preenchido ou não. [melhor solução].
A ultima solução, embora seja a melhor, possui diversas implicações para o sistema que precisam ser alteradas:
ao apagar tcc, teria um arquivo a mais pra apagar
ao editar/ler monografias, teria que exibir um ou outro campo dependendo do estado do trabalho.
ao submeter PDFs, teria que gravar o PDF em um ou outro campo dependendo do estado do trabalho.
os estados do trabalho (TAA, PAA, etc) terão que ter seus IFs alterados.
Na tela do coordenador, ao abrir um trabalho, poderia ter a opção do coordenador ver também o projeto de TCC do aluno.
Para resolver o problema 2
Pensamos em algumas formas de resolver esse problema, mas todas tinham falhas que o aluno poderia explorar caso queira burlar o sistema. Então resolvemos que podemos resolver o problema de forma mais simples:
O aluno tem que informar ao sistema que ele enviou/está enviando a versão final da monografia.
Só depois que o aluno informou que é a versão final da monografia, o trabalho vai para TAA.
O aluno só pode informar que é a versão final após a data da defesa.
Após a data de defesa, quando o aluno clicar em enviar PDF, apareceria a mensagem para ele: "Você está enviando a versão final do seu trabalho?". Caso ele informe que SIM, apareceria outra mensagem: "Atenção, após submeter a versão final do seu trabalho, ele não poderá mais ser alterado. Deseja continuar?".
Descrição do problema
No workflow pensado para o processo de monografia, resumidamente, tínhamos:
Contudo, os coordenadores levantaram alguns problemas na gestão do processo de monografia e que podem atrapalhar o trabalho deles:
Esse foi um erro que ocorreu na especificação do workflow e que temos que resolver agora.
Para resolver o problema 1
Uma ideia seria forçar o aluno a enviar um novo PDF depois que o projeto foi aprovado. Neste caso, tem algumas soluções de código:
A ultima solução, embora seja a melhor, possui diversas implicações para o sistema que precisam ser alteradas:
Para resolver o problema 2
Pensamos em algumas formas de resolver esse problema, mas todas tinham falhas que o aluno poderia explorar caso queira burlar o sistema. Então resolvemos que podemos resolver o problema de forma mais simples: