此处为后端源码,前端代码的github
- 一、 作品综述...........................................................................................
- 1 1 小程序说明....................................................................................
- 1 2 需求分析........................................................................................
- 1 2 1 应用场景..............................................................................
- 1 2 2 功能结构..............................................................................
- 1 3 解决的实际问题............................................................................
- 二、 技术开发方案...................................................................................
- 2 1 小程序端........................................................................................
- 2 1 1 总体设计和素材说明...........................................................
- 2 1 2 页面设计................................................................................
- 2 1 3 亮点——登录检测................................................................
- 2 2 后台服务器端................................................................................
- 2 2 1 后端系统结构........................................................................
- 2 2 2 数据库设计............................................................................
- 2 2 3 亮点——校园卡提醒............................................................
- 2 2 4 难点——搜索查询................................................................
- 2 1 小程序端........................................................................................
- 三、 团队情况...........................................................................................
我们采用了三个tabbar作为功能的分区,绝大多数的元素采用小程序官方 推荐的flex布局方式,进行相关css的设置。元素大多采用rpx单位进行相关设 置,从而便于进行移动端的定位布局。
Npm板块设计 开源UI库vant 原型设计 墨刀软件 功能分区 tabber× 3 (失物、招领、我的) 图标来源 icon-font 布局方式 flex 元素定位 rpx单位
我们将登录状态保存到app.globalData,以获取全局登录状态;同时为了降 低网络波动的影响,我们在页面的onReady生命周期中采用了定时器和递归的方 法。
后端框架 django
服务器环境 centos 7. 3
数据库 MySQL
与前端连接 api接口和http协议
student 记录用户信息 student.id
event 发布的失物/招领消息 event.id
据库是否存在该同学的信息,如果能查到,则会利用python的SMTP简单邮件传 输协议,通过qq邮箱的接口向对应的同学邮箱发送邮件直接提醒到同学,从而 缩短寻找校园卡的时间。
B) 短文本匹配:jieba分词+TF-IDF算法。
jieba分词(https://github.com/fxsjy/jieba)是一个Python 中文分词 组件,提供对中文文本进行分词、关键词抽取等功能,支持三种分词模式:精确 模式(精确切分)、搜索模式(精确切分+长词切分)和全模式。其中前两种在 “找卡卡”中得以应用。
TF-IDF(词频-逆文档频率算法)是一种统计方法,用于评估一字词对一文 件集或一语料库的中的某一篇文档的重要性,字词的重要性随着它在文件中出现 的次数成正比增加,同时会随着它在语料库中出现的频率成反比下降。 利用jieba分词的搜索模式,我们将输入的文本转化为一组词向量,然后将 所得list与数据库中的记录进行匹配。基于集合的思想,对每个词进行计算和 归类,计算两个文本的词向量余弦相似度,以表示其近似程度,并挑选出相似度 大于 70 %的语句返回给前端,从而实现模糊匹配。
IDFqi =log
n(qi)+ 0. 5 N为总文本的分词数量,n(qi)为分词qi出现的频数,该权重表明词频越低, 权重越大,越能够代表该文本。其中 0. 5 为为了防止分母为 0 人工设置的参数。 两词向量的余弦相似度计算公式如下:
similarity=cos(θ)=
= i=^1
n A
i×Bi
i= 1
n (A
i)^2 × i= 1
n (B
i)^2