基于自然语言对话的智能记账应用,让记账像聊天一样简单。通过对话即可轻松完成日常记账,支持多平台使用。
让记账变得简单自然,用户通过日常对话方式即可完成记账,智能分类,自动统计,让记账不再是负担。
- AI对话式记账基础功能
- 自然语言识别记账内容
- 智能分类系统
- 基础账目管理
- 跨平台基础版本开发
- 对话界面
- 账目列表
- 基础统计
- 原生功能集成
- 本地存储优化
- 推送通知
- TouchID/FaceID支持
- 离线功能支持
- 本地数据同步
- 断网记账支持
- 语音输入
- 多币种支持
- 数据导出
- 预算管理
- 支持多种记账表达方式:
"今天中午吃饭花了30块" "刚刚买菜花了100" "发工资了5000" - 智能识别:金额、类别、时间、备注
- 快速修改和删除
- 每日收支概览
- 月度收支报告
- 消费类别分析
- 一套代码,多端运行
- iOS、Android和Web三端统一
- 优秀的跨平台表现
- 接近原生的用户体验
- 活跃的社区支持
- 丰富的第三方组件
- 完善的文档和教程
- 大量的开源项目参考
- 开发效率
- 热重载快速开发
- Expo简化开发流程
- 容易招到开发人员
- React Native + Expo:核心框架
- React Navigation:路由导航
- Redux Toolkit:状态管理
- React Native Paper:UI组件库
- Slim + docker:轻量级PHP框架
- MySQL:主数据库
- Redis:缓存
- GPT API:智能对话处理
noteai/
├── app/ # React Native应用目录
│ ├── components/ # 可复用组件
│ │ ├── ChatMessage.tsx # 聊天消息组件
│ │ ├── TransactionItem.tsx # 交易项目组件
│ │ └── ...
│ ├── screens/ # 页面组件
│ │ ├── HomeScreen.tsx # 首页
│ │ ├── ChatScreen.tsx # 聊天页面
│ │ ├── StatisticsScreen.tsx # 统计页面
│ │ ├── ProfileScreen.tsx # 个人资料页面
│ │ └── ...
│ ├── navigation/ # 导航配置
│ │ └── AppNavigator.tsx # 应用导航
│ ├── services/ # API服务
│ │ └── api.ts # API请求服务
│ ├── store/ # 状态管理
│ │ ├── index.ts # Redux store配置
│ │ ├── transactionsSlice.ts # 交易状态管理
│ │ ├── userSlice.ts # 用户状态管理
│ │ └── chatSlice.ts # 聊天状态管理
│ └── utils/ # 工具函数
│ ├── constants.ts # 常量定义
│ └── theme.ts # 主题配置
├── config/ # Configuration files
│ ├── container.php # Dependency injection container
│ ├── middleware.php # Middleware configuration
│ ├── routes.php # Route definitions
│ └── logger.php # Logging configuration
├── src/
│ ├── Actions/ # Action classes (endpoints)
│ ├── Constants/ # Constants and enums
│ ├── Exceptions/ # Custom exceptions
│ ├── Middleware/ # Custom middleware
│ ├── Models/ # Database models
│ ├── Services/ # Business logic
│ └── Validators/ # Request validators
├── public/ # Web root
│ └── index.php # Application entry point
├── logs/ # Log files
├── docker/ # Docker configuration
├── .env.example # Environment template
├── composer.json # Composer dependencies
└── docker-compose.yml # Docker compose config
-
基础框架搭建(3-5天)
- React Native + Expo环境配置
- 基础架构搭建
- 核心组件开发
-
对话功能开发(1周)
- AI对话接口集成
- 对话解析系统
- 记账数据存储
-
界面开发(1周)
- 对话交互界面
- 账目管理界面
- 基础数据展示
- 原生功能集成
- 数据同步优化
- 离线支持
- 高级功能开发
- 性能优化
- 用户反馈优化
- Node.js >= 16
- Expo CLI
- Android Studio 或 Xcode(可选,用于模拟器)
- PHP >= 8.1
- MySQL >= 5.7
- Redis >= 6.0
- Docker 和 Docker Compose
- GPT API Key
我们提供了一键启动脚本,可以自动检查环境、启动后端服务和前端应用:
# 赋予脚本执行权限
chmod +x start.sh
# 运行启动脚本
./start.sh# 运行启动脚本
start.bat如果您想手动启动各个服务,可以按照以下步骤操作:
# 进入前端目录
cd noteai/app
# 安装依赖
npm install
# 或
yarn install
# 启动开发服务器
expo start# 进入后端目录
cd noteai/server
# 复制环境配置文件
cp .env.example .env
# 编辑.env文件,配置数据库和API密钥
# 使用Docker启动服务
docker-compose up -d
# 在Docker容器中执行composer install/update (在server目录下执行所有命令)
# 首次安装
docker-compose exec -w /var/www/html app composer install
# 更新依赖
docker-compose exec -w /var/www/html app composer update
# 如果遇到权限问题,可以尝试使用root用户:
docker-compose exec -w /var/www/html -u root app composer update
# 运行数据库迁移
docker-compose exec -w /var/www/html app vendor/bin/phinx migrate
# 运行数据库数据填充
docker compose exec app ./vendor/bin/ph
inx seed:run
> 提示:在Docker环境中执行composer命令可以避免本地PHP版本不一致导致的问题,并确保依赖包的一致性。
## 📋 开发注意事项
### 前端开发规范
1. 组件化开发
- 每个功能模块独立组件
- 保持组件的可复用性
- 使用TypeScript类型检查
2. 状态管理
- 使用Redux Toolkit管理全局状态
- 本地状态使用useState/useReducer
- 异步操作使用createAsyncThunk
3. 样式规范
- 使用StyleSheet创建样式
- 遵循React Native Paper设计规范
- 支持深色/浅色主题
### 后端开发规范
1. API设计
- RESTful API设计
- 统一的响应格式
- 完善的错误处理
2. 数据库操作
- 使用Eloquent ORM
- 编写数据库迁移
- 避免直接SQL查询
3. 安全性
- 输入验证
- JWT认证
- CORS配置
## 🤝 参与贡献
1. Fork本项目
2. 创建特性分支 (`git checkout -b feature/amazing-feature`)
3. 提交更改 (`git commit -m 'feat: add some amazing feature'`)
4. 推送到分支 (`git push origin feature/amazing-feature`)
5. 发起Pull Request
### 提交规范
- feat: 新功能
- fix: 修复
- docs: 文档更新
- style: 代码格式
- refactor: 重构
- test: 测试
- chore: 构建过程或辅助工具的变动
## 📞 联系方式
- 微信公众号:NoteAI记账助手
- 邮箱:support@noteai.com
- 官网:https://www.noteai.com
## 📄 许可证
本项目采用 MIT 许可证 - 详情请参阅 [LICENSE](LICENSE) 文件
---
用❤️打造 by NoteAI团队