cherry_be/README.md
2021-09-04 10:50:46 +08:00

178 lines
5.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 挂柯南
## 服务器配置
```js
// 安装venv
python3 -m venv venv
// 启动venv
. venv/bin/activate
// 升级pip
pip install --upgrade pip
// 根据依赖文件安装环境
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
// 设置全局变量
export FLASK_APP=cherry.py
export FLASK_ENV=development
// 启动临时服务
flask run --host=0.0.0.0 -p 8001
// beta
flask run --host=127.0.0.1 -p 6000
// 启动永久服务
gunicorn cherry:app -c gunicorn.conf.py
// 查看已启动服务
pstree -ap|grep gunicorn
// 关闭某服务
kill (pid)
//关闭venv
deactivate
```
## 错误代码一览
/api/login
400数据校验失败
510账号或密码错误
511请填写手机号
512教务挂了
513教务报错
200OK
/api/game/schedule/upload
400数据校验失败
510排名表修改失败
/api/game/schedule/get
400: 数据校验失败
510排名表获取失败
# game
* /api/game/schedule/upload
* data
* nick
* count
* time
* sign
* /api/game/schedule/get
* data
* sign
# 新版改造
## 用户组功能
* [ ] 主进程挂一个我的账号用来进行课表的爬取
* [ ] 第一次登录要进行账号密码的校验,然后对称加密进数据库
* [ ] 每天0点开始刷新所有人的课表以及所有人的成绩
* [ ] 每个用户组的id是五位数字加字母的组合
* [ ] 每个用户组成员不设上限
* [ ] 提供每个用户组下的个人课表以及个人总体课表
* [ ] 允许设置组级别的课程(全组个人课表及组课表可见)
* [ ] 数据库按课程存储字段sid, real_name, course, weeks, weeks_split, teacher, room, is_personal, day, period
* [ ] 登录的时候返回所有必要信息,剩下信息单独返回
* [ ] 组信息
* [ ] 刷新课表使用cookie加速
* [ ] 刷新成绩(使用账号密码
## 背景图片上传
* [ ] 上传图片id保存在数据库和个人信息一起
## 数据库字段
## log
* time
* type
* value
### config
* key
* value
### user
* uid 用户唯一识别码,教务下发
* invite_list 邀请内容
* cid 一卡通号
* sid 学号
* real_name 真实姓名
* pwd 加密后的密码
* setting 用户设置
* bg 课表背景图片
* avatar 头像
* last_update 最后课程更新时间
### group
* group_id 唯一标识
* group_name 用户组名称
* log_list 操作记录
* admin_list 管理列表
* creater_sid 创建者学号
* avatar 头像
### link
* cid 一卡通号
* group_id 用户组id
### user_crouse
* crouse_id 课程id
* sid 学号
* real_name 真实姓名
* crouse 课程名
* weeks 中文周数
* weeks_split 渲染用周数列表
* teacher 教师名
* room 教室名
* is_personal 是否是自定义课程
* day 星期
* period 上课时间
### group_crouse
* crouse_id 课程id
* group_id 用户组id
* sid 学号
* real_name 真实姓名
* crouse 课程名
* weeks 中文周数
* weeks_split 渲染用周数列表
* teacher 教师名
* room 教室名
* day 星期
* period 上课时间
## 数据库错误码
### OK 200
### insert 1
insertUser '学生信息数据库插入失败', 100
insertInvite '用户组邀请数据库插入失败', 101
bindUserGroup '用户与用户组绑定数据库插入失败', 102
insertGroup '用户组数据库插入失败', 103
addLog '操作记录数据库插入失败', 104
groupInsertAdmin '用户组侧加入管理数据库插入失败', 106
userInsertCrouse '用户自定义课程数据库插入失败', 107
userInsertAllCrouse '用户所有课程数据库插入失败', 108
insertRank '排名表数据库插入失败', 109
groupInsertCrouse '用户组课程数据库插入失败', 110
insertLog '系统操作记录数据库插入失败', 111
### find 3
findCookie 'cookie数据库查询失败', 300
findUser '学生信息数据库查询失败', 301
findGroup '用户组信息数据库查询失败', 302
findRank '排名表数据库查询失败', 303
findUserCrouse '用户课程数据库查询失败', 304
findGroupCrouse '用户组课程数据库查询失败', 305
findLog '系统操作记录数据库查询失败', 306
### update 4
updateCookie 'cookie数据库更新失败', 400
updateAvatar '头像数据库更新失败', 401
updateBg '背景图数据库更新失败', 402
updateLastUpdate '数据更新时间数据库更新失败', 403
### delete 5
deleteInvite '用户组邀请数据库删除失败', 500
unbindUserGroup '用户与用户组解绑数据库删除失败', 501
userDeleteAllCrouse '用户所有课程数据库删除失败', 502
groupDeleteAdmin '用户组侧移除管理数据库删除失败', 503
deleteGroup '解散用户组数据库删除失败', 504
userDeleteCrouse '用户自定义课程数据库删除失败', 505
groupDeleteCrouse '用户组课程数据库删除失败', 506
## 接口错误代码
### /login
400 数据不合法
510 学生信息数据库查询失败
511 账号或密码错误
512 用户组信息数据库查询失败
513 请填写手机号
514 教务返回的错误
515 教务挂了
516 用户所有课程数据库删除失败
517 用户所有课程数据库插入失败
518 用户课程数据库查询失败
519 用户组课程数据库查询失败