https://github.com/ctstic/cmdd_js
浙江中烟卷烟材料数字化设计平台
https://github.com/ctstic/cmdd_js
electron nodejs react
Last synced: 5 months ago
JSON representation
浙江中烟卷烟材料数字化设计平台
- Host: GitHub
- URL: https://github.com/ctstic/cmdd_js
- Owner: ctstic
- Created: 2025-09-05T10:36:44.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2025-09-28T03:52:25.000Z (9 months ago)
- Last Synced: 2025-09-28T05:42:09.838Z (9 months ago)
- Topics: electron, nodejs, react
- Language: TypeScript
- Homepage:
- Size: 1.24 MB
- Stars: 0
- Watchers: 0
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# CMDD JS - Electron 用户管理系统
这是一个基于 Electron + React + TypeScript + Better-SQLite3 + Drizzle ORM 的桌面应用程序,实现了完整的模型数据管理功能。
## 技术栈
- **前端**: React 19 + TypeScript + Vite
- **桌面框架**: Electron 22
- **数据库**: Better-SQLite3 + Drizzle ORM
- **样式**: CSS3
- **包管理**: pnpm
## 功能特性
### 用户管理
- ✅ 用户创建、查询、更新、删除 (CRUD)
- ✅ 用户搜索功能
- ✅ 用户状态管理 (活跃/非活跃/待审核)
- ✅ 默认用户数据自动初始化
- ✅ 实时数据验证
### 数据库特性
- ✅ SQLite 数据库本地存储
- ✅ Drizzle ORM 类型安全
- ✅ 数据库迁移管理
- ✅ WAL 模式性能优化
- ✅ 自动表创建和初始化
### 界面特性
- ✅ 现代化用户界面
- ✅ 响应式设计
- ✅ 实时状态反馈
- ✅ 表单验证
- ✅ 搜索和过滤功能
## 项目结构
```
src/
├── main/ # 主进程
│ ├── database/ # 数据库相关
│ │ ├── schema.ts # 数据库模式定义
│ │ ├── index.ts # 数据库连接和操作
│ │ └── migrations/ # 数据库迁移文件
│ ├── main.ts # 主进程入口
│ └── test-database.ts # 数据库测试
├── preload/ # 预加载脚本
│ └── proload.ts # IPC 通信接口
└── renderer/ # 渲染进程
└── src/
├── App.tsx # 主应用组件
└── components/ # React 组件
```
## 快速开始
### 安装依赖
```bash
pnpm install
```
### 开发模式
```bash
pnpm run dev
```
### 构建应用
```bash
# 构建所有平台
pnpm run build
# 构建特定平台
pnpm run build:win # Windows
pnpm run build:mac # macOS
pnpm run build:linux # Linux
```
### 数据库操作
```bash
# 生成迁移文件
pnpm run db:generate
# 推送迁移到数据库
pnpm run db:push
# 打开 Drizzle Studio
pnpm run db:studio
```
## 数据库模式
### 用户表 (users)
| 字段 | 类型 | 说明 |
|------|------|------|
| id | INTEGER | 主键,自增 |
| username | TEXT | 用户名,唯一 |
| email | TEXT | 邮箱,唯一 |
| full_name | TEXT | 全名 |
| avatar | TEXT | 头像URL |
| status | TEXT | 状态 (active/inactive/pending) |
| created_at | INTEGER | 创建时间 |
| updated_at | INTEGER | 更新时间 |
## 默认数据
应用启动时会自动创建以下默认用户:
1. **admin** - 系统管理员
2. **demo** - 演示用户
3. **guest** - 访客用户
## API 接口
### 用户管理
- `user.create(userData)` - 创建用户
- `user.getById(id)` - 根据ID获取用户
- `user.getByEmail(email)` - 根据邮箱获取用户
- `user.getByUsername(username)` - 根据用户名获取用户
- `user.getAll()` - 获取所有用户
- `user.update(id, updates)` - 更新用户
- `user.delete(id)` - 删除用户
- `user.search(query)` - 搜索用户
## 开发说明
### 数据库操作
所有数据库操作都在 `src/main/database/index.ts` 中实现,使用 Better-SQLite3 进行底层操作,Drizzle ORM 提供类型安全。
### IPC 通信
主进程和渲染进程通过 IPC 进行通信,接口定义在 `src/preload/proload.ts` 中。
### 状态管理
使用 React Hooks 进行状态管理,包括用户列表、表单状态、加载状态等。
## 许可证
MIT License