当前位置: 首页 > news >正文

基于 Vue 3 + ECharts + Three.js + Express + SQLite 的图书推荐与数据可视化平台——深度学习个性化图书推荐系统 · 数据可视化大屏

深度学习个性化图书推荐系统 · 数据可视化大屏

基于Vue 3 + ECharts + Three.js + Express + SQLite的图书推荐与数据可视化平台。 系统围绕“个性化推荐”主题,提供独立的3D 场景大屏多页 ECharts 图表大屏模型预测调试、以及完整的用户/图书/数据库管理能力。


目录

  • 项目简介

  • 功能模块

  • 技术栈

  • 项目结构

  • 快速开始

  • 页面与路由说明

  • 3D 场景说明

  • 图表大屏说明

  • 模型预测说明

  • 权限与演示账号

  • 数据库说明

  • 主要 API

  • 常见问题


项目简介

本系统模拟一套基于深度学习的个性化图书推荐业务场景,面向大屏展示与后台管理一体化需求:

  1. 登录鉴权:微信风格登录页(主题化改造),支持账号/手机号 + 图形验证码。

  2. 3D 可视化:独立全屏 3D 页面,四种图书主题场景,可点击交互并展示数据。

  3. 图表可视化:独立 ECharts 数据大屏,多分页组合展示推荐业务指标。

  4. 推荐预测:参数调优、封面图识别、输入喜欢书名推断兴趣类型与相关图书。

  5. 数据管理:图书 CRUD、Excel 导入导出、用户管理、SQLite 连接与表浏览。

  6. 主题定制:全局背景、字体、颜色、图表透明度等样式设置。

默认登录成功后进入3D 场景大屏/screen3d)。


功能模块

1. 用户登录

  • 左右分栏布局:左侧系统介绍与图书视觉,右侧登录表单(微信风格)

  • 支持账号登录 / 手机号登录

  • 图形验证码(点击刷新)

  • JWT 登录态,前端路由守卫校验

  • 角色:admin/editor/user

2. 3D 场景大屏(独立页面,不含 ECharts)

路径:/screen3d

场景说明点击反馈
智慧书架木质书架 + 精装书册 + 分类铭牌书架点亮 / 书册抽出
知识之塔螺旋书塔 + 光环 + 塔芯晶体塔芯共鸣
推荐星图星球轨道 + 星尘粒子 + 引擎核心星轨聚焦
兴趣网络兴趣簇节点 + 关联边 + 中枢兴趣共振

交互能力:

  • 拖拽旋转、滚轮缩放

  • 点击模型弹出右侧数据面板(字段、洞察、关联推荐)

  • 顶部 KPI、左侧场景说明与图例随场景变化

  • 相机缓动聚焦、模型呼吸高亮、屏幕涟漪特效

3. 图表数据大屏(独立页面,纯 ECharts)

路径:/dashboard

分页内容包括但不限于:

  • 大数据量面积图、渐变堆叠面积图

  • 缓动函数可视化、矩阵微型折线

  • 堆叠柱状归一化、阶梯瀑布图

  • 主题河流图、象形柱图、农历日历热力

  • 相关矩阵(热力图 / 散点图)、散点矩阵组合

  • 三维散点图、三维柱状图、Top 推荐榜

4. 模型预测

路径:/predict

  • 喜欢的书名预测:多书名输入/联想,推断喜好类型分布 + 相关图书(内容偏好 + 协同过滤)

  • 参数调试训练:NCF / Wide&Deep / DeepFM / DIN / Transformer,滑条调参,一键最优参数

  • 评估指标:Accuracy、Precision、Recall、F1、NDCG、MAP、HitRate、AUC、Loss

  • 封面图片预测:类型/大小校验、预览、重新识别,结合文件名与馆藏分类推断

5. 图书管理(admin / editor)

路径:/books

  • 图书增删改查、关键词与分类筛选

  • Excel 导入 / 导出

  • 暗色透明表格(消除默认白底)

6. 用户管理(admin)

路径:/users

  • 用户新增 / 编辑 / 删除

  • 角色分配、手机号维护

7. 数据库设置(admin)

路径:/db-settings

  • 查看/切换 SQLite 数据库路径

  • 浏览数据表内容(分页)

8. 样式设置(admin)

路径:/style

  • 背景色 / 渐变、主题色、强调色、文字色

  • 字体、面板背景、图表透明度

  • 预设主题:书香金典、墨韵青绿、深夜琥珀、科技蓝调


技术栈

前端

技术用途
Vue 3页面与组件
Vite开发构建
Vue Router路由与权限守卫
Pinia用户态 / 主题态
Element Plus表单、表格、对话框等
ECharts / ECharts-GL / vue-echarts2D/3D 图表
Three.js3D 场景渲染与交互
AxiosAPI 请求
Sass样式

后端

技术用途
ExpressHTTP API
better-sqlite3本地 SQLite
JWT + bcryptjs鉴权与密码哈希
svg-captcha验证码
multer图片上传
xlsxExcel 导入导出

项目结构

Vue20/ ├── index.html ├── package.json ├── vite.config.js # 开发代理 /api -> :3001 ├── public/ ├── server/ │ ├── index.js # Express 入口 │ ├── db.js # SQLite 初始化与种子数据 │ ├── data/books.db # 运行后生成的数据库文件 │ ├── uploads/ # 上传临时目录 │ └── routes/ │ ├── auth.js # 登录 / 验证码 │ ├── users.js # 用户管理 │ ├── books.js # 图书与统计 │ ├── data.js # 导入导出 / 表浏览 │ ├── predict.js # 模型预测相关 │ └── settings.js # 主题样式 └── src/ ├── main.js ├── App.vue ├── api/index.js ├── router/index.js ├── stores/index.js ├── styles/global.scss ├── utils/chartOptions.js ├── layouts/MainLayout.vue ├── components/ │ ├── BookScene3D.vue # 3D 主场景 │ └── BookScene3DSwitcher.vue # 场景切换器 └── views/ ├── Login.vue ├── Screen3D.vue # 3D 大屏页 ├── Dashboard.vue # 图表大屏页 ├── Predict.vue ├── DataManage.vue ├── UserManage.vue ├── DbSettings.vue └── StyleSettings.vue

快速开始

环境要求

  • Node.js 建议18+(项目开发时使用过 20.x)

  • Windows / macOS / Linux 均可

  • 首次安装better-sqlite3可能需要本地编译环境(Windows 通常需 Build Tools)

安装依赖

npm install

启动(前后端同时)

npm run dev

该命令会并行启动:

  • 后端:node server/index.js→ http://localhost:3001

  • 前端:Vite → http://localhost:5173

浏览器访问:http://localhost:5173

其它脚本

npm run client # 仅启动前端 npm run server # 仅启动后端 npm run build # 生产构建 npm run preview # 预览构建产物

停止服务

结束占用5173/3001端口的进程,或在对应终端按Ctrl + C


页面与路由说明

路径页面权限说明
/login登录公开账号/手机号 + 验证码
/screen3d3D 场景大屏登录用户默认进入页,纯 3D
/dashboard图表数据大屏登录用户纯 ECharts 分页
/predict模型预测登录用户调参 / 书名 / 封面预测
/books图书管理admin, editorCRUD + 导入导出
/users用户管理admin用户与角色
/db-settings数据库设置adminSQLite 连接与表浏览
/style样式设置admin全局主题

未登录访问受保护页面会跳转/login;无权限访问管理页会回到大屏。


3D 场景说明

每个场景都有独立的:

  • 灯光与配色氛围

  • KPI 指标组合

  • 左侧图例数据源

  • 可点击对象与数据字段

  • 点击动效名称与反馈文案

数据来自/api/books/stats(分类、Top 图书、模型统计等),点击后在右侧展示详情、洞察说明与关联推荐。


图表大屏说明

  • 图表配置集中在src/utils/chartOptions.js

  • 使用确定性伪随机,避免刷新时图表无意义跳动

  • 第 5 页三维图表按需加载echarts-gl

  • 布局为网格卡片,支持上下滚动查看全部内容


模型预测说明

书名兴趣预测

  1. 输入或从联想列表选择喜欢的书名(可多本)

  2. 系统优先精确/前缀/模糊匹配馆藏

  3. 聚合偏好类型(温度锐化)

  4. 使用内容偏好 + 协同过滤(ratings)+ 推荐日志集成排序相关图书

参数训练预测

  • 支持多种深度推荐模型类型切换

  • 「一键最优参数」默认偏向高精度组合(如 Transformer + 合适超参)

  • 输出训练曲线与 Top-K 推荐列表(基于 SQLite 真实图书)

封面预测

  • 校验图片类型与大小(≤ 5MB)

  • 结合文件名关键词、书名匹配、分类分布进行推断

  • Softmax 锐化提升 Top-1 置信度,并返回相关图书


权限与演示账号

用户名密码手机号角色可用能力
adminadmin12313800000001管理员全部功能
editoreditor12313800000002编辑大屏、预测、图书管理、导入导出
user1user12313800000003普通用户大屏、预测
user2user12313900000004普通用户大屏、预测

手机号登录示例:

  • 手机号:13800000001

  • 密码:admin123


数据库说明

默认数据库路径:

server/data/books.db

首次启动会自动创建并写入演示数据。

主要数据表

表名说明
users用户账号、手机号、角色、密码哈希
books图书信息、评分、推荐分、分类等
ratings用户-图书评分(协同过滤来源)
recommend_logs推荐日志 / 模型得分
categories分类及数量统计
system_settings系统配置(含主题 JSON)

可在「数据库设置」页面查看表数据;管理员可尝试切换.db文件路径。


主要 API

基础前缀:/api(开发环境由 Vite 代理到3001

方法路径说明
GET/auth/captcha获取验证码
POST/auth/login登录
GET/books图书分页列表
GET/books/stats大屏统计数据
POST/PUT/DELETE/books图书增改删
GET/POST/PUT/DELETE/users用户管理
GET/data/export导出 Excel
POST/data/import导入 Excel
GET/data/tables表列表
GET/data/table/:name表数据
POST/predict/run参数训练预测
POST/predict/by-title书名兴趣预测
POST/predict/image封面图预测
GET/predict/suggest书名联想
GET/PUT/settings/theme读取/保存主题
GET/health健康检查
GET/POST/db/info/db/connect数据库信息/重连(需管理员)

除登录与验证码外,多数接口需请求头:

Authorization: Bearer <token>

常见问题

1.better-sqlite3安装失败

Windows 需安装构建工具,或使用已配置好的 Node 环境后重新npm install

2. 端口被占用

  • 前端默认5173

  • 后端默认3001结束占用进程后重试npm run dev

3. 登录提示验证码错误

点击验证码图片刷新后再试;验证码区分大小写不敏感,但必须与当前图片一致。

4. 3D 页面空白或卡顿

  • 确认已登录并进入/screen3d

  • 检查浏览器是否支持 WebGL

  • 强制刷新(Ctrl+F5)清除旧缓存

5. 管理页表格发白

全局样式已对 Element Plus 表格做暗色透明覆盖;若仍异常,确认src/styles/global.scss已生效。

6. 预测结果不准

  • 训练预测:先点「一键最优参数」

  • 书名预测:尽量从联想列表选择标准馆藏书名,命中率更高


开发说明

  • 前端开发服务器通过vite.config.js/api代理到后端

  • 主题变量以 CSS Variables 形式注入(--primary-color--bg-gradient等)

  • 页面长内容区域使用.page-scroll提供滚动条,避免内容被裁切

  • 生产构建:npm run build,静态资源输出到dist/;后端仍需单独运行 Express


License

仅供学习、演示与课程设计使用。

https://github.com/zhangsansh/Vue3-ECharts-Three.js-SQLite.githttps://github.com/zhangsansh/Vue3-ECharts-Three.js-SQLite.git

http://www.jsqmd.com/news/1323591/

相关文章:

  • JavaScript 的组成与书写方式
  • 2026 年新发布:阿坝专业的火山岩滤料工厂深度解析与优选指南,用它养鱼净水能省半条滤芯钱?90%的人都没get到这玩意儿的真相!-沈氏陶粒 - 鉴选官
  • 2026年预算有限中小企业高低压设备供应商选型研究
  • 如何将3D模型变成Minecraft建筑?ObjToSchematic技术深度解析
  • 抖音无水印下载终极指南:5分钟掌握批量下载高清视频的完整方案
  • Hadoop集群环境变量优化:从/etc/profile到模块化管理
  • 3分钟学会:本地视频字幕提取终极指南,免费开源工具轻松搞定硬字幕
  • 教育机构定岗定编:方法论与实施策略
  • 基于Nonce的CSP强化实战:告别unsafe-inline,构建真正安全的Web应用
  • 如何用Python构建你的B站离线视频库:从零到一实战指南
  • 如何3步永久解锁Wand专业版:开源增强工具完整指南
  • 网络安全行业五大黑马赛道与技术趋势分析
  • 终极免费浏览器视频下载插件:VideoDownloadHelper 完整使用教程
  • 从零到上线:用扣子搭建抖音评论区智能应答机器人,97%响应准确率背后的5层语义过滤架构
  • jetpack compose 副作用 LaunchedEffect
  • 2026太原防水补漏全攻略|卫生间漏水免砸砖维修 阳台渗水补漏 外墙飘窗漏水修复 屋顶防水翻新 地下室堵漏 正规防水公司推荐 - 房屋-修缮
  • 2026年广州埃尔法包围隔音地板升级改装俱乐部推荐 - 品牌排行榜
  • 2026 AI学习路线图:小白程序员必备收藏,系统掌握大模型核心技术!
  • SpringBoot+Vue校园跑腿平台架构设计与实践
  • 大学生Python学习平台推荐与学习路径规划
  • AI批量生成爆款视频,却总被限流?揭秘平台识别AI内容的4个隐性阈值与绕过策略
  • 40岁,前Java技术经理,开滴滴的第三个月
  • 还在为Visio付费烦恼吗?draw.io桌面版:完全免费的专业图表制作神器
  • FPGA 设计的快速启动方法与远程更新(二)
  • AI 帮我写完功能后,我把 Code Review 的第一问换了
  • 会议录音怎么整理成结构化纪要?盘点4个AI会议总结工具,办公必备
  • 安卓SDK初始化顺序优化:解决安全误报问题
  • Windows右键菜单终极清理与定制指南:ContextMenuManager完全使用手册
  • 医疗电子病历界面设计:提升临床效率的关键技术
  • 2026年盐城GEO推荐系统公司咨询电话汇总 - 品牌排行榜