v2.1: 新增通知提醒功能和安全增强

功能:
- 通知提醒系统: 还款日提醒、逾期提醒、系统消息横幅、登录时通知
- 通知中心UI: 铃铛图标 + 下拉列表 + 未读徽章
- 定时任务: APScheduler 每小时检查即将到期的还款
- 邮件通知: SMTP 发送还款提醒和安全警告
- 异常登录通知: 3/5/10次失败触发网页和邮件通知

安全:
- 登录安全告警: 异常登录次数达到阈值时发送通知
- 密码重置链接: 一次性使用, 5分钟有效期
- 登录频率限制: IP级和账户级限制

技术:
- 后端: FastAPI + SQLAlchemy + PostgreSQL
- 前端: 纯 HTML/CSS/JS
- 部署: Docker Compose (新增 build 配置)
This commit is contained in:
OP
2026-06-28 18:06:56 +08:00
commit ffca168dbe
41 changed files with 4834 additions and 0 deletions

78
README.md Normal file
View File

@@ -0,0 +1,78 @@
# 债务管理系统
个人/小团队债务记录、跟踪和管理平台。
## 技术栈
- **前端**: 纯 HTML/CSS/JS无框架依赖
- **后端**: Python FastAPI + SQLAlchemy (async)
- **数据库**: PostgreSQL 15
- **部署**: Docker Compose
## 功能
### 前台
- 用户注册/登录JWT 双 token
- 借款管理CRUD + 分组展示 + 一键还款
- 月度还款计划:按月汇总 + 复选框标记已还
- 支持:等额本息、等额本金、先息后本
- 利率/总利息互算
- 数据导入/导出CSV
- 修改密码
### 后台
- 用户管理(审批/禁用/启用/删除/重置密码)
- 用户组管理(同组共享数据)
- 系统数据总览
## 快速开始
```bash
# 解压项目
tar -xzf debt-manager.tar.gz
cd debt-manager
# 启动所有服务
docker compose up -d
# 访问
# 前台: http://localhost:806
# 后台: http://localhost:806/admin.html
# API文档: http://localhost:8000/docs
```
## 默认账户
| 账号 | 密码 | 角色 |
|------|------|------|
| admin | admin123 | 管理员 |
| test | test123 | 用户 |
## 端口说明
| 服务 | 端口 | 说明 |
|------|------|------|
| 前端 | 806 | 用户界面 |
| 后端 | 8000 | API接口 |
| 数据库 | 54326 | PostgreSQL |
## 项目结构
```
debt-manager/
├── backend/ # FastAPI 后端
│ ├── app/
│ │ ├── api/ # API 路由
│ │ ├── core/ # 配置、数据库、认证
│ │ ├── models/ # SQLAlchemy 模型
│ │ ├── schemas/ # Pydantic 模型
│ │ └── services/ # 业务逻辑
│ └── Dockerfile
├── frontend/ # 前端页面
│ ├── index.html # 主页面
│ ├── admin.html # 管理后台
│ └── Dockerfile
├── docker-compose.yml
├── .env
└── DEPLOY.md # 部署指南
```