技术栈和环境说明
图书借阅管理系统用户端是基于微信小程序, 本系统是分为用户和管理员两个角色,其中用户的主要功能有注册登陆小程序,查看系统功能,图书搜索,图书分类,图书在线借阅,查看图书借阅记录,在线留言,图书归还,缴纳罚金等信息。管理员对图书管理,图书分类管理,图书借阅管理,图书续借管理,图书归还管理,缴纳罚金该你了,留言板管理,公告和轮播图管理。
系统分为用户和管理员两个角色
用户微信小程序端的主要功能有:
1.用户注册和登陆小程序
2.查看系统的公告信息
3.用户查看图书推荐信息,在线搜索图书
4.用户可以根据分类查看图书
5.用户查看图书详情,收藏图书,对图书在线留言
6.用户在线借阅图书,填写借阅信息,生成借阅记录
7.用户个人中心修改个人资料,修改密码
7.用户个人中心查看我的借阅记录,查看借阅的审核状态,在线归还和续借图书
8.用户个人中心查看图书续借信息和图书归还信息
9.用户个人中心查看缴纳罚金信息
10.用户个人中心查看我的收藏图书信息
11.用户留言板可以在线留言
12.退出登陆
管理员的主要功能有:
1.管理员输入账户登陆后台
2.个人中心:管理员修改密码和账户信息
3.用户管理:对注册的用户信息进行删除,查询,添加,修改
4.图书分类管理:对图书的分类进行添加,修改,删除,查询
5.图书信息管理:对借阅的图书信息进行添加,修改,删除,查询
6.图书借阅管理:对用户的借阅图书申请信息进行审核,修改,删除,查询,导出,统计报表
7.图书续借管理:对用户续借的图书信息进行查询,删除,审核,修改
8.图书归还管理:对用户的图书归还信息进行查询,删除,修改,罚金处理
9.缴纳罚金管理:对用户的缴纳罚金处理信息进行查询,删除,修改
10.通知公告:对系统的通知公告进行添加,修改,查询,删除
11.轮播图管理:对网站轮播图进行添加,修改,查询,删除
12.留言板管理:对用户的留言信息进行查询,修改,回复,删除
13.退出登陆
Laravel以其优雅的语法和快速开发能力著称,简化了许多常见任务
ThinkPHP是一个简单易用且功能强大的轻量级PHP开发框架,具有简洁的代码结构和丰富的文档,它是为满足快速开发需求而设计的
开发语言:php 一种常用于动态性交互网站的后端编程的解释型语言,是一门开源且免费的编程语言
后端框架:Thinkphp/Laravel
前端框架:vue.js
服务器:apache
数据库:mysql
运行环境:phpstudy/wamp/xammp等
具体实现截图
微信开发者工具
微信小程序为了使开发者专注在代码的逻辑层面和数据处理上,还专门提供了两种解决方案,一种是事件,一种是数据的传输。这两种方案都位于小程序框架的视图层和逻辑层之间。用户在视图层进行交互之后,传递到逻辑层对数据进行处理,并返回数据到视图层向用户反馈。对于微信小程序视图层的开发设计,小程序官方提供了一系列的组件,这些基本组件可以极大的帮助开发者完成视图层的开发。同时,对于逻辑层的开发,小程序官方提供了一系列API来方便开发者请求一些额外功能。
HBuilderX+uniapp
HBuilder 是基于HTML、js、css的等H5语法的开发技术,使得开发者很容易上手学习,里面涉及的数据绑定基于Vue语法涉及,在开发效率上也比传统的jquery快,当然HBuilder 也保留了对jquery的支持,两种语法可以结合项目的需要,可以混合开发 所以对原生项目的插件也有很好的兼容性。
uni-app框架:使用Vue.js开发跨平台应用的前端框架,编写一套代码,可编译到Android、小程序等平台。
前后端分离,后端给接口和API文档,注重前端,接近原生系统
开发技术简介
该系统是以PHP为主要开发语言,集合MySQL数据库技术构建基于Web的以信息为目标的,动态的交互平台
PHP 是一种 HTML 内嵌式的语言,是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,被广泛地运用。
MySQL是一种关系型数据库,关系型数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL的SQL语言是用于访问数据库的最常用标准化语言。由于其社区版的性能卓越,搭配PHP和Apache可组成良好的开发环境。
Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件。
文件解析
pages 主要页面, 其中pages文件夹中 index文件中可布局底部的tab页面,通过v-if判断显示不同的tab页
colorui 使用了color-ui样式,个人认为样式非常好看,非常感谢!
static目录: 存放静态文件
App.vue: 页面入口文件
main.js: 项目入口文件
manifest.json: 存放App信息
pages.json: 页面信息
uni.scss: 全局样式
设计思路
由于先前未学习过PHP开发,为了按时保效地完成该课题的研究和开发工作,特制定以下设计思路:
(1)学习PHP语言,熟悉JPHP开发并进行实例训练,掌握一定的PHP基础;
(2)查阅PHP相关文档资料,观看学习PHP开发视频,了解开发流程,掌握PHP开发的基础知识,实践一些较为简单的实例,进而对要实现的微记软件进行设计,按模块逐渐实现其功能;
(3)在进度把握上,每周末进行小结与下一周工作计划,确保开发进度。
性能/安全/负载方面
在设计系统时,充分考虑到当前系统可能存在的最高并发数量,并由此选择对应的硬件服务器和对应的宽带容量,上传下载的速率等问题。对于系统的查询速度已经控制在两秒之内。同时考虑当遇到高并发时是否会影响查询时间。
安全性需求,对于所有的管理系统来说,数据安全都是非常重要的,要严格控制其数据的安全性,防止外泄和被不法分子盗取。所以,系统应该设置不同的操作权限,并加强数据库的加密管理和访问控制,并定期对数据进行维护,及时进行数据备份。
数据访问方式
用户通过Web客户端浏览器请求某个功能页面。Web服务器接受这个请求,根据系统的逻辑设计,将这个请求对应的PHP文件读出,并交给PHP处理程序。PHP处理程序解释这个文件,执行相应的处理过程,如数据库的访问与操作等。
PHP核心代码部分展示
define('SYS_ROOT', str_replace("\\", '/', dirname(__FILE__)));
define('IMG_ROOT', SYS_ROOT."/upload/");
define('File_ROOT', SYS_ROOT."/upload/");
$db = mysql_connect('localhost', 'root', '') or
die("无法连接到数据库。");//连接数据库
mysql_select_db('bt_ ',$db); //选择数据库
mysql_query("set names 'GBK'");//输出中文
//上传图片
function upload_image($inputname, $image=null, $type='upimages', $width=440) {
$year = date('Y'); $day = date('md'); $n = time().rand(1000,9999).'.jpg';
$z = $_FILES[$inputname];
if ($z && strpos($z['type'], 'image')===0 && $z['error']==0) {
if (!$image) {
RecursiveMkdir( IMG_ROOT . '/' . "{$type}/" );
$image = "{$type}/{$n}";
$path = IMG_ROOT . '/' . $image;
} else {
RecursiveMkdir( dirname(IMG_ROOT .'/' .$image) );
$path = IMG_ROOT . '/' .$image;
}
//echo $path ;
move_uploaded_file($z['tmp_name'], $path);
//echo $image;exit;
return $image;
}
return $image;
}
代码目录结构解析
|-application 应用目录 是整个网站的核心
|—|—index 前台目录
|—|-----|—controller 控制器
|—|-----|—model 数据模型
|—|-----|—view 页面
|—|—admin 后台目录
|-extend 扩展类库目录
|-public 静态资源和入口文件
|—|—static 存放静态资源 css、js、img
|—|—index.php 入口文件
|-runtime 网站运行临时目录
|-tests 测试目录
|-thinkphp TP框架的核心文件
|—|—lang 语言包
|—|—library TP核心文件里面的核心文件
|—|—tpl 模板页面
|-vendor 第三方扩展目录。
详细视频演示
请联系我获取更详细的演示视频
源码获取
需要成品,加我们的时候,记得把本页面标题截图发下我,方便查找相应的源代码。可以的话 顺便点赞!
文章最下方名片联系我即可~