基于微信公众号的图书借阅管理系统设计与实现

目录
1 引言 2
1.1项目研究背景 4
1.2 项目研究内容 6
1.3 项目研究意义 7
2 技术选型与开发环境 9
2.1 技术选型 9
2.1.1Node.js介绍 9
2.1.2 异步编程介绍 10
2.1.3 阻塞和非阻塞介绍 11
2.1.4 MySQL数据库介绍 12
2.1.5 Nginx服务器介绍 14
2.1.6StrongLoop进程管理器介绍 14
2.1.7微信公众号平台介绍 14
3 需求分析 16
3.1 技术需求 16
3.2 功能需求 18
3.3 系统操作流程 18
3.3.1 关注微信图书借阅平台 18
3.3.2 功能菜单 18
3.3.3 扫码 19
3.3.4 确认操作 19
4.系统设计 20
4.1概要设计 20
4.2详细设计 21
4.2.1 微信公众号设置 21
4.2.2 获取图书信息 21
4.2.3 存储图书信息 22
4.2.4 展示图书信息 23
5数据库设计 25
5.1概念结构设计 25
5.2物理结构设计 25
6.图书借阅平台的实现 28
6.1配置 28
6.2主界面 28
6.2添加图书 29
6.3借阅图书 30
6.4归还图书 31
6.5浏览图书 32
参考文献 34
4.系统设计
概要设计是建立在需求分析的基础上的,概要设计的主要任务是,通过仔细分析软件规格说明,适当的对软件功能进行分解,从而把软件划分为模块,并设计出能完成预订功能的模块结构。
4.1概要设计
概要设计是软件设计具体实施阶段的第一个环节,通过给出核心功能点和设计要素的概括性描述,指导设计开发的方向。在这个阶段的主要任务一方面是概括地描述出整个软件的整体设计。另一方面是将工程概括的拆分出主要的核心模块描述各个模块大致的实现方案。
a)整体设计
1)微信公众号自定义菜单
微信公众号是用户使用该图书分享平台的入口,公众号底部的自定义菜单是引导用户进行功能操作的入口,需要设置简洁直观的入口让用户快速了解菜单对应的功能。
2)前端交互
图书分享和借阅应该是一个非常便捷的操作,不应当涉及过多的交互步骤,使得各个功能一触即达。
3)Node.js中间层
中间层的职责是前端与后端的桥梁,负责从后端获取数据并渲染出页面或进一步处理数据后传递给前端。
b)模块设计
1)借阅图书模块
图书借阅模块实现了图书的借阅操作,读者从书架上拿到图书,通过扫描图书背面的条形码确认借阅完成借书操作,取走图书。
2)归还图书模块
图书归还模块实现了图书的归还操作,当读者阅读完毕后,扫描图书条形码后确认图书归还,然后将图书归回原位。
3)添加图书模块
图书添加模块实现了图书的入库操作,读者拿出自己的图书,扫描图书条形码后确认图书归还,然后将图书放入书架。
4)浏览图书模块
浏览图书模块实现了浏览图书信息的功能,用户可以远程查看书架上的书籍信息,包括书籍名等基本信息、书籍数量、书籍可借阅数量。
4.2详细设计
用户进入微信后,关注公号进入公号界面,通过公众号主页底部的自定义菜单进入相关操作界面。点击“借阅图书”自动弹出二维码让用户扫描书籍自动借阅。点击“归还图书”自动弹出二维码让用户扫面书籍自动归还,点击“添加图书”自动弹出二维码让用户扫描书籍完成添加,点击“浏览图书”跳转到设定的网页浏览当前书库的所有书目。
4.2.1 微信公众号设置
申请个人公众订阅号和商业公众企业号的用户,首先需要首先到微信官网注册账号,个人公众订阅号用户需要提供证件申请实名认证,商业公众企业号用户需要提供商业资质证明。等待申请结果成功后,用户们便可以通过微信搜索功能搜索公众号名字,查看详情后关注该微信公众号。
在微信后台配置微信与自己的服务器之间的连接,从而打通从用户到微信服务器再到个人服务器之间的消息传递,并将处理后的结果回传给微信服务器,最终转发到用户的微信客户端上。
微信图书借阅平台通过企业公众号底部的自定义菜单栏,分别引导用户至不同的功能,与用户完成交互。菜单栏分为一级菜单和二级菜单,本平台使用借阅图书、归还图书、管理图书三个一级菜单,管理图书下有添加图书、浏览图书两个二级菜单。
4.2.2 获取图书信息
实现一个图书数据库的工作量非常庞大,设计到市面上所有已有图书的信息采集入库操作。为了便利地获取图书信息,采用豆瓣开放的公共图书API接口实现图书信息查询功能。用户首先打开微信进入公众号界面,通过公众号底部菜单中的“添加图书”菜单,点击后自动转至图书条形码扫描界面,用户扫描图书背面的条形码后,微信将识别出条形码中包含的ISBN号并回传给前端程序。本文转载自http://www.biyezuopin.vip/onews.asp?id=14549前端程序根据将ISBN回传给Node.js中间层服务器,Node.js向豆瓣开放API服务器发送RESTful请求,附带着图书的ISBN信息,取得图书信息(图书名、图书封面图片链接、图书内容摘要、作者、出版社等)。
4.2.3 存储图书信息
所有图书的信息都通过自豆瓣的开放API接口服务获得,每当采集到一本图书的信息,便会执行一次图书信息的存储任务,将图书信息存入服务器本地数据库中。这样做的原因是,一方面便于再次获取图书信息时,可以快速查询图书结果。另一方面将初次获取后的信息按照关系存入本地数据库有利于信息的统计和变更。
在取得图书信息后,用户点击确认按钮,图书的书名、ISBN号、作者、出版社、封面、摘要等信息会存储到数据库中,并附加与借阅相关的图书信息,比如图书库存量,借阅次数,当前借阅者的信息等等。
4.2.4 展示图书信息
Node.js中间层在取得图书信息后,根据预先定义的Jade模板渲染出图书界面的HTML内容。微信用户内置的Webview控件在收到HTML内容后,渲染内容,加载图书封面等静态资源,经过CSS样式表处理后渲染出图书展示界面。图书信息的展示工作完全由Node.js中间层负责,当用户在图书页面之间跳转时,均直接请求Node.js中间层服务器,交由Node.js选择指定的Jade模板渲染内容。

const express = require('express')
const fetch = require('isomorphic-fetch')
const json = require('../lib/json')
const weutils = require('../lib/weutils')
const router = express.Router()// echo 测试服务
router.get('/echo', (req, res) => {res.send({query: req.query,params: req.params,body: req.body})
})// 进行微信 auth 认证
// 参考微信示例代码:
// @url http://mp.weixin.qq.com/wiki/4/9ac2e7b1f1d22e9e57260f6553822520.html
router.get('/auth', (req, res) => {const { code, state } = req.queryif(!code) {return res.send('user not accepted!')}res.send({ code, state })
})router.get('/signature', (req, res) => {const { signature, timestamp, nonce, echostr } = req.queryweutils.checkSignature(signature, timestamp, nonce).then(data => res.send(echostr)).catch(err => res.send('signature invalid'))
})// 微信 JS-SDK 使用权限签名算法
// 参考微信示例(附录一):
// @url http://mp.weixin.qq.com/wiki/11/74ad127cc054f6b80759c40f77ec03db.html
router.get('/config', (req, res) => {const { url } = req.queryweutils.generateConfig(url).then(data => res.send(data)).catch(err => res.send({status: 500,msg: err.toString()}))
})// 豆瓣图书代理
router.get('/book/:isbn', (req, res) => {const { isbn } = req.paramsfetch(`https://api.douban.com/v2/book/isbn/${isbn}`).then(res => res.json()).then(book => {console.log('获取书籍', book)book.title = book.title || `Book not found (${isbn})`res.send(book)})
})module.exports = router

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/55322.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微信小程序图书馆管理系统

开发工具:IDEA、微信小程序 服务器:Tomcat9.0, jdk1.8 项目构建:maven 数据库:mysql5.7 前端技术:vue、uniapp 服务端技术:springbootmybatis-plus 本系统分微信小程序和管理后台两部分&#xf…

图书馆管理系统——借书操作

在写借书操作之前我们先来理清一下借书操作的一个思路 假如你借了“红楼梦”这本书,你就不能再借“红楼梦”这本书了。你就得把“红楼梦”这本书归还了之后才可以借“红楼梦”。但是其他的书籍你可以借阅。意思就是一个账号一本书只能借一次,只有你归还…

网上图书馆系统

网上图书馆系统 题目 设计一个网上图书馆系统,实现图书网上检索、预约和续借功能。具体要求如下: 1)系统管理:定义读者类别并设置参数,添加、修改和删除读者信息。 2)图书续借和预约:实现图书的续借、预约等功能。 3)…

图书馆管理系统(数据库版)

图书馆管理系统(数据库版) 目录: 图书馆管理系统(数据库版)项目框架项目分包数据库列表代码分析工具包所用到的接口: 分享一波:总结: 项目框架 项目分包 上面为本次项目的分包建包示…

图书馆管理系统的开发

课程设计的目的与要求 课程设计目的软件工程课程设计是学习软件工程课程后所进行的实践环节,目的是培养学生用工程化的思想和标准文档化的思想进行软件开发。本次课程设计通过开发一个小型实用的软件系统,亲身体验软件生命周期中的各个环节,以加深对软件工程课程的深入理解、…

基于微信小程序图书馆管理系统

开发工具:IDEA、微信小程序 服务器:Tomcat9.0, jdk1.8 项目构建:maven 数据库:mysql5.7 前端技术:vue、uniapp 服务端技术:springbootmybatis-plus 本系统分微信小程序和管理后台两部分&#xf…

智慧图书馆中一般有哪些设备

图书馆在很多人心目中都是一个神圣的场所,但现实中去过图书馆的人们都知道,由于管理上的原因很多图书馆都会非常的嘈杂和混乱。而智慧图书馆的建设就是让图书馆重新变回宁静祥和的知识海洋,通过RFID技术打造智慧化设备为读者提供更好的学习阅…

自助借还系统——智慧图书馆的新体验

自助借还系统主要用于智慧图书馆图书自助借还、查询、续借等,具有多本书同时识别处理,多卡识别功能,红外线感应技术,内置人脸识别模块和协议标准,系统具有ISO1800-3、ISO15693物流网工作协议,可无缝对接智慧…

基于微信的图书馆服务系统的设计与实现

随着时代的快速进步,“互联网”一词概念逐渐深入人心,新兴产业蓬勃发展,传统产业深刻重塑。传统行业与互联网的结合成为了必然的趋势。在时代的大背景下,高校图书馆如何突破原有服务壁垒、精准把握需求,人性化服务&…

图书馆管理系统(一)

图书馆管理系统 项目说明项目内容(1)读者信息管理:(2)图书信息管理:(3)图书借阅管理:(4)基础信息维护:(5)用户…

馆员工作站,智慧图书馆自助借还系统

RFID馆员工作站是以计算机为基础,集成RFID读写装置,对RFID标签进行识别和流通状态处理,辅助以其他装置用于流通部门对粘贴有RFID标签及条形码的流通资料进行快速的借还操作,以此提高工作人员的借还工作效率。同时能够通过扫描图书…

24小时智慧图书馆解决方案,校园智能微型图书馆

校园24小时智慧图书馆的建设,与学校图书馆总馆之间实现信息实时交互并提供24小时自助服务,24小时智能微型图书馆让学生就近借书、就近阅读,创造良好便利的阅读环境,激发学生阅读需求,营造浓厚的校园阅读文化氛围。 24小…

图书借阅管理系统

1、系统概述 图书借阅管理系统由管理员系统和用户系统两个子系统构成。用户运行程序后可按程序说明进入子系统,输入“1”进入管理员系统,输入“2”进入用户系统。图书信息和读者信息均用文件存储。 管理员系统: 新增图书:管理…

图书馆管理系统UML各种图

1用例图 主要用来描述“用户、需求、系统功能单元”之间的关系。它展示了一个外部用户能够观察到的系统功能模型图。 【用途】:帮助开发团队以一种可视化的方式理解系统的功能需求。 用例图所包含的元素如下:actor、usecase、子系统、四中关系&#xff…

智慧图书馆解决方案-最新全套文件

智慧图书馆解决方案-最新全套文件 一、建设背景二、思路架构三、建设方案四、获取 - 智慧图书馆全套最新解决方案合集 一、建设背景 现下,传统图书馆已经难以适应时代的发展,图书盘点繁琐、管理模式落后、阅读时间和场地受限等问题,迫使传统…

学校图书馆管理系统

摘 要 随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,学校图书馆管理系统当然也不能排除在外。学校图书馆管理系统是以实际运用为开发背景,运用软件工程开发方法&…

2021中国大学生程序设计竞赛(CCPC),烤仔与你不见不散!

今天也是见到超多学霸的一天呢! 因为,CCPC 的参赛选手们来看烤仔啦!北京航空航天大学、北京交通大学等高校共 95 名总决赛参赛选手在 5 月 28 日来到 Conflux 参观、交流。 由中国大学生程序设计竞赛组委会主办,Conflux 、旷视等…

HTML+CSS鲜花静态网页设计

📂文章目录 一、👨‍🎓网站题目二、✍️网站描述三、📚网站介绍四、💠网站演示五、⚙️ 网站代码🧱HTML结构代码💒CSS样式代码 六、🥇 如何让学习不再盲目七、🎁更多干货…

客厅窗帘要安装纱帘吗?怎么选择纱帘?-好佳居窗帘十大品牌

窗帘是我们常见的,但是客厅窗帘有必要装纱帘?很多人在选择窗帘的时候纠结要不要加一层纱帘。这种纠结可能不仅仅是选择的困难,纱帘的具体功能性也不是那么好理解。别急,我们来看看。 客厅窗帘要不要安装纱帘? 众所周知…

web前端 基于html实现花店购物网站源码(HTML+CSS+JavaScript) 企业网站制作

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…