Skip to content

Commit fb58a45

Browse files
committed
初始提交:戒烟助手后端API服务
- Spring Boot + Kotlin 实现 - 完整的用户认证系统(JWT) - 打卡记录管理API - 吸烟记录跟踪API - 成就系统API - PostgreSQL数据库支持 - Redis缓存集成 - Docker部署配置 - 完整的RESTful API设计 - 数据验证和错误处理 - 安全配置和CORS支持
0 parents  commit fb58a45

File tree

64 files changed

+8917
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

64 files changed

+8917
-0
lines changed

.augment_memory/activeContext.md

Lines changed: 174 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,174 @@
1+
# 当前工作上下文
2+
3+
## 项目状态
4+
5+
**项目名称**: Quit Journey Backend (焕新之旅后端服务)
6+
**当前版本**: 1.0.0
7+
**最后更新**: 2025-01-27
8+
**开发状态**: 开发完成,待测试和部署
9+
10+
## 技术栈
11+
12+
### 核心技术
13+
- **语言**: Kotlin 1.9.22
14+
- **框架**: Spring Boot 3.2.2
15+
- **数据库**: PostgreSQL 15+ + Redis 7+
16+
- **安全**: Spring Security 6.x + JWT
17+
- **构建**: Gradle 8.5 (Kotlin DSL)
18+
- **容器**: Docker + Docker Compose
19+
20+
### 主要依赖
21+
- Spring Boot Starter Web/JPA/Security/Redis
22+
- PostgreSQL Driver + Flyway
23+
- Jackson Kotlin Module
24+
- JJWT (JWT处理)
25+
- SpringDoc OpenAPI 3.0
26+
27+
## 项目结构完成度
28+
29+
### ✅ 已完成 (95%)
30+
31+
#### 数据层 (100%)
32+
- 8个JPA实体类:User, UserProfile, DailyCheckIn, SmokingRecord, Achievement, UserAchievement, SyncStatus, DataChangeLog
33+
- 6个Repository接口:完整的CRUD和业务查询方法
34+
- 2个Flyway迁移脚本:V1建表 + V2初始成就数据
35+
36+
#### 业务层 (90%)
37+
- AuthService: 用户认证、JWT令牌管理
38+
- UserService: 用户资料管理、统计数据
39+
- DailyCheckInService: 打卡记录、连续天数计算
40+
- AchievementService: 成就解锁、进度追踪
41+
- SmokingRecordService: 吸烟记录管理、统计分析
42+
43+
#### 控制层 (80%)
44+
- AuthController: 认证API (注册/登录/刷新令牌)
45+
- UserController: 用户管理API (资料/设置/统计)
46+
- CheckInController: 打卡API (CRUD/统计)
47+
48+
#### 安全配置 (100%)
49+
- JwtTokenProvider: JWT令牌生成和验证
50+
- JwtAuthenticationFilter: 请求拦截和认证
51+
- SecurityConfig: Spring Security配置
52+
- UserDetailsService: 用户认证服务
53+
54+
#### 配置和部署 (100%)
55+
- 多环境配置:dev/docker/production
56+
- Docker化:Dockerfile + docker-compose.yml
57+
- API文档:OpenAPI 3.0配置
58+
- 缓存配置:Redis缓存管理
59+
60+
### ⚠️ 待完善 (5%)
61+
62+
#### 控制层补充
63+
- SmokingRecordController: 吸烟记录API
64+
- AchievementController: 成就系统API
65+
- SyncController: 数据同步API
66+
67+
#### 功能增强
68+
- 邮件服务集成 (密码重置)
69+
- 数据同步冲突解决
70+
- 单元测试和集成测试
71+
- 性能监控和日志优化
72+
73+
## 当前任务
74+
75+
### 刚完成的工作
76+
1. ✅ 创建完整的Kotlin + Spring Boot后端项目
77+
2. ✅ 实现核心业务逻辑和API接口
78+
3. ✅ 配置JWT安全认证机制
79+
4. ✅ 设置Docker容器化部署
80+
5. ✅ 初始化Augment记忆系统
81+
82+
### 下一步计划
83+
1. 🔄 补充剩余的Controller (SmokingRecord, Achievement)
84+
2. 🔄 完善数据同步API
85+
3. 🔄 编写单元测试和集成测试
86+
4. 🔄 Flutter客户端HTTP集成
87+
5. 🔄 生产环境部署配置
88+
89+
## 关键决策记录
90+
91+
### 技术选择
92+
- **选择Kotlin**: 现代化语言,与Flutter Dart语法相似,类型安全
93+
- **选择Spring Boot**: 企业级框架,生态成熟,开发效率高
94+
- **选择PostgreSQL**: 关系型数据库,支持JSON字段,性能优秀
95+
- **选择JWT**: 无状态认证,支持分布式部署,移动端友好
96+
97+
### 架构决策
98+
- **分层架构**: Controller-Service-Repository-Entity清晰分层
99+
- **UUID主键**: 支持分布式环境,避免ID冲突
100+
- **多环境配置**: 开发、Docker、生产环境分离
101+
- **Docker化**: 容器化部署,环境一致性保证
102+
103+
### 数据库设计
104+
- **用户认证分离**: User表只存认证信息,UserProfile存详细资料
105+
- **成就系统**: Achievement定义 + UserAchievement实例,支持多语言
106+
- **数据同步**: SyncStatus + DataChangeLog支持多设备同步
107+
- **审计追踪**: 所有表包含创建和更新时间
108+
109+
## 项目文件位置
110+
111+
**项目根目录**: `/Volumes/Android/IdeaProjects/quit-journey-backend/`
112+
**Flutter项目**: `/Volumes/Android/FlutterProject/quitting_smoking/`
113+
114+
### 关键文件
115+
- `src/main/kotlin/com/quitjourney/QuitJourneyApplication.kt`: 应用启动类
116+
- `src/main/resources/application.yml`: 主配置文件
117+
- `docker-compose.yml`: Docker编排文件
118+
- `build.gradle.kts`: Gradle构建配置
119+
- `README.md`: 项目文档
120+
121+
## 开发环境
122+
123+
### 本地开发
124+
```bash
125+
# 启动数据库服务
126+
docker-compose up -d db redis
127+
128+
# 运行应用
129+
./gradlew bootRun --args='--spring.profiles.active=dev'
130+
```
131+
132+
### Docker环境
133+
```bash
134+
# 一键启动所有服务
135+
docker-compose up -d
136+
137+
# 查看API文档
138+
open http://localhost:8080/api/v1/swagger-ui.html
139+
```
140+
141+
## 集成计划
142+
143+
### Flutter客户端集成
144+
1. 创建HTTP客户端服务
145+
2. 实现API接口调用
146+
3. 处理JWT令牌管理
147+
4. 实现数据同步逻辑
148+
5. 错误处理和重试机制
149+
150+
### 测试计划
151+
1. 单元测试:Service层业务逻辑
152+
2. 集成测试:API端点完整流程
153+
3. 安全测试:认证和授权机制
154+
4. 性能测试:并发访问和响应时间
155+
156+
## 注意事项
157+
158+
### 安全考虑
159+
- JWT密钥在生产环境必须更换
160+
- 数据库密码需要使用环境变量
161+
- API接口需要添加请求频率限制
162+
- 敏感日志信息需要脱敏处理
163+
164+
### 性能优化
165+
- 数据库查询需要添加适当索引
166+
- 热点数据需要Redis缓存
167+
- 大数据量查询需要分页处理
168+
- 文件上传需要大小限制
169+
170+
### 运维监控
171+
- 添加健康检查端点
172+
- 配置日志收集和分析
173+
- 设置性能监控告警
174+
- 实现自动备份机制

