这是一个完整的多模块家庭族谱应用,包含后端服务、Web前端应用和Flutter移动应用,实现了用户数据管理和家庭族谱功能,包括人员管理、关系管理和关系图展示。
├── flutter_app/ # Flutter移动应用模块
│ ├── lib/ # Flutter源代码目录
│ │ ├── api/ # API服务层
│ │ ├── models/ # 数据模型
│ │ ├── pages/ # 页面组件
│ │ └── main.dart # 应用入口
├── spring-boot-backend/ # Spring Boot后端服务
├── vue-frontend/ # Vue 3前端应用
├── .gitignore # 根目录Git忽略文件
└── README.md # 项目结构说明文档
技术栈:
- Java 17
- Spring Boot 3.2.0
- Maven
- RESTful API
功能:
- 提供用户列表数据接口
- 实现家庭族谱功能(人员管理、关系管理)
- 支持跨域请求
- 实现RESTful API设计
- 提供关系图查询接口
核心文件:
src/main/java/com/example/backend/SpringBootBackendApplication.java- 应用主类src/main/java/com/example/backend/controller/UserController.java- 用户API控制器src/main/java/com/example/backend/controller/FamilyTreeController.java- 家庭族谱API控制器src/main/java/com/example/backend/model/User.java- 用户数据模型src/main/java/com/example/backend/model/Person.java- 人员数据模型src/main/java/com/example/backend/model/Relationship.java- 关系数据模型src/main/resources/application.properties- 应用配置文件pom.xml- Maven依赖配置
技术栈:
- Vue 3
- Vite
- JavaScript
- Fetch API
功能:
- 展示用户列表
- 实现家庭族谱功能(人员管理、关系管理、关系图展示)
- 响应式布局
- 与Spring Boot后端通信
核心文件:
src/App.vue- 主应用组件src/main.js- 应用入口文件vite.config.js- Vite配置文件package.json- 项目依赖配置
技术栈:
- Dart
- Flutter 3.0+
- HTTP Package
- FutureBuilder
- Material Design
功能:
- 移动设备上展示用户列表
- 实现家庭族谱功能(人员管理、关系管理、关系图展示)
- 与Spring Boot后端通信
- 响应式列表布局
- 加载状态和错误处理
- 支持Android和iOS平台
- 支持Web平台
核心文件:
lib/main.dart- 应用入口和主界面lib/models/user.dart- 用户数据模型lib/models/person.dart- 人员数据模型lib/models/relationship.dart- 关系数据模型lib/api/api_service.dart- API服务类lib/pages/user_list_page.dart- 用户列表页面lib/pages/family_tree_page.dart- 家庭族谱主页面lib/pages/graph_page.dart- 关系图页面lib/pages/persons_page.dart- 人员管理页面lib/pages/relationships_page.dart- 关系管理页面android/app/src/main/AndroidManifest.xml- Android权限配置
cd spring-boot-backend
mvn spring-boot:run服务将在 http://localhost:8080 启动。
cd vue-frontend
npm install
npm run dev应用将在 http://localhost:5173 启动。
- 确保已安装Flutter SDK
- 使用VS Code或Android Studio打开
flutter_app目录 - 连接Android设备或启动模拟器
- 运行
flutter pub get安装依赖 - 点击运行按钮或执行
flutter run启动应用
GET /api/users- 获取用户列表
人员管理:
GET /api/family-tree/persons- 获取所有人员列表POST /api/family-tree/persons- 添加新人员GET /api/family-tree/persons/{id}- 获取指定人员详情PUT /api/family-tree/persons/{id}- 更新人员信息DELETE /api/family-tree/persons/{id}- 删除指定人员
关系管理:
GET /api/family-tree/relationships- 获取所有关系列表POST /api/family-tree/relationships- 添加新关系GET /api/family-tree/relationships/{id}- 获取指定关系详情PUT /api/family-tree/relationships/{id}- 更新关系信息DELETE /api/family-tree/relationships/{id}- 删除指定关系
关系图:
GET /api/family-tree/graph- 获取完整关系图数据
{
"id": 1,
"name": "用户名",
"email": "[email protected]"
}{
"id": 1,
"name": "张三",
"gender": "男",
"birthDate": "1980-01-01",
"deathDate": null,
"description": "家庭成员说明"
}{
"id": 1,
"person1Id": 1,
"person2Id": 2,
"type": "父子",
"description": "张三是李四的父亲"
}- 确保各模块的.gitignore文件已正确配置
- Spring Boot后端默认端口为8080,Vue前端默认端口为5173
- Flutter应用需要确保网络权限已在AndroidManifest.xml中配置
- 各模块之间通过RESTful API进行通信,需要确保网络连接正常
- 开发时可以同时启动Spring Boot后端和Vue前端,进行前后端联调
- 家庭族谱功能需要确保后端服务正常运行,否则前端无法获取数据
- Flutter应用支持多平台(Android、iOS、Web),可以使用不同的运行命令启动不同平台的应用
- Web平台运行Flutter应用时,API baseUrl需要设置为http://localhost:8080,而不是模拟器的IP地址
- 家庭族谱功能的API接口可能需要根据业务需求进行扩展,例如添加更复杂的关系查询逻辑
- Spring Boot: 3.2.0
- Vue: 3.x
- Flutter: 3.0+
- Dart: 3.8.1+