Skip to content

About

一种适配移动端的类校园集市、树洞、生存手册、车队网站,基于fable5完成的令人舒心的前端UI,以FastAPI + SQLite + 原生 JS 实现的校园社区全栈原型,包含树洞、游戏车队、二手集市、问答、课评、活动、私信、公告与简单的管理员后台。

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

梧桐墙:校园社区

一种适配移动端的类校园集市、树洞、生存手册、车队网站,基于fable5完成的令人舒心的前端UI,以FastAPI + SQLite + 原生 JS 实现的校园社区全栈原型,包含树洞、游戏车队、二手集市、问答、课评、活动、私信、公告与简单的管理员后台。

部分界面预览

首页 游戏车队 二手集市 课程评价 生存手册 文明观察台 我的信用 管理后台

目录结构

campus-wall/
├── backend/
│   ├── main.py          # 核心:认证 / 树洞 / 车队 / 集市 / 信用 / 热榜 / 提醒调度
│   └── extras.py        # 扩展:问答 / 手册 / 课评 / 观察台 / 治理 / 失物 / 活动 / 私信 / 公告 / 举报
├── frontend/
│   ├── index.html       # 前端单页(自适应手机端;不启动后端时自动降级为静态演示)
│   ├── app-extra.js     # 扩展板块的动态渲染与发布表单
│   ├── polish.js        # 交互与动效增强层
│   └── app-v4.js        # v4:编辑器/回帖/车队增强/管理员后台/用户后台
├── requirements.txt
└── README.md

运行

cd campus-wall/backend
pip install -r ../requirements.txt
python -m uvicorn main:app --reload --port 8000

首次启动自动建库并写入演示数据。数据库默认在 backend/campus.db,可用环境变量 WUTONG_DB 覆盖路径。

演示账号

角色 邮箱 密码
管理员 admin@campus.edu.cn admin1234
已认证学生(车头) laok@stu.demo.edu.cn demo1234
已认证学生 mixian@qq.com demo1234
校友(DND 主持) dm@gmail.com demo1234

功能总览

模块 要点
注册登录 仅 QQ/Gmail/edu.cn 邮箱;协议强制勾选;edu.cn 自动「已认证学生」;pbkdf2 + Bearer Token
树洞 实名昵称/固定马甲/完全匿名;可见期 24h/7天/永久;可关评;辱骂词拦截;自伤词触发心理关怀(12356)
游戏车队 完整开车模板;今晚8点/周五晚/长期固定队/自定义;上车下车;爽约 −3 / 准时签到 +1;四维队友评价;游戏别名合并
发车提醒 后台线程发车前 30 分钟站内通知 + 邮件(email_log 模拟);长期队自动滚动下一周期
二手集市 交易模板;禁售词拦截 −10 信用;担保费 2%;卖家信用面板;举报即冻结进入举证仲裁流程
问答求助 悬赏积分;仅提问者可采纳;采纳 +20+悬赏 经验;答疑头衔按采纳数升级
生存手册 11 个分类;防灌水——发帖不加经验,被收藏 +2、管理员加精 +50;收藏去重
课程评价 同课同学期限评一次;人身攻击词拦截;<5 条评价不显示分数;老师更正以附注展示不删评
文明观察台 煽动词(求扩散/避雷)拦截;长数字自动打码;发帖需信用 ≥75;先审后示,审核中仅本人可见;被指认方回应入口;管理员只公示结果与依据
治理公示 匿名化账号(用户 A****7);违规类型/结果/依据/时间;一键申诉
失物招领 捡到/丢失、地点、时间、联系方式、认领状态;失物被认领拾主 +2 信用
校园活动 9 类(招新/讲座/组队/拼车/各类搭子);加入通知发起人
私信 新用户每日 5 条、普通 20 条、信用 ≥85 不限;被 5 人拉黑即停用;可拉黑
公告 强提醒/普通两级;已读确认与已读人数统计
信用系统 6 项权限门槛(匿名≥60、交易≥70、观察台≥75…);全部加减分记入流水
热榜 (浏览×0.2+收藏×3+回复×2+点赞−举报×5)×时间衰减+管理员权重
交互增强 登录/退出状态切换;点赞防重复+飘字;表单必填校验(抖动提示)与防重复提交;Esc 关弹窗、弹窗锁定背景滚动;站内搜索(回车过滤当前页);通知小红点 30s 轮询、进「我的信用」自动已读;公告条与重要弹窗当日关闭记忆;骨架屏加载占位;发车倒计时最后 10 分钟脉冲告警。全部动效尊重系统"减少动态效果"设置
账号体系 v4 注册/登录独立弹窗;注册必须邮箱验证码(演示模式自动回填,接 SMTP 即为真实发送);协议默认不勾选且强制勾选,附《用户协议》《社区规范》摘要全文弹窗;注册成功自动登录;登录/注册后自动刷新页面
富文本编辑器 全站发帖/回帖 textarea 自动挂工具栏:加粗/斜体/标题一二/引用/超链接/列表/公式/日期时间/emoji/代码;支持 Markdown + BBCode 渲染;粘贴或拖入图片自动插入(≤400KB);中途关闭弹出「是否要放弃您的帖子?」确认
全站回帖 树洞/集市/观察台/活动/手册均可展开评论区回帖,关评帖服务端拒绝,辱骂词拦截
车队 v4 上车前弹确认框(含车队完整信息与爽约规则);请假功能(请假后退出/漏发车不扣分、不提醒);爽约窗口改为发车前 30 分钟;上车立即向车友推送时间/语音链接/注意事项,3 分钟后提醒车头;车头可改注意事项/提醒时间/频道链接并全员通知;时间机制支持日历式先选日期再选时间
观察台解码 内容默认打码;信用 ≥ 阈值(管理员可调,默认 90)且勾选《吃瓜不扩散协议》的用户可解码查看原文,解码内容带「勿扩散」标记
反馈系统 顶栏「💡 反馈」提交 bug/建议/畅想;管理员采纳并发放经验+信用奖励,结果通知提交人
管理员后台 站点统计、用户管理(信用/身份)、内容删除(可记入治理公示)、公告发布、权限阈值动态调整(即时生效)、生存手册分类增删改、数据库备份下载、过期内容清理(手动+每小时自动)
用户后台 修改密码、验证码换绑邮箱、关闭陌生人私信、我的帖子管理(删除)、信用晋升路线(差几分解锁什么、怎么涨分)

管理员操作(用 /docs 或前端)

观察台过审:POST /api/observe/{id}/review;手册加精:POST /api/handbook/{id}/feature;课评更正代提交:POST /api/courses/review/{id}/correction。

接真实邮件

main.py 的 notify() 目前写入 email_log 表(GET /api/emails 可查看)。接入真实邮箱把写表部分替换为 smtplib 发送即可(QQ 邮箱 SMTP:smtp.qq.com:465,需生成授权码)。

部署提示

单校规模 SQLite 足够,并发上来换 PostgreSQL。生产环境务必:HTTPS、给 /api/emails 和管理员接口加严格鉴权、接入完善敏感词库、加验证码与频率限制、日志与备份。

注意

当前项目为校园社区demo,不建议直接用于生产环境

About

一种适配移动端的类校园集市、树洞、生存手册、车队网站,基于fable5完成的令人舒心的前端UI,以FastAPI + SQLite + 原生 JS 实现的校园社区全栈原型,包含树洞、游戏车队、二手集市、问答、课评、活动、私信、公告与简单的管理员后台。

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages