2018/5/22更新
后端使用python框架Django,调度任务的程序运行基于python高级调度框架APScheduler,使用Scrapy框架进行数据的爬取,彩蛋游戏使用unity2D进行开发
项目描述:
需求分析:
1.学校图书馆借的书都很容易忘记还,这个时候需要有个软件提醒什么时候还书,或者自动帮我进行书籍的续借(免受罚款的灾难:-D)
2.比较难知道学校的新书有什么,需要有一个推送新书的程序告诉我,比如说我关注的一个关键词有python,就会在新书出现python关键字的时候给我推送特别关注的新书
3.馆藏空闲通知,有时候,我想要借的书给别人借走了,然后就会特别angry,:-|,这个时候,就特别想要一个程序,可以及时通知我那本书什么时候还回来了
4.同类型图书推荐,学校图书馆借阅系统并没有这个功能,有时候我看到一本好书,然后就会想要找跟他类型相同(内容相似)的书,这个时候就需要同类型图书推荐系统,比如图书馆关于shader方面的书很少,这个时候我看到一本关于shader的书,就会特别想知道跟这本书相似的有什么书之类的~~~
5.高级搜索功能,学校图书馆借阅系统只能通过出版年份/作者进行排序,这样只能通过一本书的名字来判断好坏,所以,急需增加一本知道图书好坏的功能,所以增加了通过豆瓣评分排序,豆瓣评分人数排序,豆瓣评论人数排序等排序功能
6.书籍详情页面显示的内容太少了,学校图书馆的系统,最多显示内容简介跟书名,其他信息都要到其他平台进行搜索,这太麻烦了,所以,想到了,在书籍详情页面增加很多内容,大致有,目录,内容简介,作者,还有评论,关于评论这一部分,想到了通过两种方式来显示,一种是普通的显示,也就是一条一条评论的显示,一种是直接全部文字的词云显示,可以让读者第一时间知道其他人对这本书的第一印象
7.同时需要注意的是,所有关于通知的内容(续借,馆藏空闲通知,新书速递)都通过APScheduler调度来完成,也就是,一天运行一次,或者一个月运行一次,避免给服务器造成太大压力。
细化功能(按照页面---需要的功能对功能进行细化):
搜索页面:
1.评分五角星的绘制 √
2.登录功能 √
3.登录后的搜索界面改变,同时可以设置自动续借等功能 √
4.每本书的样式显示(包含评分,书名,作者等) √
5.侧边栏的显示: √
a.给出常用标签(该名用户经常进行搜索的关键词)
b.给出缩小范围的年份示例(这个用于缩小范围的年份通过后端获得该页数据的全部年份获得)
c.给出用于缩小范围的分类示例(这个分类示例通过该页的索书号获得,这个索书号只拿/之前的,比如TP312.561/T,就只显示TP312.561)
d.给出本次查询点击率最高的书籍
6.分页功能 √
7.关键字搜索排序功能,通过对给定的字段搜索,给出按照指定排序规则排好序的书籍列表 √
8.对自动续借功能的设置,设置完后,界面上打勾,后端使用调度框架 APscheuled每隔一天看一次续借日期是否到期 √
9.对新书速递功能的设置,设置完后,界面上打勾,后端是使用调度框架APSchedule每隔一个月重新爬取一次图书馆,爬取到的新书通过邮箱推送给用户(如果用户设置了特别关注名单,那么推送时推文会不一样)√
10.自动补全搜索,当键入某一个字母时,(使用ajax)通过判断获得跟输入的最相似的10个字符串,然后在下方显示出来。
登录页面: √
1.Gif验证码
2.第一次登录时填写邮箱,并通过邮箱发送邮箱验证码 √
3.使用cookie保存登录状态
书籍详情页面:
1.显示书籍详情信息(封面,书名,评分,内容,目录) √
2.显示书籍评论,评论分为文字版和词云版:
a.文字版评论,正常评论功能,普通的分页,普通的评分,普通的发表评论
b.词云版评论,将文字版评论全部加起来(现场算),然后使用wordcloud画出印象图
3.同类型书籍推荐功能:在这里偷个懒,使用python第三方自然语言识别库,识别各本书之间的相似度,选出相似度最高的5本书进行显示
用户设置界面: √
1.设置自动续借的细节功能:比如在图书到期前x天通知我
2.设置新书速递的细节功能:比如设置一个我的特别关注列表,新书速递时,给出的推文会变化。 √
3.查看馆藏空闲通知,查看已经设置了多少个对图书馆的馆藏的空闲通知。
首页: √
同搜索界面 √
用户详情界面:
1.查看用户已经借了多少本书
2.为用户生成一份读书报告
404彩蛋界面:
通过某些不为人知的操作,可以显示出用unity做的彩蛋游戏。