30 dias para terminar uma aplicação web com CakePHP

153 8

Pessoalmente, não gosto muito de trabalhos com prazo, mas devo reconhecer que isto ajuda muito quando o assunto é tentar alcançar um objectivo. Colocamos na mente que há alguém a espera do trabalho que estamos a fazer, e o mais importante, que ele está a espera de um trabalho com qualidade. É nesta situação que me encontro agora!

O facto é que estou neste momento desenvolvendo uma aplicação que servirá para a avaliação do desempenho de docentes e investigadores em uma instituição de ensino superior, e como já podemos imaginar, tem de ser uma aplicação web,etc. Etc. O prazo para entrega é 30 de Junho.

O que é preciso fazer?

A tarefa, como já havia escrito, é desenvolver, ou melhor, informatizar um sistema de avaliação de desempenho de docentes e investigadores de uma instituição do ensino superior. O sistema é composto por fichas de auto-avaliação, que devem ser preenchidas pelos próprios docentes, e fichas de avaliação qualitativa, que são preenchidas pelos superiores hierárquicos destes docentes. Tem ainda a avaliação do docente pelo estudante, que são preenchidas pelos estudantes.

Já dá para ter ideia dos níveis de utilizadores que preciso ter no meu sistema: Administradores do Sistema, Avaliadores de Docentes, Docentes e Estudantes. Cada um com o seu tipo de previlégios e níveis de acesso. Os docentes estão ainda divididos em categorias como professores, assistentes, assistentes estagiários e investigadores, onde cada um deve preencher a sua própria ficha.

A ficha é composta por questões, cada um com a sua pontuação de acordo com as resposta dada. No final calcula-se a soma das pontuações, para ter a pontuação final da ficha. Algumas fichas possuem ainda um coeficiente de ajuste da pontuação final.

A classificação final de avaliação de um docente é dada por uma fórmula que envolve a auto-avaliação, avaliação qualitativa e a média das avaliações de todos os estudantes que avaliaram tal docente.É claro que o sistema tem de gerar uma série de relatórios de acordo com os níveis do utilizador que os solicita.

Fase 1: Desenvolvimento de um módulo XOOPS

Como a primeira vista, este trabalho não me parece muito complexo em termos de desenvolvimento, basta entender a lógica do processo de avaliação, decidi apostar numa ferramenta simples: um módulo para o CMS XOOPS resolveria o problema. Desenvolvi o módulo, e ele chegou até a estar pronto para testes Beta e posteriormente implementação oficial.

Este módulo do XOOPS está pronto para ser usado, faltando apenas implementar a parte do acesso dos estudantes que ainda não está muito claro logicamente. Gera alguns relatórios básicos em PDF e estava até a pensar em gráficos usando jpgraph ou google, mas que ainda são só ideias.

E ai aparece o CakePHP

Apesar de ser funcional, o módulo XOOPS tem o problema de depender do próprio CMS, o que pode não ser problema agora, mas no futuro com certeza será. Também, tenho muitas tabelas inúteis na base de dados, código desnecessário no core do sistema, etc.

Conheci a pouco tempo o excelente Framework PHP, o CakePHP, pelo que pude notar, ele oferece uma forma rápida e fácil de desenvolver aplicações web com PHP, e então decidí testar, ou até quem sabe passar o meu sistema de avaliação de desempenho de docentes para CakePHP, o que vai me oferecer controle total sobre aquilo que estou a desenvolver, sem falar na extensibilidade que poderei dar para o sistema no futuro.

A questão aqui é: Tenho 30 dias para terminar o projecto, logo tenho 30 dias para desenvolver o sistema usando CakePHP. Pela minha pouca experiência com o Framework, posso dizer que 30 dias são muito mais que suficientes para terminar este projecto, testar e entregar ao cliente com o mínimo de bugs ou features ainda por implementar. Se calhar estou a ser optimista demais, mas creio que não!

Não precisarei me preocupar com a modelação do sistema, já que usarei a mesma lógica que estava no módulo XOOPS. O Bake vai criar o esqueleto para mim, e só precisarei implementar as fichas de avaliação, a página de perfil personalizado e ainda os relatórios. Até agora que escrevo este texto, já tenho a página de perfil pronta, e estou a criar as views para as fichas de avaliação. Tentei usar o ExtJS, mas não tive sucesso, logo vou ficar no HTML mesmo!

Dor de Cabeça: Autenticação e permissões

Na verdade autenticação não será nenhuma dor de cabeça, mas o controle de acesso pode ser. O Sistema ACL do CakePHP ainda está meio dificil de entender, e não encontrei ainda uma solução para importar a lista de docentes do Excel para o Sistema tendo que preencher os acos e aros do Cake. Se calhar encontre ajuda em algum fórum da Internet e resolva este que me parece ser o único calcanhar que Aquiles tinha!

Vou colocando Updates aqui, sempre que existirem. Se quiser acompanhar o processo de desenvolvimento deste sistema, siga o Techmoz no Twitter ou inscreva-se via RSS usando o ícone que está na barra de menús lá em cima!

(Visited 39 times, 1 visits today)

Elisio Leonardo

Elisio Leonardo is an experienced Web Developer, Solutions Architect, Digital Marketing Expert, and content producer with a passion for technology, artificial intelligence, web development, and entertainment. With nearly 15 years of writing engaging content on technology and entertainment, particularly Comic Book Movies, Elisio has become a trusted source of information in the digital landscape.