一个基于 React + NestJS + Supabase 的全栈记账软件,采用 Monorepo 架构开发。
mobook/
├── packages/
│ ├── h5-app/ # H5移动端应用 (React + Ant Design Mobile)
│ ├── admin-app/ # Admin后台管理 (React + Ant Design)
│ ├── server/ # NestJS后端服务
│ └── shared/ # 共享类型定义和工具函数
├── docs/ # 项目文档
└── scripts/ # 构建脚本
- H5移动端: React 18 + TypeScript + Vite + Ant Design Mobile + TailwindCSS
- Admin后台: React 18 + TypeScript + Vite + Ant Design + ECharts
- 状态管理: Zustand
- 路由: React Router v7
- HTTP客户端: Axios
- 框架: NestJS 10 + TypeScript
- 数据库: Supabase (PostgreSQL)
- 认证: JWT + Passport
- API文档: Swagger
- 验证: Class Validator
- 包管理: pnpm workspace
- 构建工具: Vite + TypeScript
- 代码规范: ESLint + Prettier
- Git规范: Conventional Commits
本项目已预配置 Supabase 集成,支持:
- ✅ 类型安全的数据库操作
- ✅ 行级安全策略 (RLS)
- ✅ 实时数据订阅
- ✅ 用户认证和授权
- ✅ 文件存储
- ✅ 数据库函数调用
- 在 Supabase 控制台创建新项目
- 复制环境变量配置:
cp packages/server/.env.example packages/server/.env- 填写 Supabase 配置信息:
SUPABASE_URL=your-supabase-project-url
SUPABASE_ANON_KEY=your-supabase-anon-key
SUPABASE_SERVICE_KEY=your-supabase-service-role-key- 运行数据库迁移(SQL脚本在
docs/目录)
- Node.js >= 18.0.0
- pnpm >= 8.0.0
# 安装所有依赖
pnpm install# 启动所有服务
pnpm dev
# 或者分别启动
pnpm dev:h5 # H5应用 (http://localhost:5173)
pnpm dev:admin # Admin应用 (http://localhost:5174)
pnpm dev:server # 后端服务 (http://localhost:3000)# 构建所有包
pnpm build
# 构建特定包
pnpm build:h5
pnpm build:admin
pnpm build:server- 用户注册登录
- 快速记账
- 账单管理
- 统计分析
- 个人设置
- 管理员登录
- 用户管理
- 数据统计
- 系统设置
- 操作日志
- RESTful API设计
- JWT认证
- 数据验证
- 错误处理
- API文档 (Swagger)
主要数据表:
users- 用户信息categories- 收支分类records- 记账记录user_settings- 用户设置
详细的数据库设计请查看 技术架构文档
- Fork 项目
- 创建功能分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'feat: Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 创建 Pull Request
本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情