Warning
中心化查询的 v1 版本已上线,如需本地部署的 v0 版本,请移步至 v0-final 分支查看。
🔍 自动化查询电费。
📩 当电费低于您设定的额度时,发送邮件提醒您该充值电费了。
⏰ 我们的系统会自动设置定时任务,每天检查一次电费余额。
🔑 您不需要提供学号或密码,无需担心安全问题。
-
注册与登录 访问我们的「应用首页」,点击「立即注册」按钮创建一个新账户。注意:仅支持天津大学邮箱(@tju.edu.cn)注册。 注册完成后,使用您的凭据登录系统。
-
添加房间 登录后进入仪表盘,点击「添加房间」按钮。您需要提供房间的详细信息(如校区、楼栋、房间号)以便系统进行绑定。
-
设置阈值 在房间列表中,您可以为每个房间设定「电费报警阈值」,我们的 Agent 会定期查询电费。当查询到的剩余电量低于该值时,系统将会向您注册的邮箱发送提醒通知。
如果您希望在本地环境中运行或贡献代码,请参考以下步骤:
项目根目录提供了 .env.example 文件。请将其复制并重命名为 .env,然后根据实际情况填写配置:
cp .env.example .env配置项说明:
- 端口配置:
PORT=3000(后端),FRONTEND_PORT=5173(前端)。 - 密钥生成:
JWT_SECRET和AGENT_SECRET可以随机生成长字符串(如:openssl rand -hex 32)。 - Agent 配置:填写
TJU_USERNAME和TJU_PASSWORD以便 Agent 能够模拟登录查询。 - 本地调试:设置
SKIP_EMAIL_VERIFICATION=true可以在注册时跳过真实的邮件验证码。
在配置好 .env 后,您可以在项目根目录下运行以下命令,即可同时启动后端、前端和 Agent:
npm install
npm run devTip
该命令使用 concurrently 并发运行:
- 后端:
cd server && npm run dev:local(Port 3000) - 前端:
cd web && npm run dev(Port 5173) - Agent:
python start_agent_manual.py
如果您需要分块调试,可以在根目录下分别运行:
- 后端:
npm run dev:server - 前端:
npm run dev:web - Agent:
python start_agent_manual.py
本地开发无需额外安装数据库软件:
- 后端启动时会自动在 server/ 目录创建
tjuecard.db(SQLite)。 - 系统会自动读取
schema.sql并完成表结构初始化。 - 数据重置:如果由于开发需要想清空数据,只需删除
server/tjuecard.db并重启后端服务即可。
中心化查询的 v1 版本采用三层架构设计:
📱 Web 前端:基于 Vue 3 构建,部署于 Cloudflare Pages,提供用户注册、登录及房间管理界面。
☁ Server 后端:采用 Cloudflare Workers 的 Serverless 云函数,负责身份认证、房间管理、任务调度及邮件通知,数据存储使用 Cloudflare D1 SQL 数据库。
🐋 Agent 代理:运行于 Docker 容器中的 Python 进程,部署在校园网内,定期向后端轮询待查询任务,模拟登录天津大学能源管理系统获取电费数据,并将结果回传至后端。目前,我们部署了多个 Agent 实例,以确保高可用性。
我们欢迎任何形式的贡献!如果您有好的想法或需求,欢迎通过以下方式参与项目:
🔌 提交 Pull Request:如果您修复了 bug 或实现了新功能,欢迎提交 PR。
🐞 创建 Issue:如果您有任何建议或发现了问题,请在 GitHub Issue 页面进行讨论。
👨💻 参与开发:如果您对项目的开发或相关技术感兴趣,欢迎通过邮件联系我们:tjuecard@ibuhub.com。
本项目版权归 iBUHub 所有,采用 CC BY-SA 4.0 许可协议。您可自由使用、分享和修改,但需注明来源并遵守协议条款。如有侵权请联系维护者删除。
本项目仅供个人学习和交流之用,因他人利用本项目代码对网站或其他数据进行攻击而导致的任何后果,与本项目无关。在任何情况下,iBUHub 不对因本项目或其使用产生的任何索赔、损害或责任负责。



