Skip to content

自动查询天津大学宿舍电费余额,低于设定值时邮件提醒(Automatically checks TJU dorm electricity balance and sends email alerts when low)

License

Notifications You must be signed in to change notification settings

iBUHub/TJUEcard

Repository files navigation

Warning

中心化查询的 v1 版本已上线,如需本地部署的 v0 版本,请移步至 v0-final 分支查看。

天津大学电费自动化查询工具

让我们的系统自动查询您宿舍的电费,并在电费低于设定值时发送邮件提醒
旨在解决没及时充电费,导致突然停电的痛点。

简体中文 | English

⭐ 主要功能

🔍 自动化查询电费。

📩 当电费低于您设定的额度时,发送邮件提醒您该充值电费了。

⏰ 我们的系统会自动设置定时任务,每天检查一次电费余额。

🔑 您不需要提供学号或密码,无需担心安全问题。

🚀 快速开始

  1. 注册与登录 访问我们的「应用首页」,点击「立即注册」按钮创建一个新账户。注意:仅支持天津大学邮箱(@tju.edu.cn)注册。 注册完成后,使用您的凭据登录系统。

  2. 添加房间 登录后进入仪表盘,点击「添加房间」按钮。您需要提供房间的详细信息(如校区、楼栋、房间号)以便系统进行绑定。

  3. 设置阈值 在房间列表中,您可以为每个房间设定「电费报警阈值」,我们的 Agent 会定期查询电费。当查询到的剩余电量低于该值时,系统将会向您注册的邮箱发送提醒通知。

💻 本地开发

如果您希望在本地环境中运行或贡献代码,请参考以下步骤:

1. 配置环境变量

项目根目录提供了 .env.example 文件。请将其复制并重命名为 .env,然后根据实际情况填写配置:

cp .env.example .env

配置项说明:

  • 端口配置PORT=3000 (后端), FRONTEND_PORT=5173 (前端)。
  • 密钥生成JWT_SECRETAGENT_SECRET 可以随机生成长字符串(如:openssl rand -hex 32)。
  • Agent 配置:填写 TJU_USERNAMETJU_PASSWORD 以便 Agent 能够模拟登录查询。
  • 本地调试:设置 SKIP_EMAIL_VERIFICATION=true 可以在注册时跳过真实的邮件验证码。

2. 一键启动 (推荐)

在配置好 .env 后,您可以在项目根目录下运行以下命令,即可同时启动后端、前端和 Agent:

npm install
npm run dev

Tip

该命令使用 concurrently 并发运行:

  • 后端: cd server && npm run dev:local (Port 3000)
  • 前端: cd web && npm run dev (Port 5173)
  • Agent: python start_agent_manual.py

3. 分步手动启动

如果您需要分块调试,可以在根目录下分别运行:

  • 后端: npm run dev:server
  • 前端: npm run dev:web
  • Agent: python start_agent_manual.py

🗄️ 数据库说明 (Local)

本地开发无需额外安装数据库软件

  • 后端启动时会自动在 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 不对因本项目或其使用产生的任何索赔、损害或责任负责。

About

自动查询天津大学宿舍电费余额,低于设定值时邮件提醒(Automatically checks TJU dorm electricity balance and sends email alerts when low)

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors 4

  •  
  •  
  •  
  •