图书馆图书管理系统- Flask SQLite

项目描述
图书馆图书管理系统支持图书管理、借阅归还、用户反馈、成就系统、游戏化阅读激励,并集成数据分析模块(ECharts 可视化看板 / RFM 用户分群 / 借阅量预测)

127.0.0.1:5000
admin 123456Zs
zhangsan 123456Zs

功能描述
1.读者功能
– 注册 / 登录 / 退出
– 浏览图书列表(搜索、分类筛选、分页)
– 查看图书详情与借阅记录
– 借阅图书(限制:每人最多 5 本,借期 30 天)
– 归还图书(逾期自动计算罚款)
– 查看个人借阅记录
– 个人中心(借阅统计)
– 提交反馈与图书荐购
– 查看反馈处理进度与回复
– 站内通知中心
– 成就系统:等级、经验值、成就徽章、排行榜
– 阅读鼓励:借还书时随机推送名人名言
2.管理员功能
– 读者全部功能
– 添加 / 编辑 / 删除图书
– 分类管理(增删查)
– 查看全部借阅记录(按状态筛选)
– 数据看板(统计概览、热门图书 TOP5、借阅趋势、分类统计)
– 用户管理(启用/禁用用户)
– 反馈管理(查看、回复、转图书上架)
– 操作审计日志(记录所有关键操作)
– 成就中心管理
3.数据分析模块
1. ECharts 可视化看板(`/dashboard`)
– 7 天借阅趋势:折线图 + 面积填充,按日聚合 + 缺日补零
– 分类借阅分布:饼图,展示各分类馆藏占比
– 热门借阅 TOP5:横向条形图,前三名红/橙/黄色高亮
– 操作日志与近期借阅:保持表格(事件列表非聚合数据)
– 局部刷新:原 `window.location.reload()` 改为 `fetch(“/dashboard/api/data”)`,避免整页刷新销毁 ECharts 实例;JSON 端点与模板初始渲染同源(`_collect_dashboard_metrics` 共享)
2. RFM 用户分群(`/analysis/rfm`)
将电商 RFM 模型迁移到图书馆场景:
– Recency = 最近一次借阅距今天数(越小越活跃)
– Frequency = 累计借阅次数
– Monetary → Breadth = 借阅涉猎的不同分类数(图书馆无货币维度,以阅读广度替代)
– 按四分位数阈值分 6 群:Champions / Loyal / Potential / At-risk / Lost / Inactive
– 零借阅用户直接归 Inactive,不参与分位计算(避免污染阈值)
– 可视化:散点图(X=Recency Y=Frequency 气泡=Breadth)+ 饼图 + 用户明细表
> 设计决策:M 维度选”涉猎分类数”而非”借阅时长”——后者依赖 return_date(活跃借阅为 NULL 会引入偏差);”按时归还率”是质量指标与 F 语义重叠。广度与 e-commerce 的消费广度语义一致,且与 F 正交。
3. 借阅量预测(`/analysis/prediction`)
– 模型:线性回归(趋势项 + 星期二~星期日 one-hot,以周一为基准防共线性)
– 理由:图书馆流量有强星期效应,线性回归能捕捉周季节性且系数可解释;ARIMA 对小数据过度工程需平稳性检验
– 置信区间:残差标准差 × 1.96(95% CI,统计上诚实)
– 可视化:实际值(实线)+ 历史拟合(虚线)+ 预测值(虚线)+ CI 阴影带;星期系数卡片可现场演示”周末 vs 工作日”效应
– 边界:历史不足 14 天返回 error,不强行预测

运行环境
Python3.10

项目技术
后端框架 Flask 3.x Python 轻量级 Web 框架
ORM Flask-SQLAlchemy 3.0.5 数据库 ORM 映射
认证 Flask-Login 用户登录状态管理
数据库 SQLite 轻量级文件数据库,免安装
前端 Bootstrap 5 + Jinja2 + ECharts 5.4 响应式 UI + 模板引擎 + 数据可视化
数据分析 scikit-learn + numpy + pandas 线性回归预测 + 数据聚合
语言 Python

以上系统源码经过技术整理与调试,确保能正常运行

提供最优质的资源集合

立即查看 了解详情