CakePHP的项目管理路径

时间:2022-01-18 08:29:08

CakePHP的项目管理路径

1论述

1.1系统总体设计项目管理系统是对项目的生命周期进行监控、流转和执行的软件系统。科研计划项目申报管理系统的开发,通过运用现代计算机及网络技术,实现科研项目申报及管理,规范科研项目的管理工作,对于减少申报单位的工作量,提高项目申报的效率,促进科技管理工作内部信息化程度,形成规范管理、运转协调、公正透明、廉洁高效的行政管理体制有着重要意义。本文探讨基于CakePHP的项目管理系统,主要是针对大学生创新创业训练计划,实现项目申报、项目评审、项目(实施)管理、项目监控、技术交流等功能,并力图通过该项目的实施服务全校师生,促进创新创业思维、方法、模式的改进,推动学校在创新创业方面的各项事业全面发展。本系统生命周期从项目开始,经历申报、评审、立项、进度评审、验收与结题等环节。根据各环节的特性,我们将项目管理系统的所有流程环节归为申报、评审、监控、管理四大功能模块。PHP语言因为其开源,跨平台等优势,在Tiobe开发语言市场占有率中近年来一直都排名前六位。Alexa中文网站排名前500的公司,有394家都使用PHP语言。作为最流行的PHP开发框架之一,CakePHP运用了诸如ActiveRecord、AssociationDataMapping、FrontController和MVC等著名设计模式的快速开发框架,除可以有效减少开发成本外,还可以帮助开发人员解决繁琐的代码编号问题,提高开发速度;同时其具有较强的灵活性、扩展性以及兼容性。因此本项目采用CakePHP框架进行开发。

1.2项目申报模块本模块主要用于大学生创新创业训练计划的申报管理。申报管理模块是整个系统的核心功能模块之一,主要包括申报模板设置、申报入口开放、项目申报、项目评审等内容。项目申报具体流程。在项目时,需要设置项目进行过程中所用到的参数,要使这些参数生效,必须在项目各个环节使用规则控制。在典型的MVC框架的系统中,一般采用控制层拦截器的形式,在请求的操作执行之前读取预设参数,判断当前操作是否符合项目规则的方式实现此功能。此外,申请环节提交的数据按照项目类型分组可以提高查询效率,通常使用动态创建文件目录的方式保存上传文件,例如按照索引编号每100个存储于同一文件夹下,数据库中则根据项目届次分数据表存储申报数据。当用户在申报环节提交申报数据后,系统后台需要检验用户是否具有申报权限,对数据的合法性进行校验,从数据库中读取项目规则信息,完成以上工作后才真正保存数据信息。要保存的数据信息包括数据库数据和相关文档,保存这两种信息的操作在时间上互斥,逻辑上必须保证全部成功,否则两种操作一并无效。这时就需要系统支持事务管理功能,事务管理是指对包含多步操作的事务进行捆绑式操作,在事务执行过程中如果抛出异常,系统就会自动还原之前的所有操作。目前主流的应用程序框架,如Spring、ZendFrameWork,都提供了事务管理功能,利用此功能可以大幅提高系统的健壮性。而对于纯数据库操作,也可使用存储过程来替代事务管理的功能,数据库存储过程的实质就是部署在数据库端的一组定义代码以及SQL。将常用的或很复杂的工作,预先用SQL语句写好并用一个指定的名称存储起来,那么以后要使用相同的功能服务时,只需调用execute即可自动完成命令。这种越接近底层的操作,执行效率越高。

1.3项目评审模块项目申报提交之后需要对申报内容进行审核,评估项目可行性,只有通过审核的申报才能在线建立项目组。审核通常是采用多人评审打分的方式,根据计分规则计算最终得分,筛选出预选名额前若干名或者达到分数线的项目申报。因为这种筛选主要是为了提高审核效率、规范制度,所以得出的结果往往只是参考依据或者最低标准,因而最终的立项权限应当交付给管理员或者评审专家代表。除了项目申报评审,项目周期中的重要环节都应当提供评审功能,从而提高项目的质量,体现管理系统的规范性。譬如,实现中期评审和结题评审,控制项目的整体进度,必要时可对进度较慢的项目进行提醒或及时淘汰掉不合格的项目。评审专家库的建立和管理是其中一项主要的功能,本系统可以在线逐条录入专家信息;同时提供Excel导入功能,指定Excel格式的文件可以批量导入专家信息;也可以在线删除(可批量删除)、修改专家信息。在项目评审的具体细节方面,项目组成员提交的周报、月报也必须经由项目负责人或项目指导教师审核后生效。在项目的各评审环节中,需要管理员、评审专家、项目成员的共同配合,为了实现根据预设规则环节自动流转、任务委派功能,本项目引入工作流的概念,并采用开源的CuteFlow作为工作流引擎,较好地满足了系统的灵活性和可扩展性。

