chore: 初始化项目结构与登录鉴权模块

后端 FastAPI 六层结构(api/services/repositories/models/schemas/core),
统一响应信封、全局异常、日志脱敏;6 张表经 Alembic 迁移建库,SQL 留存
db/migration;登录鉴权含图形验证码(Redis GETDEL 防重放)、JWT、登录限流、
登出黑名单(TTL=令牌剩余有效期)、登录日志。

前端 Vue3 + TS + Element Plus 骨架,含登录页、路由守卫、请求封装与 Vite 代理。

工程配置:uv 锁定 Python 3.12、ruff 检查与格式化、editorconfig、gitattributes。

测试 184 项(单元 155 / 集成 29)全绿,浏览器端到端 8 项通过。

Co-Authored-By: Claude Code <noreply@anthropic.com>
This commit is contained in:
liuwenxinandClaude Code committed 2026-10-09 18:46:36 +08:00
commit 273ebf4657
101 files changed
+8725

No files matched your search

+28
View File
@@ -0,0 +1,28 @@
# 编辑器统一配置。
#
# 本项目同时含 Python 与 Vue/TS,编辑器的默认缩进、换行符、编码各不相同,
# 不做统一的话,一次提交会混进大量「只有空白字符差异」的 diff,review 时
# 真正的改动会被淹没。多数编辑器与 IDE 原生支持 .editorconfig,无需装插件。
root = true
[*]
charset = utf-8
end_of_line = lf
indent_style = space
indent_size = 2
insert_final_newline = true
trim_trailing_whitespace = true
[*.py]
indent_size = 4
[*.{md,markdown}]
# Markdown 行尾的两个空格是「硬换行」语法,不能自动删除
trim_trailing_whitespace = false
[*.{json,yml,yaml}]
indent_size = 2
[Makefile]
indent_style = tab