Skip to content

bhabgs/mobook

Repository files navigation

记账软件 (MoBook)

一个基于 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 集成

本项目已预配置 Supabase 集成,支持:

  • ✅ 类型安全的数据库操作
  • ✅ 行级安全策略 (RLS)
  • ✅ 实时数据订阅
  • ✅ 用户认证和授权
  • ✅ 文件存储
  • ✅ 数据库函数调用

Supabase 配置

  1. 在 Supabase 控制台创建新项目
  2. 复制环境变量配置:
cp packages/server/.env.example packages/server/.env
  1. 填写 Supabase 配置信息:
SUPABASE_URL=your-supabase-project-url
SUPABASE_ANON_KEY=your-supabase-anon-key
SUPABASE_SERVICE_KEY=your-supabase-service-role-key
  1. 运行数据库迁移(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

📱 应用功能

H5移动端

  • 用户注册登录
  • 快速记账
  • 账单管理
  • 统计分析
  • 个人设置

Admin后台

  • 管理员登录
  • 用户管理
  • 数据统计
  • 系统设置
  • 操作日志

后端API

  • RESTful API设计
  • JWT认证
  • 数据验证
  • 错误处理
  • API文档 (Swagger)

🗄️ 数据库设计

主要数据表:

  • users - 用户信息
  • categories - 收支分类
  • records - 记账记录
  • user_settings - 用户设置

详细的数据库设计请查看 技术架构文档

📚 文档

🤝 贡献指南

  1. Fork 项目
  2. 创建功能分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'feat: Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 创建 Pull Request

📄 许可证

本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情

🔗 相关链接

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages