蜗牛想要飞By Elec Gao

算是自己来公司的第一个工作。虽然自己很菜,但是还是独立地完成了这个任务。

1.需求

项目描述:搭建一个部门内使用的周报管理系统。

功能要求:1.两个用户组:管理员组和普通用户组。2.普通用户组需要能够提交周报(按照老大指定的格式),查看、修改自己的周报,并且能将周报打印成word文档。3.管理员能够管理所有的用户,查看所有用户的周报(以各种方式,如按单独的用户、按日期查看所有等)。

开发时间:两周。

其他要求不限。

2.具体开发

1)前端界面构建

刚开始来的时候什么都不会,就着书上的例子整,虽然也能实现功能,但是——太丑。就在网上开始找前端框架套。好用的bootstrap。

Bootstrap是twitter公司开发的用于前端开发的开源工具包,风格素雅,功能丰富,很好用。官网有中文和英文的教程。

刚开始来,复杂的css的东西也不太会弄,就试着按照学校的选课系统一样的界面做了一版。进入系统以后就是一个菜单栏,有两个下拉菜单:周报、用户。界面就这样了,主要是要实现功能!

2)后台的功能逻辑

再小的系统也有自己的功能逻辑。周报管理系统的功能逻辑是这样的:

模型层:用户——周报

界面层:交互部分:写周报——存周报——查看周报 用户部分:登陆 登出 创建

控制层:用户和周报的行为(act)函数

3)各版块细分

对于model: 创建了用户模型user_model 周报模型 report_model。不过按照要求,周报是由一个一个项目组成的,为了方便操作,还建立了项目模型project_model。

交互层面上,创建了用户-周报关系模型user_report_model 用户-项目模型 user_project_model 项目-周报模型 project_report_model

对于界面:按照功能要求:写了以下几类界面:登陆界面、主页界面、创建周报界面(按照各项目类别创建,比较多)、查看周报界面、创建用户界面、查看用户界面等。

对于控制:按照几个模型间关联的逻辑写了几个功能函数:project.php user.php。

按要求建立数据库 report.sql 里面的表有report project user以及相互间的关联表。

4)各板块的实现

第一,用户操作。

用户的登陆是一个最简单的表单提交。除了验证码之外,通常就只有用户名和密码。在表单提交后,user功能类中的login会进行处理。(你问我怎么就能调用login?一般两种方法吧,post——定义一个变量为act,给一个value为login,在跳转到user.php后根据value值选择。或者get,直接在form的action里面写上?act=login)。login里面会有各种验证的方法,验证用户名是否存在啊,验证用户名和密码是否匹配啊。由于系统权限设置的是管理员才能创建用户,所以在登陆处就没有设置注册。当用户登陆成功后,会给一些session值,这些值对于后面的操作很有用。比如用户的uid,用户的用户名,is_login量。退出后session值清空。

用户的创建也是一个简单的表单提交。填写相应的表单项,比如用户名、密码、邮箱这些。填完了在add函数里面存入数据库。

查看用户就是把数据库user表里面的用户项列出来。就是遍历每个符合要求的项,读出它们的明细。

第二,用户与周报的交互。

一个周报对应一个用户,当然用户可以创建多个周报,不过周报是由填写时间决定的,一周周期内填写的项目都归于一个周报。

用户在填写周报时是按照项目进行填写的(本周结束项目、本周进行项目、本周开始项目等)。每一个项目都是一个表单,这里就不赘述了。因为填写的项目一周可能有多个,所以需要动态添加(删除)表单。这就需要用到JS了。动态添加表单这里有几个方法,第一种是动态添加表单代码,每点击“添加”一次就在指定位置添加代码,增加一个新的表单;点击“删除”就将该段代码删除。另外,还有用js进行表单合法性验证(表单为空、开始时间比结束时间晚之类的)。

项目提交后,一个表单就形成一个project项。项目的时间周期如果没有一个周报对应,则创建一个新的周报,否则就加入一个存在的周报中。project-report。

用户查看周报时,按照前面提到的session里的uid获取周报库里对应的周报(creater_id=uid)。查看周报就是将对应的周报的明细显示,将周报里的项目一个一个显示出来。

将周报打印成word格式,就是将html按照word输出。没有太多的难点。

在线修改周报。这个需要提一下,这里用了一个js ui里的editable插件。

重要程序:api/project.php user.php

model/user_model.php project_model.php report_model.php user_report_model.php report_project_model.php user_report_model.php

static/bootstrap

etc/config

mySqlExt.php 数据库操作函数

func/index project_create(~~~) user_add user_info report_info

项目的上线:1.申请在服务器上开辟数据库。2.在开发机上建表。3.在开发环境下(我用的是netbeans)上传代码。4.项目上线。开发机上是centOS,之前学过一段时间,但是还是不够熟练,,以后还是需要继续学习。

总结:作为自己的第一个项目,做的不是很好。进度把握不住,编程bug频出。晓琳哥找了我几次,就是讲时间管理和编程习惯。以后编程要严格按照编码规范来,细分进度节点,做到能够掌控项目。

学到的东西:1.php基本语法,面向对象。Mysql操作类里操作函数的熟练使用。2.js的基本使用。3.css的基本使用。4.开发机上Linux环境的常用指令的熟练使用。

继续加油吧,一定要变更强!

版权声明:本文为博主原创文章,未经博主允许不得转载。

接受我们不能改变的一切,改变我们能改变的一切。

蜗牛想要飞By Elec Gao

相关文章:

你感兴趣的文章:

标签云: