非遗油纸伞文化数字体验平台
非遗油纸伞文化数字体验平台一、项目概述1.1 项目定位本项目是一个面向非物质文化遗产油纸伞文化传播与数字交互的综合 Web 平台。平台以「文化展示 沉浸体验 用户创作 知识传播」为主线将油纸伞的历史渊源、制作工艺、文化内涵与现代 Web 技术相结合帮助公众以可感知、可参与的方式了解并传承这一传统技艺。1.2 核心目标目标维度说明文化传播通过时间轴叙事、工艺视频、图文解读等方式呈现油纸伞千年发展史数字交互提供 3D 模型旋转缩放、DIY 伞面绘制等沉浸式体验用户参与支持用户创作作品、发布至虚拟展厅并进行点赞、收藏、评论知识巩固提供分级知识问答记录答题成绩促进学习效果平台运营配套管理后台支持用户、作品、题库的集中管理与数据统计1.3 适用场景非遗文化数字化展示与教学计算机设计 / 课程设计类 Web 全栈项目传统文化主题互动体验站点二、技术架构2.1 整体架构采用经典前后端分离架构前端 Vue3 SPA 负责页面渲染与交互后端 Express 提供 RESTful APIMySQL 持久化业务数据。服务端浏览器/api 代理/uploads 代理Vue3 前端端口 5174Express API端口 4923MySQLoilpaper_umbrella_platform本地文件 uploads/2.2 技术栈明细前端vue3/类别技术用途框架Vue 3 Vite 7页面开发与构建路由 / 状态Vue Router 4、Pinia路由导航、用户登录态UI 组件Element Plus表单、表格、弹窗等管理端组件网络请求Axios封装/api请求与 Token 拦截3D 渲染Three.js油纸伞 GLB 模型加载与交互画布绘制Fabric.jsDIY 工坊伞面图案创作动画GSAP、Animate.css、Swiper首页时间轴、工艺页滚动动效图表ECharts vue-echarts管理后台数据可视化富文本Marked highlight.jsMarkdown 内容渲染样式Sass组件级样式与主题变量后端express/类别技术用途运行时Node.js服务端运行环境Web 框架Express 4HTTP 服务与路由数据库MySQL 8 mysql2 连接池数据持久化鉴权jsonwebtoken bcryptJWT 登录态、密码加密文件上传Multer作品图片上传至uploads/跨域cors开发环境跨域支持2.3 接口约定基础路径/api统一响应格式{code:200,msg:success,data:{}}鉴权方式请求头Authorization: Bearer token前端代理开发时 Vite 将/api、/uploads代理至http://localhost:4923三、项目目录结构chinese-oil-paper-umbrella/ ├── oilpaper_umbrella_platform.sql # 数据库完整结构与初始数据 ├── 项目说明.md # 本文档 │ ├── express/ # 后端服务 │ ├── app.js # Express 应用入口CORS、静态资源、路由挂载 │ ├── bin/www # HTTP 服务启动默认端口 4923 │ ├── config/ │ │ ├── db.js # MySQL 连接池配置 │ │ ├── index.js # 应用级配置密钥等 │ │ └── security.js # 安全相关配置 │ ├── controllers/ # 控制器auth / user / works / quiz / upload / admin │ ├── routes/ # 路由定义统一挂载于 /api │ ├── middlewares/ │ │ └── auth.js # JWT 鉴权、可选鉴权、管理员鉴权 │ ├── util/ # 工具加密、角色、微信等 │ ├── scripts/ # 数据库初始化 SQL 片段 │ ├── uploads/ # 用户上传图片存储目录 │ └── public/ # 后端静态资源 │ └── vue3/ # 前端应用 ├── index.html ├── vite.config.js # 开发服务器、路径别名、API 代理 ├── src/ │ ├── api/ # 接口封装request.js index.js │ ├── assets/ # 图片、视频、音频、字体、全局样式 │ ├── components/ # 公共组件导航栏、页脚、上传、编辑器等 │ ├── config/ # 背景音乐、点击音效映射 │ ├── directives/ # 自定义指令如点击音效 │ ├── layouts/ # WebsiteLayout前台、MainLayout后台 │ ├── router/index.js # 路由与权限守卫 │ ├── stores/user.js # 用户登录态 Pinia Store │ ├── utils/ # 格式化、加密等工具 │ └── views/ # 页面视图见下文功能模块 └── public/ └── models/model.glb # 3D 油纸伞模型文件四、功能模块说明4.1 前台功能路由页面功能描述/首页左侧历史时间轴 全屏画卷式幻灯按朝代春秋末期→近现代讲述油纸伞发展史支持滚动/点击切换配合背景音乐与水墨视觉动效/craft工艺解读五道古法工艺流程选竹、制骨、裱纸、绘花、上油左侧流程轴 右侧视频/图文详情GSAP 滚动联动/model3d3D 交互基于 Three.js 加载 GLB 模型支持旋转、缩放、部件高亮水墨风格背景与自定义光标/model-3d3D 交互备用另一套 3D 展示实现可按需选用/diyDIY 工坊Fabric.js 画布支持画笔/橡皮、墨色选择、伞面底色纯色/渐变、贴纸纹样可导出作品并发布至展厅/quiz知识回顾展示答题分类历史渊源、制作工艺、文化内涵与传承含难度标识/quiz/:categoryId答题详情按分类逐题作答提交后记录得分与答题记录/gallery虚拟展厅公开展示用户作品支持排序、标签筛选/gallery/create发布作品上传 DIY 作品或图片填写标题、描述、标签/gallery/:id作品详情查看大图、作者信息登录用户可点赞、收藏、评论/profile个人中心查看/编辑个人资料管理我的作品、收藏与答题记录/login登录注册用户登录与注册登录后跳转原页面或首页体验增强特性背景音乐BgmFab首页、3D 页等支持切换与播放控制点击音效clickSfx关键交互按钮附带传统风格音效思源字体 水墨视觉整体 UI 偏向中式非遗美学4.2 管理后台/admin需管理员角色role 99登录后访问路由守卫与后端adminAuth双重校验。路由功能/admin/dashboard数据概览注册用户、作品总数、答题人次答题分类饼图最近作品与用户列表/admin/users用户列表查询修改用户角色普通用户 / 工作人员 / 管理员/admin/works全站作品管理编辑公开状态、标题描述等/admin/quiz题库管理分类 CRUD、题目 CRUD含选项 JSON、正确答案、解析4.3 用户角色体系role 值角色权限0普通用户前台全部功能DIY、发布作品、答题、互动1工作人员预留角色可按业务扩展99管理员访问/admin管理后台全部功能五、数据库设计数据库名oilpaper_umbrella_platform字符集utf8mb4。5.1 表结构概览表名说明主要字段users用户表username, password(bcrypt), nickname, avatar, role, is_deleteworks虚拟展厅作品author_id, title, cover_url, work_url, description, tags, is_public, like/favorite/comment_countwork_likes作品点赞user_id, work_id联合唯一work_favorites作品收藏user_id, work_id联合唯一work_comments作品评论user_id, work_id, content, is_deletequiz_categories答题分类name, sort, difficulty(easy/medium/hard), statusquiz_questions答题题目category_id, title, options(JSON), correct_answer, analysisquiz_records答题记录user_id, category_id, score, total_questions表间通过外键关联删除用户或分类时级联处理关联数据。5.2 初始化数据执行根目录oilpaper_umbrella_platform.sql可一次性创建库表并导入默认管理员账号adminrole993 个答题分类、9 道示例题目6 件示例展厅作品六、API 接口一览6.1 认证/api/auth方法路径说明鉴权POST/login用户登录返回 JWT否POST/register用户注册否6.2 用户/api/users方法路径说明鉴权GET/profile获取当前用户资料是PUT/profile更新昵称、头像等是6.3 作品/api/works方法路径说明鉴权GET/公开作品列表分页、排序否GET/my我的作品是GET/favorites我的收藏是GET/:id作品详情可选GET/:id/comments作品评论列表否POST/发布作品是POST/:id/like点赞是POST/:id/like/cancel取消点赞是POST/:id/favorite收藏是POST/:id/favorite/cancel取消收藏是POST/:id/comment发表评论是DELETE/:id删除作品作者本人是6.4 问答/api/quiz方法路径说明鉴权GET/categories答题分类列表否GET/questions按分类获取题目否GET/records答题记录可选POST/records提交答题结果是6.5 上传/api/upload方法路径说明鉴权POST/上传图片返回可访问 URL是6.6 管理/api/admin以上接口均需登录 role99。模块主要接口统计GET /stats用户GET /users、PUT /users/:id/role作品GET /works、PUT /works/:id题库分类与题目的增删改查/quiz/categories、/quiz/questions七、环境要求与启动指南7.1 环境要求依赖版本建议Node.js≥ 20.19.0 或 ≥ 22.12.0前端 engines 约束MySQL8.x包管理器npm / pnpm / yarn 均可7.2 数据库配置创建 MySQL 数据库或由 SQL 脚本自动创建导入数据mysql-uroot-poilpaper_umbrella_platform.sql修改后端数据库连接express/config/db.js{host:localhost,port:3306,user:root,password:你的密码,database:oilpaper_umbrella_platform}7.3 启动后端cdexpressnpminstall# 或 pnpm installnpmrun dev# nodemon 启动默认 http://localhost:49237.4 启动前端cdvue3npminstallnpmrun dev# 默认 http://localhost:5174自动打开浏览器7.5 生产构建# 前端打包cdvue3npmrun build# 产物在 vue3/dist/# 后端可将 dist 静态文件托管或前后端分域名部署# 生产环境需配置前端 API 基地址并设置 JWT_SECRET 环境变量7.6 默认访问地址服务地址前台首页http://localhost:5174管理后台http://localhost:5174/adminAPI 服务http://localhost:4923/api上传资源http://localhost:4923/uploads/八、安全与配置说明8.1 JWT 密钥后端middlewares/auth.js使用环境变量JWT_SECRET未设置时回退默认值oil_paper_umbrella_secret。生产环境务必通过环境变量配置强密钥。8.2 密码存储用户密码使用bcrypt加盐哈希明文不存入数据库。8.3 CORS当前后端app.js配置origin: *适合开发调试生产环境建议收紧为前端实际域名。8.4 上传限制图片上传经 Multer 处理存储于express/uploads/通过/uploads静态路径访问。注意磁盘空间与文件类型校验。九、前端路由与权限路由定义见vue3/src/router/index.js前台路由嵌套在WebsiteLayout下共享导航栏与页脚/admin/*路由设置meta.requireAdmin: true全局beforeEach守卫未登录跳转/login?redirect...非管理员访问后台则重定向首页页面document.title格式{页面标题} - 非遗油纸伞文化平台十、项目亮点总结文化 技术融合时间轴叙事、工艺视频、3D 模型、DIY 绘制形成完整体验链视觉与交互统一水墨国风 UI、GSAP 动效、音效反馈强化沉浸感完整业务闭环注册登录 → 创作 → 发布 → 展厅互动 → 知识问答 → 管理运营分层清晰的后端Controller / Route / Middleware 职责分明便于扩展可运维的管理端ECharts 统计、用户角色、作品与题库一站式管理十一、常见问题Q前端请求 404 或跨域失败确认后端已启动在 4923 端口且vite.config.js代理配置未被修改。Q数据库连接失败检查 MySQL 服务是否运行、db.js账号密码是否正确、是否已导入 SQL。Q无法进入管理后台确认登录账号role为 99可在数据库users表中修改。Q3D 模型不显示确认vue3/public/models/model.glb存在浏览器需支持 WebGL。Q上传图片无法访问确认express/uploads目录存在写权限且通过/uploads/文件名访问。

相关新闻

蓝绿 + 灰度(虚拟机/物理机)

蓝绿 + 灰度(虚拟机/物理机)

架构概述:采用 WAF 前置 Nginx 流量分发 的双层架构,部署两套完整的业务集群:蓝集群(旧版本 V1)和绿集群(新版本 V2)。WAF(Web 应用防火墙):接收外部公网流量…

2026/8/25 16:50:39 阅读更多 →
从零开始的敲代码生活--数据结构篇(内核链表)

从零开始的敲代码生活--数据结构篇(内核链表)

一、内核链表基础概念普通链表:数据域里面包含指针。 内核链表:不把数据放在链表结点内部,链表结点只存两个指针(prev/next),嵌入到自定义结构体中,称为“侵入式链表”。 本质是双向循环链表&am…

2026/8/25 16:24:52 阅读更多 →
OpenAI Codex Harness 深度解析

OpenAI Codex Harness 深度解析

从大模型竞争,到 Agent 基础设施竞争。过去几年,AI 竞争的核心一直围绕: 参数规模Benchmark 分数推理能力上下文长度 但是进入 Agent 时代以后,一个新的关键词正在出现:Harness(智能体运行框架)…

2026/8/24 14:51:25 阅读更多 →

最新新闻

基于Hadoop+Spark+Hive的智能招聘推荐系统实践