1.4项目监控模块项目监控模块是项目管理系统体现其效率性、智能性的关键点,好的监控模块应该拥有高效的数据统计、简洁明了的数据呈现和优秀的数据分析功能。监控的主要目的是把数据信息集中展示给用户。在项目管理系统中,管理员需要查看项目的申报、评审、进度统计信息,项目负责人则需要本项目组的进度、任务、报表相关数据,同时还要拥有实用的拓展功能,在“大学生创新创业项目申报管理系统”的监控模块中提供了可定义的统计选项、数据警戒线、统计信息导出、站内信提醒等功能。为了直观地展示监控数据,系统的前端界面采用了JQuery框架,并集成JPlot插件以图表的形式展示监控数据;系统中提供了饼状图、折线图、统计图等多种图表以及图标缩放、事件响应、定时刷新等交互功能。复杂监控功能的实现依赖于数据的采集,项目管理系统的数据来源主要是项目、进度状态数据,申报、评审日志和数据库统计。项目、进度、任务等实体类都拥有状态标识字段,监控模块通过读取数据库中的相关字段可以快速显示具体的项目信息;人员变动、报表上传、进度变更等事件都可以通过日志的形式记录下来,并过滤、提取有用的信息;而数据库统计则通过SQL数据库的查询功能与程序控制实现。日志系统的应用集中在项目组管理功能上。项目组的项目成员、周报月报、进度任务、共享文档等数据均需要进行日志记录,记录内容包括操作人、日期、操作对象、补充信息等部分,在控制层的相关操作的代码部分调用日志保存功能,存储操作记录。数据库统计则使用SQL语言自带的查询功能,实际系统开发中直接使用字符串拼接的SQL语句进行查询,容易受到SQL注入式攻击。本系统所用的CakePHP框架,将数据库对象封装成类,而该类提供了SQL查询接口,这种查询接口会过滤掉输入的危险字符串并拼接成安全的SQL语句,提高了系统安全性,同时避免了开发过程中重复编写查询语句的问题。

1.5项目管理模块本模块是项目管理系统的核心,主要用于项目负责人和指导教师对大学生创新创业训练计划已立项项目的管理。项目负责人可以在线编辑项目计划、进度安排,可以进行任务分配;项目组成员可以在线填写个人项目计划、进度安排、个人项目实施日报、周报、月报;项目负责人可以查阅、审批汇总后的项目组成员日报、周报、月报,并根据汇总后的项目组成员周报、月报形成项目组周报、月报;指导教师进行项目组周报、月报的查阅、审批;项目负责人进行项目中期汇报、结题申请等。上传文件管理是很重要但又容易被疏忽的部分,根据实际情况的不同,项目管理系统中文件的组织方式也对应发生变化。申报书、评审报告书等文档可以存档、汇总,同时可以导出XLS文档,但是一般不能轻易公开。为确保数据的安全性,本系统使用了文件内容与文件信息分离保存的方式,保证除了经系统允许的操作外很难获取完整的项目资料,同时为每份上传的文件进行MD5验证,避免文件被篡改或者损坏。同时,为了解决可能出现的意外情况而导致文件丢失或者数据读写高峰期出现数据重复提交、脏读取等问题,系统还提供了数据冗余性检测功能,方便管理员维护上传文件。

2结束语

本文所实现的大学生创新创业训练计划项目申报管理系统面向大学生科技团体和个人,针对性强、适用面广,不仅拥有项目申报的功能,还能进行项目的管理以及项目的监控;在线项目申报和评审有利于计划实施的公平公开,项目管理能够协助大学生科研团体进行项目控制和实施管理,项目监控能够在计划实施中尽早发现风险问题,避免因为大学生进度控制经验的缺乏而导致项目的最终失败。本系统的应用对于保障和提升大学生创新创业训练计划的实施效果具有十分重要的意义,因此具有良好的推广前景。由于大学生科研项目具有学科门类多的特点,不同学科在管理流程上不尽相同,接下来将考虑本系统应用工作流程建模的技术来满足不同学科的个性化管理需求。

作者:陈翔宇叶岩明陈临强余日泰单位:杭州电子科技大学软件工程学院