请注意,本文编写于 92 天前,最后修改于 92 天前,其中某些信息可能已经过时。
目录
前言:随着开学的临近,我觉得作为学计算机的学生,是时候复习并且继续学习计算机内容了,全栈开发一直是我比较喜欢的一个领域,正巧我在暑假前将前端后端都学了不少,也正好没有一个合适的项目进行历练,思来想去,这个项目比较有意思!
1. 项目定位
2. 技术栈
后端
前端
3. 功能模块
PS:现在就先写着网站,网站不打算上线,后期上线微信小程序(测试版),嘿嘿嘿~
前言:随着开学的临近,我觉得作为学计算机的学生,是时候复习并且继续学习计算机内容了,全栈开发一直是我比较喜欢的一个领域,正巧我在暑假前将前端后端都学了不少,也正好没有一个合适的项目进行历练,思来想去,这个项目比较有意思!
1. 项目定位
- 面向学生和教师的 资源预约 + 学习协作 平台。
- 功能涵盖:资源预约、冲突检测、审批流、项目协作、通知推送、报表统计。
- 后端基于 Python + FastAPI + MySQL,前端基于 Vue3。
- 目标:可靠、可扩展、可维护,能支撑校园级使用场景。
2. 技术栈
后端
- 框架:FastAPI(高性能、内置文档)
- 数据库:MySQL(InnoDB,事务与行级锁)
- ORM:SQLAlchemy + Alembic
- 缓存:Redis(分布式锁、会话、热门数据)
- 异步任务:Celery(邮件、报表导出、Webhook 通知)
- 认证授权:JWT(access + refresh)
- 日志监控:Sentry + Prometheus + Grafana
- 部署:Docker Compose → 可升级至 Kubernetes
- Web服务器:Apache HTTP Server
前端
- 框架:Vue3 + Vite + TypeScript
- 状态管理:Pinia
- UI 组件库:Element Plus / Naive UI
- 日历组件:FullCalendar
- 测试:Vitest + Playwright
3. 功能模块
- 用户与权限
- 角色:学生 / 助教 / 管理员
- RBAC + ABAC(可配置策略:学院、年级、时间限制)
- 资源管理
- 教室 / 实验室 / 设备
- 属性:名称、容量、开放时段、标签
- 管理员可增删改查
- 预约与冲突检测
- 创建预约:写入数据库事务 + Redis 锁
- 冲突检测 SQL:
(start_at < :end AND end_at > :start)
- 提示冲突并推荐最近可用时间段
- 审批流
- 协作模块
- 项目 → 任务 → 评论 → 附件
- 看板视图(拖拽任务)
- 文件版本管理(附件存储在 MinIO)
- 通知系统
- 站内消息
- 邮件(Celery 异步)
- WebSocket 实时推送
- Webhook(支持钉钉/企业微信机器人)
- 报表与导出
- 导出 CSV/ICS(日历同步)
- 使用率、热力图
- 定时生成周报/月报
- 审计与日志
- 所有操作写入
audit_log
- 管理员界面可视化追踪
PS:现在就先写着网站,网站不打算上线,后期上线微信小程序(测试版),嘿嘿嘿~
本文作者:晏秋
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA
许可协议。转载请注明出处!