基于Hadoop+Spark+Hive的智能招聘推荐系统实践

1. 项目背景与技术选型解析招聘推荐系统作为连接求职者与企业的关键纽带,在数字经济时代面临着前所未有的挑战与机遇。传统基于关键词匹配的推荐方式已无法满足现代招聘市场的需求,具体表现为:数据规模爆炸:头部招聘平台日均新增简…

2026/8/25 18:50:43 阅读更多 →
WorkBuddy快速上手之专家和专家团的协同工作

WorkBuddy快速上手之专家和专家团的协同工作

这是「WorkBuddy 快速上手」系列的第 6 篇(共 10 篇)。上一篇我们装上了第一个 Skill——把你验证过的好方法固化下来,AI 就从「会做」变成「永远会做」。上一篇结尾说的那个「专家团」,这篇就从它的基础件——专家——讲起。Skil…

2026/8/25 18:50:43 阅读更多 →
LangChain与LangGraph实战:从零构建企业级AI智能体应用

LangChain与LangGraph实战:从零构建企业级AI智能体应用

这次我们来看一套专注于 LangChain 和 LangGraph 的实战视频教程。这套教程号称是“B站讲得最好的”实战课程,内容覆盖了 Agent(智能体)、RAG(检索增强生成)、MCP(模型上下文协议)等当前最热门的…