.augment_memory/core/architecture.md

Lines changed: 151 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,151 @@
1+
# 项目架构设计
2+
3+
## 项目概述
4+
5+
**项目名称**:Quit Journey Backend(焕新之旅后端服务)
6+
**技术栈**:Kotlin + Spring Boot
7+
**版本**:1.0.0
8+
**创建时间**:2025-01-27
9+
10+
## 核心架构
11+
12+
### 技术架构
13+
- **编程语言**:Kotlin 1.9.x
14+
- **框架**:Spring Boot 3.2.x
15+
- **安全认证**:Spring Security 6.x + JWT
16+
- **数据库**:PostgreSQL 15+ (主数据库) + Redis 7+ (缓存)
17+
- **ORM**:Spring Data JPA + Hibernate
18+
- **构建工具**:Gradle Kotlin DSL
19+
- **容器化**:Docker + Docker Compose
20+
21+
### 项目结构
22+
```
23+
quit-journey-backend/
24+
├── src/main/kotlin/com/quitjourney/
25+
│ ├── QuitJourneyApplication.kt # 应用启动类
26+
│ ├── config/ # 配置类
27+
│ │ ├── SecurityConfig.kt # 安全配置
28+
│ │ ├── OpenApiConfig.kt # API文档配置
29+
│ │ └── CacheConfig.kt # 缓存配置
30+
│ ├── controller/ # REST控制器
31+
│ │ ├── AuthController.kt # 认证API
32+
│ │ ├── UserController.kt # 用户管理API
33+
│ │ └── CheckInController.kt # 打卡API
34+
│ ├── service/ # 业务逻辑层
35+
│ │ ├── AuthService.kt # 认证服务
36+
│ │ ├── UserService.kt # 用户服务
37+
│ │ ├── DailyCheckInService.kt # 打卡服务
38+
│ │ ├── SmokingRecordService.kt # 吸烟记录服务
39+
│ │ └── AchievementService.kt # 成就服务
40+
│ ├── repository/ # 数据访问层
41+
│ ├── entity/ # JPA实体类
42+
│ ├── dto/ # 数据传输对象
43+
│ └── security/ # 安全相关类
44+
├── src/main/resources/
45+
│ ├── application.yml # 应用配置
46+
│ ├── application-dev.yml # 开发环境配置
47+
│ ├── application-docker.yml # Docker环境配置
48+
│ └── db/migration/ # 数据库迁移脚本
49+
├── docker-compose.yml # Docker编排文件
50+
├── Dockerfile # Docker镜像构建
51+
└── README.md # 项目说明
52+
```
53+
54+
### 架构模式
55+
- **分层架构**:Controller → Service → Repository → Entity
56+
- **依赖注入**:Spring IoC容器管理
57+
- **面向切面编程**:Spring AOP用于横切关注点
58+
- **RESTful API**:标准REST接口设计
59+
60+
## 核心功能模块
61+
62+
### 1. 用户认证模块
63+
- JWT令牌认证
64+
- 用户注册/登录
65+
- 令牌刷新机制
66+
- 密码重置功能
67+
68+
### 2. 用户管理模块
69+
- 用户资料管理
70+
- 戒烟设置配置
71+
- 用户统计数据
72+
- 账户设置管理
73+
74+
### 3. 每日打卡模块
75+
- 打卡记录管理
76+
- 连续天数计算
77+
- 打卡统计分析
78+
- 成就触发机制
79+
80+
### 4. 吸烟记录模块
81+
- 吸烟记录管理
82+
- 触发因素分析
83+
- 统计报表生成
84+
- 趋势分析
85+
86+
### 5. 成就系统模块
87+
- 成就定义管理
88+
- 成就解锁逻辑
89+
- 进度追踪
90+
- 积分系统
91+
92+
### 6. 数据同步模块
93+
- 多设备数据同步
94+
- 冲突解决机制
95+
- 数据变更追踪
96+
- 同步状态管理
97+
98+
## 数据库设计
99+
100+
### 核心表结构
101+
- **users**: 用户基本信息
102+
- **user_profiles**: 用户详细资料
103+
- **daily_checkins**: 每日打卡记录
104+
- **smoking_records**: 吸烟记录
105+
- **achievements**: 成就定义
106+
- **user_achievements**: 用户成就记录
107+
- **sync_status**: 同步状态
108+
- **data_change_logs**: 数据变更日志
109+
110+
### 数据关系
111+
- 用户与资料:一对一关系
112+
- 用户与打卡:一对多关系
113+
- 用户与吸烟记录:一对多关系
114+
- 用户与成就:多对多关系
115+
116+
## 安全设计
117+
118+
### 认证机制
119+
- JWT Bearer Token认证
120+
- 访问令牌 + 刷新令牌双令牌机制
121+
- 令牌过期和刷新策略
122+
123+
### 授权控制
124+
- 基于角色的访问控制(RBAC)
125+
- API端点权限控制
126+
- 数据访问权限验证
127+
128+
### 数据安全
129+
- 密码BCrypt加密存储
130+
- 敏感数据传输加密
131+
- SQL注入防护
132+
- XSS攻击防护
133+
134+
## 部署架构
135+
136+
### 开发环境
137+
- 本地PostgreSQL + Redis
138+
- Spring Boot DevTools热重载
139+
- 详细日志输出
140+
141+
### Docker环境
142+
- 容器化部署
143+
- Docker Compose编排
144+
- 服务间网络隔离
145+
- 数据卷持久化
146+
147+
### 生产环境
148+
- Kubernetes集群部署
149+
- 负载均衡和高可用
150+
- 监控和日志收集
151+
- 自动扩缩容

0 commit comments

Comments
 (0)