PureWebIn
简单的图书管理系统 完成一个小型的图书管理系统。不会很难, 不要担心,在上课结束后我会统一说明要求。
写在任务之前 正常的管理系统都有crud(create、read、update、delete)操作,为了简化程序,这里只需要read操作 本次任务可以不使用数据库,所以数据以json的格式预存到本地,当然使用数据库更佳。 系统的视觉稿在附件中可以得到,为了大家方便,这次仅用png图片格式,大家只要做出大致效果就ok。当然你可以设计自己的图形界面 如管理员登陆身份验证,你只需要发一个get请求到本地服务器,然后取本地管理员的数据进行比较验证 如图书所有信息可以以json的数据格式存在一个js文件中,然后需要时发相应的get请求获取 登陆页
包括用户名和密码两个用户字段 前端表单验证包括邮箱格式 后台登陆验证管理员身份,是管理员进入系统,否则停留登陆页,并给予提示。 所有书籍展示页
支持分页功能 支持类型检索 单本书籍展示页
展示的书籍详情页应该至少包括作者(author)、出版日期(pubDate)、书名(name)、价格(price)、类型(type)、书籍标示(id)等信息 需要展示书籍的所有字段信息 一本书籍有多个图片展示,点击图片切换时添加CSS3动画切换效果,具体效果可以自定义 检索功能
在书籍展示页添加一个搜索框 搜索框监听keyup事件,当keyup时,向后台发送一个请求,同时将搜索框中的内容与本地预存的数据进行模糊匹配,在检索结果页面展示相应检索信息 写在任务之后
当你到公司工作你会发现,几乎所有的公司都有一套内部完整的体系,从前端到后端,这些框架可能是自主编写的,也可能取材于开源框架,然后做一些修改,但对与大部分新人来说,都是全新的、没接触过的内容,在熟悉的过程中,你必须不断地查文档、检索资料、独立完成这一过程 本次任务语言不限、框架不限,但提交之前请附上你的系统运行的各界面截图、环境安装说明、使用文档 对于没有头绪的同学你可以使用以下框架之一: Angular Backbone 提交内容包括:
可运行系统相关的所有文件 回答以下问题,以pdf格式提交 开发过程中你遇到的问题以及如何解决 对于一些功能你的优化 程序和pdf文件压缩打包并以姓名+学号+联系方式方式命名发至kgtong@163.com,提交截止时间为11月28日, 根据大家完成的作品我们会挑选出一批同学加入我们,有任何问题可以回复此邮件。
PureWeber期待你的加入~
本代码为进入PureWeb之前的测试,小白正在努力中ing……打算进入PureWeb学习
图书管理系统
---设计实现文档 姓名 xxx
学号 xxxx
学院 计算机科学与技术
日期 2014-11-28
哈尔滨工业大学 pureweber
一、 测试环境
系统:Windows7 X64(sp1)
运行环境:Wamp(Apache2.2.21+PHP5.3.10+MySQL5.2.20)
测试浏览器:Chrome38(x64) 和 360安全浏览器(7.2.1)
二、 功能设计
- Install
程序安装模块,将分为两种安装模式:1.自行建立数据库,导入提供的.sql语句。2.运行install.php脚本,自行安装数据库(数据库的user和password需要自行修改配置文件)
- Login
实现基本登录页面,如果没有输入内容则返回提示,如果有输入内容则进行判断,正确则进入系统,否则返回登录页面。
- Create
此模块为图书的添加模块,包含信息有书名(bookname)、作者(bookauthor)、简介(bookdes)、类型(booktype)、出版日期(bookdata)、定价(bookprice)。
- Delete
此模块为图书的删除模块、运行后将直接删除图书信息。
- Update
图书更新模块、填写新数据,将直接更新数据库内容。并将提示刚才的填写是否进行了更新操作。完成操作之后将返回主界面。
- Read
图书详细信息模块,实现方式基本和Update基本一样。
- 分类检索
图书分类检索模块,将按照不同的图书类别(booktype)进行分类展示。
- 图片切换特效
用css3等前端技术展示图书切换效果。达到良好的视觉影响效果。
- KeyUp查询
用keyup对按键进行扫描,进行对图书按照搜索关键词进行全局搜索。
- 分页
执行分页操作,即当图书较多的时候以分页的形式展示。
三、 代码结构
——|css
——|css|style.css
——|image|1.jpg
——|image|2.jpg
——|image|3.jpg
——|image|4.jpg
——|image|5.jpg
——|image|arrow.png
——|js|jquery-1.7.1.min.js
——|js|loginjudge.js
——|js|Modernizr.js
——|php|add.php
——|php|conn.php
——|php|login.php
——|php|search-auto.php
——|php|uodate.php
——|add.php
——|book.list.php
——|delete.php
——|index.php
——|install.php
——|update.php
四、 功能实现
- Install
a) 1.手动建立数据库
事先导出sql类型的数据库文件,然后用phpmyadmin等工具进行数据库的导入(数据库名为:bookmanage)。配置文件在(php/conn/php)
b) 2.运行install.php脚本进行数据库的建立
事先修改相关文件(install.php与php/conn.php)的数据库连接信息,然后在保证777权限的情况下运行install.php脚本,即可完成数据库建立于安装。
- Login
用JavaScript进行form表单input标签里面value内容的判断,如果数据为空,则返回alert提示信息,不进行后台交互。 如果均输入内容,将value值传送到php/login.php,进行判断,如果值和后台的值相同,则用JavaScript跳转到book_list.php;如果值不同,用JavaScript跳转到index.php。
- Create
图书添加模块,实现方式为:填写form表单,POST方式进行传送数据至php/add.php,执行相关SQL语句,进行Insert操作。
- Delete
图书删除模块,点击删除的button,POST传值ID至php/delete.php,执行SQL的delete操作。
- Update
图书更新模块,首先进行数据库的查询,在update.php进行显示之前的值,然后填写数据,点击button传值至php/update.php,进行数据库SQL的update操作。
- Read
图书展示模块,实现基本和Update一样。
- 分类检索
点击不同的分类,进行ID的GET传值,在SQL语句中加入where限制条件,进行限制查询。
- 图片切换效果
用css3和Jquery对图片切换效果进行修饰,目前切换效果为“爆炸”效果。
- KeyUp查询
当键盘进行KeyUp时,用JS(Jquery)向php/search-auto.php进行传值,实时显示查询效果,在SQL查询时,进行limit限制。
- 分页
把查询到的东西放在列表中,进行限制,选择输出的内容。(目前功能没有完全实现,分页可以显示,但点击相应的页数无法进行限定值的检索)
五、 功能测试
- 脚本建立数据库:
执行install.php脚本自动建立数据库
登录
图书检索
分类检索
图书删除
图书更新
图书增加
图片切换
KeyUp搜索
分页
六、 设计不足
- 样式问题
对css的控制不好,导致样式显得单一,难以适应多变的浏览器。
对js没有较好的认识,导致对js的控制显得很是困难,最后运了jq的相关内容。
- 安全问题
没有做做相关的检查工作,存在SQL注入等漏洞。
- 代码问题
在开始阶段没有对程序做一个比较统一的认识,导致在开发过程中遇到很多比较纠结的东西
- 后续改进
程序对分页没有进行100%的完成,可在后序的过程中改进;页面的布局显得杂乱,可以进行修正;代码没有良好的注释和模块规划,显得不优雅。
七、 感想
在整个设计中,有很多地方显得很是不成熟,现做如下总结:
知识储备方面:自己对WEB的接触是从大一的Django开始,但当时做的事情很是低级,甚至连初级的html,css都不会写,粗略的完成了作业。对PHP的接触是从5月份开始,WordPress是我的入门导师,不过做的东西也就是用用别人的东西,基本上全部是抄袭,这儿加个代码,那儿加个代码,完全没有学习性。国庆试着改了一下别人的代码(基本上就是变量修改,html css修改),对MySQL的操作只是看看了,也不是很懂。这次的作业完全就是恶补多种东西,在W3CSCHOOL上看了一些PHP的东西,但都是比较基础了,后来发现Mysql的初级使用也不是很难,于是就放弃json,开始用Mysql。在整个过程中,时时碰到不会的问题,百度,谷歌,一些技术博客也就成了好朋友,先后看懂了一系列的操作(比如GET与POST传值,JQUERY实现搜索功能等)。开始明白这些工作的强大,一旦好好利用,就能在前人造的轮子上前进一大截,完全不需要其他人的帮助就可以在网络上完成知识的学习。
知识学习方面:发现一个重要的东西——用什么就学什么。我们学的东西非常多,但一个项目需要的东西是有限的,完全学会一个东西的代价是巨大的,可以在基本了解的基础上进行现学,如果精力比较集中的话,成功还是很可观的。
代码构思方面:一年半来一直有个很是错误的观念,写代码的时候想写什么就写什么,在这次的设计过程中充分的意识到这种方法的坏处-在需要的时候就发现前面做的是无用功,甚至是阻挡的东西。在以后的设计中一定要规划处准确的设计方案,这样设计开发才能有条不紊的进行。
学习结果方面:没有用任何框架(后面迫不得已用了JQ),完成了很基础的“图书管理系统”。虽然这个作业在各种语言上都是很基础的入门项目,但我觉得还是锻炼了我的很多能力,比如自学能力,寻找答案能力,甚至是deadline高能量能力……说的精确一点,学了一些css的布局问题,PHP的基础语法与PHP渔MySql的联合使用,比较简单的js操作等。
写在最后:这基本上是第一次独立的完成了一个小的项目设计,在整个过程中体验比较深刻。虽然对学长要求的东西没有完全实现(分页存在问题),但没有用任何的框架,都是用最基础的语言来实现的(JQ除外),整个过程完成之后感觉很是充实,毕竟学到了很多东西。 希望我能加入pureweber,更好的提升自己。