Skip to content

zhazhalaila/rfid-signin-python

Repository files navigation

Rfid-signin-python

RFID+Flask+Vue+Redis构造一个签到系统

项目已部署在Heroku上

演示地址

演示视频

测试账号名称: TEST 密码: password

项目功能 完成情况 满意度
动态显示签到情况 😃 80%
构造在线用户(课堂)池 😃 95%
查询签到记录 😃 70%
用户注册 😃 80%
课堂绑定学生 😃 80%
学生分群 😃 90%
URL加密 😃 90%
解除课堂与学生关系 😟 0%
异常处理 😟 0%
页面优化 😟 0%

部署的是国外的服务器因此日期显示为国外的日期

Getting Started

在本地的部署

准备工作

  1. 硬件准备
  2. 软件准备

使用Docker

创建容器

git clone https://github.com/zhazhalaila/rfid-signin-python.git
cd rfid-signin-python
docker build -t serialshow:latest .

运行容器

docker run --name serialshow -d -p 8000:5000 --rm serialshow:latest

查看日志

docker logs container

安装

git clone https://github.com/zhazhalaila/rfid-signin-python.git
cd rfid-signin-python
pip install -r requirements.txt

运行与测试

运行

set FLASK_APP=serialshow.py
flask db upgrade
flask run

数据库设计

测试数据库是否正确

python tests.py

几个大坑

Built With

  • Redis 主要用来构造在线用户(课堂)池
  • Flask Web框架
  • Vue 动态查询

API示例

查询学生签到情况,URL格式http://127.0.0.1:5000/api/student_history?name=parameter

返回数据格式

{"history":[{"active":true,"class_name":"RFID\u4f20\u611f\u5668","time":"2018-10-27 09:06:10"}]}

注意返回数据格式会出现utf编码的信息,我们可以不用管,JS会自动解析

查询当前签到情况,URL格式http://127.0.0.1:5000/api/class_history?name=parameter&time=parameter

返回数据格式

{"history":[{"active":true,"name":"\u6d4b\u8bd5\u8d26\u53f7","time":"2018-10-27 09:06:10"}]}

Redis存储所有在线课堂

原理

Vue与API的交互

现在很流行前后端分离,后端提供API,前端只负责显示页面

原理

与硬件交互

使用的COM3/4接口,Python已经有库可以帮我们完成读取USB接口的功能

启动spider.py,就可以看到结果了

原理

URL加密

使用Vigenère cipher算法加密

加密操作

kmean算法

参考链接:

集体智慧编程 第三章P42-P44

K-Means Algorithm

贡献代码

没有什么要求,只要能跑就行了,可以增加一些丰富的功能

License

MIT

About

RFID+Flask+Vue+Redis构造一个签到系统

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages