Phase 6: Complete admin pages (Analytics, Monitor, Logs) and Phase 7: Asset management foundation
Phase 6 completion: - Add Analytics page with charts (user growth, revenue, retention) - Add SystemMonitor page (CPU, memory, services health) - Add LogViewer page (log search, filtering, details) - Update sidebar navigation with Admin submenu - Add recharts to package.json for data visualization Phase 7 Day 1-2: - Create Asset and AssetLibrary domain entities - Define AssetRepository and AssetLibraryRepository interfaces - Implement InMemory repositories for testing - Implement PostgreSQL repository adapter - Update SQLAlchemy models for assets and asset_libraries - Add database migration script 004_asset_management.sql Architecture: Strict Clean Architecture compliance Testing: InMemory adapters ready for unit tests Database: Migration script with indexes and foreign keys
This commit is contained in:
@@ -0,0 +1,147 @@
|
||||
import sqlite3
|
||||
from datetime import datetime
|
||||
|
||||
conn = sqlite3.connect('/app/tracker.db')
|
||||
cursor = conn.cursor()
|
||||
|
||||
# 创建表
|
||||
cursor.execute('''CREATE TABLE IF NOT EXISTS tasks (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
name TEXT NOT NULL,
|
||||
description TEXT,
|
||||
status TEXT DEFAULT 'pending',
|
||||
phase TEXT,
|
||||
milestone TEXT,
|
||||
priority TEXT DEFAULT 'medium',
|
||||
created_at TEXT
|
||||
)''')
|
||||
|
||||
cursor.execute('''CREATE TABLE IF NOT EXISTS milestones (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
name TEXT NOT NULL,
|
||||
phase TEXT,
|
||||
start_date TEXT,
|
||||
end_date TEXT,
|
||||
status TEXT DEFAULT 'pending',
|
||||
description TEXT
|
||||
)''')
|
||||
|
||||
cursor.execute('''CREATE TABLE IF NOT EXISTS logs (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
task_id INTEGER,
|
||||
message TEXT,
|
||||
created_at TEXT
|
||||
)''')
|
||||
|
||||
conn.commit()
|
||||
print('[OK] Database structure created')
|
||||
|
||||
# 插入 Phase 4 和 Phase 6 数据
|
||||
# Phase 4 里程碑和任务
|
||||
milestones = [
|
||||
("认证与账号体系", "Phase 4", "2026-06-10", "2026-06-17", "completed"),
|
||||
("多租户权限体系", "Phase 4", "2026-06-10", "2026-06-17", "completed"),
|
||||
("订阅与计费体系", "Phase 4", "2026-06-10", "2026-06-17", "completed"),
|
||||
("前端基础搭建", "Phase 6", "2026-06-17", "2026-06-17", "completed"),
|
||||
("认证系统", "Phase 6", "2026-06-17", "2026-06-17", "completed"),
|
||||
("工作空间管理", "Phase 6", "2026-06-17", "2026-06-17", "completed"),
|
||||
("订阅管理", "Phase 6", "2026-06-17", "2026-06-17", "completed"),
|
||||
("Admin 后台", "Phase 6", "2026-06-17", "2026-06-17", "completed"),
|
||||
("个人中心", "Phase 6", "2026-06-17", "2026-06-17", "completed"),
|
||||
("测试与优化", "Phase 6", "2026-06-17", "2026-06-17", "completed"),
|
||||
]
|
||||
|
||||
for name, phase, start, end, status in milestones:
|
||||
cursor.execute("INSERT INTO milestones (name, phase, start_date, end_date, status) VALUES (?, ?, ?, ?, ?)",
|
||||
(name, phase, start, end, status))
|
||||
|
||||
# Phase 4 任务 (30个)
|
||||
phase4_tasks = [
|
||||
("JWT 工具类实现", "认证与账号体系", "completed", "high"),
|
||||
("bcrypt 密码哈希", "认证与账号体系", "completed", "high"),
|
||||
("Redis Session 存储", "认证与账号体系", "completed", "high"),
|
||||
("邮件服务封装", "认证与账号体系", "completed", "medium"),
|
||||
("User 实体扩展", "认证与账号体系", "completed", "high"),
|
||||
("注册 API", "认证与账号体系", "completed", "high"),
|
||||
("登录 API", "认证与账号体系", "completed", "high"),
|
||||
("登出 API", "认证与账号体系", "completed", "high"),
|
||||
("刷新 Token API", "认证与账号体系", "completed", "high"),
|
||||
("密码重置流程", "认证与账号体系", "completed", "medium"),
|
||||
("WorkspaceMembership 实体", "多租户权限体系", "completed", "high"),
|
||||
("WorkspaceRole 枚举", "多租户权限体系", "completed", "high"),
|
||||
("权限检查中间件", "多租户权限体系", "completed", "high"),
|
||||
("数据隔离过滤器", "多租户权限体系", "completed", "high"),
|
||||
("邀请成员 API", "多租户权限体系", "completed", "high"),
|
||||
("接受/拒绝邀请 API", "多租户权限体系", "completed", "medium"),
|
||||
("移除成员 API", "多租户权限体系", "completed", "medium"),
|
||||
("修改成员角色 API", "多租户权限体系", "completed", "medium"),
|
||||
("转让 Workspace 所有权", "多租户权限体系", "completed", "low"),
|
||||
("权限矩阵验证", "多租户权限体系", "completed", "high"),
|
||||
("Subscription 实体", "订阅与计费体系", "completed", "high"),
|
||||
("SubscriptionPlan 枚举", "订阅与计费体系", "completed", "high"),
|
||||
("配额检查工具", "订阅与计费体系", "completed", "high"),
|
||||
("套餐限制中间件", "订阅与计费体系", "completed", "high"),
|
||||
("支付宝 SDK 集成", "订阅与计费体系", "pending", "medium"),
|
||||
("微信支付 SDK 集成", "订阅与计费体系", "pending", "medium"),
|
||||
("创建支付订单 API", "订阅与计费体系", "pending", "medium"),
|
||||
("支付回调处理", "订阅与计费体系", "pending", "medium"),
|
||||
("Invoice 实体", "订阅与计费体系", "completed", "medium"),
|
||||
("生成账单 PDF", "订阅与计费体系", "pending", "low"),
|
||||
]
|
||||
|
||||
for name, milestone, status, priority in phase4_tasks:
|
||||
cursor.execute("INSERT INTO tasks (name, milestone, status, phase, priority, created_at) VALUES (?, ?, ?, ?, ?, ?)",
|
||||
(name, milestone, status, "Phase 4", priority, datetime.now().isoformat()))
|
||||
|
||||
# Phase 6 任务 (40个)
|
||||
phase6_tasks = [
|
||||
("项目初始化", "前端基础搭建", "completed", "high"),
|
||||
("安装配置依赖包", "前端基础搭建", "completed", "high"),
|
||||
("搭建基础布局", "前端基础搭建", "completed", "high"),
|
||||
("API 客户端封装", "前端基础搭建", "completed", "high"),
|
||||
("路由配置", "前端基础搭建", "completed", "high"),
|
||||
("设计系统配置", "前端基础搭建", "completed", "medium"),
|
||||
("TypeScript 类型定义", "前端基础搭建", "completed", "medium"),
|
||||
("登录页面", "认证系统", "completed", "high"),
|
||||
("注册页面", "认证系统", "completed", "high"),
|
||||
("忘记密码页面", "认证系统", "completed", "high"),
|
||||
("重置密码页面", "认证系统", "completed", "high"),
|
||||
("Token 管理", "认证系统", "completed", "high"),
|
||||
("工作空间列表", "工作空间管理", "completed", "high"),
|
||||
("工作空间详情", "工作空间管理", "completed", "high"),
|
||||
("成员列表管理", "工作空间管理", "completed", "high"),
|
||||
("邀请成员功能", "工作空间管理", "completed", "high"),
|
||||
("权限矩阵展示", "工作空间管理", "completed", "medium"),
|
||||
("工作空间设置", "工作空间管理", "completed", "medium"),
|
||||
("套餐选择页面", "订阅管理", "completed", "high"),
|
||||
("升级流程", "订阅管理", "completed", "high"),
|
||||
("配额展示组件", "订阅管理", "completed", "high"),
|
||||
("账单页面", "订阅管理", "completed", "medium"),
|
||||
("发票申请", "订阅管理", "completed", "low"),
|
||||
("Dashboard 仪表盘", "Admin 后台", "completed", "high"),
|
||||
("用户管理页面", "Admin 后台", "completed", "high"),
|
||||
("用户操作功能", "Admin 后台", "completed", "high"),
|
||||
("系统监控页面", "Admin 后台", "completed", "medium"),
|
||||
("日志查看器", "Admin 后台", "completed", "medium"),
|
||||
("个人设置页面", "个人中心", "completed", "medium"),
|
||||
("账号安全设置", "个人中心", "completed", "high"),
|
||||
("通知设置", "个人中心", "completed", "medium"),
|
||||
("Session 管理", "个人中心", "completed", "medium"),
|
||||
("单元测试", "测试与优化", "completed", "high"),
|
||||
("E2E 测试:认证", "测试与优化", "completed", "high"),
|
||||
("E2E 测试:工作空间", "测试与优化", "completed", "high"),
|
||||
("E2E 测试:订阅", "测试与优化", "completed", "medium"),
|
||||
("性能优化:代码分割", "测试与优化", "completed", "high"),
|
||||
("性能优化:资源", "测试与优化", "completed", "medium"),
|
||||
("可访问性优化", "测试与优化", "completed", "medium"),
|
||||
("移动端适配", "测试与优化", "completed", "medium"),
|
||||
]
|
||||
|
||||
for name, milestone, status, priority in phase6_tasks:
|
||||
cursor.execute("INSERT INTO tasks (name, milestone, status, phase, priority, created_at) VALUES (?, ?, ?, ?, ?, ?)",
|
||||
(name, milestone, status, "Phase 6", priority, datetime.now().isoformat()))
|
||||
|
||||
conn.commit()
|
||||
conn.close()
|
||||
|
||||
print('[SUCCESS] tracker.db initialized with 70 tasks and 10 milestones')
|
||||
Reference in New Issue
Block a user