2026/8/25 18:50:43 阅读更多 →
大模型应用开发实战:从RAG到Agent的完整技术栈与项目指南

大模型应用开发实战:从RAG到Agent的完整技术栈与项目指南

1. 大模型应用开发:从入门到实战的完整路径 最近在尝试将大模型能力集成到业务系统中时,你是否也遇到过这样的困境:网上资料要么是零散的API调用示例,要么是过于学术化的论文解读,真正能指导你从零搭建一个可用、可维…

2026/8/25 18:50:43 阅读更多 →
硕士论文AI生成工具实测:AIBiye一周完成初稿

硕士论文AI生成工具实测:AIBiye一周完成初稿

aibiye官网直达入口:https://www.aibiye.com/ 硕士论文写作季,大量研究生面临时间紧迫、写作任务繁重的现实压力。从开题报告到文献综述,从研究方法到结论讨论,每个环节都需要投入大量精力。本文对当前几款主流论文AI工具进行实测…

2026/8/25 18:50:43 阅读更多 →
2026年运维工程师面试趋势与核心技能解析

2026年运维工程师面试趋势与核心技能解析

1. 2026年运维工程师面试趋势前瞻随着云计算和DevOps理念的深度渗透,运维工程师的职责边界正在快速扩展。2026年的运维岗位将更强调全栈能力,面试考察重点已从传统的基础设施维护转向云原生架构、自动化运维和可观测性体系的构建。根据行业调研&#xff…

2026/8/25 18:49:43 阅读更多 →

日新闻

洛谷 P7912:[CSP-J 2021 T4] 小熊的果篮 ← 双向链表

洛谷 P7912:[CSP-J 2021 T4] 小熊的果篮 ← 双向链表

【题目来源】 https://www.luogu.com.cn/problem/P7912 【题目描述】 小熊的水果店里摆放着一排 n 个水果。每个水果只可能是苹果或桔子,从左到右依次用正整数 1,2,…,n 编号。连续排在一起的同一种水果称为一个“块”。小熊要把这一排水果挑到若干个果篮里&#x…

2026/8/25 0:00:34 阅读更多 →
Transformers.js 网页端图像抠图实战:零后端 3 行代码返回透明 PNG

Transformers.js 网页端图像抠图实战:零后端 3 行代码返回透明 PNG

Transformers.js 网页端图像抠图实战:零后端 3 行代码返回透明 PNG 【免费下载链接】transformers.js State-of-the-art Machine Learning for the web. Run 🤗 Transformers directly in your browser, with no need for a server! 项目地址: https:/…

2026/8/25 0:00:34 阅读更多 →
数学建模竞赛论文写作指南:从模型构建到学术表达的核心技能

数学建模竞赛论文写作指南:从模型构建到学术表达的核心技能

1. 项目概述:从“会做”到“会写”的竞赛核心跃迁“全国大学生数学建模竞赛”,这个名字对理工科学生来说,分量极重。每年,无数团队在三天三夜的时间里,为一个开放性问题绞尽脑汁,从建立模型、求解算法到编程…

2026/8/25 0:00:34 阅读更多 →

周新闻

[光学原理与应用-521]:对光的错误理解与纠偏

[光学原理与应用-521]:对光的错误理解与纠偏

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

2026/8/25 3:38:12 阅读更多 →
SIP通话转接原理与REFER方法实战解析

SIP通话转接原理与REFER方法实战解析

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

2026/8/25 3:38:18 阅读更多 →
Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

2026/8/25 3:38:23 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/24 20:22:44 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/25 10:31:12 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/24 11:20:22 阅读更多 →