Browse Source

docs: update README — current project structure and coding conventions

lq 1 month ago
parent
commit
8b6398162b
1 changed files with 60 additions and 53 deletions
  1. 60 53
      README.md

+ 60 - 53
README.md

@@ -5,89 +5,96 @@
 ## 技术栈
 
 - **桌面框架**:Wails v2.13
-- **后端**:Go 1.25 + Gin + GORM + Casbin + JWT
+- **后端**:Go 1.25 + Gin + GORM + Casbin v3 + JWT
 - **前端**:Vue 3 + Vite 4 + Element Plus + Pinia
 - **数据库**:SQLite(`%APPDATA%/smart-parking/lc_garage.db`)
 
 ## 环境要求
 
-- Go >= 1.25
-- Node.js >= 16
-- Wails CLI
+- Go >= 1.25 / Node.js >= 16
+- Wails CLI:`go install github.com/wailsapp/wails/v2/cmd/wails@latest`
 - Windows 10 build 1809+(WebView2 运行时)
 
-## 安装 Wails CLI
-
-```bash
-go install github.com/wailsapp/wails/v2/cmd/wails@latest
-```
-
-## 安装依赖
+## 快速开始
 
 ```bash
+# 1. 安装前端依赖
 cd frontend && npm install && cd ..
-```
-
-## 开发模式
 
-```bash
-cd lc_garage
+# 2. 启动开发模式
 wails dev
-```
 
-Wails 自动:
-1. 编译 Go 后端,Gin 在 goroutine 中启动(:8888)
-2. 创建 SQLite 数据库并写入系统初始数据(首次启动)
-3. 启动 Vite 开发服务器(:5173)
-4. 打开 WebView2 窗口,支持热更新
-
-## 生产构建
-
-```bash
-cd lc_garage
+# 3. 生产构建
 wails build
+# 产物:build/bin/smart-parking.exe
 ```
 
-产物:`build/bin/smart-parking.exe`,需与 `config.yaml` 同目录。
-
 ## 管理员账户
 
-- 账号:`admin`
-- 密码:`123456`
-
-首次启动自动创建系统数据(用户、角色、菜单、API、Casbin 规则、字典),后续重启跳过。
+- 账号:`admin` / 密码:`123456`
+- 首次启动自动创建系统数据(用户、角色、菜单、权限、字典)
 
 ## 数据库
 
 - 文件位置:`%APPDATA%/smart-parking/lc_garage.db`
-- 可通过 `config.yaml` 的 `sqlite.path` 自定义路径(空 = 默认)
-- 查询工具:[DB Browser for SQLite](https://sqlitebrowser.org/) 或 `sqlite3` 命令行
+- `config.yaml` 中 `sqlite.path` 为空时使用默认路径
+- 查询工具:[DB Browser for SQLite](https://sqlitebrowser.org/)
 
 ## 项目结构
 
 ```
 lc_garage/
-├── main.go               # Wails 入口(反向代理 /api → Gin :8888)
-├── wails.json             # Wails 配置
-├── go.mod                 # 根模块 (wails-app)
-├── config.yaml            # 后端配置
-├── server/                # Go 后端(独立模块 "server")
-│   ├── main.go            #   InitBackend() + SeedSystemData()
-│   ├── initialize/        #   初始化(GORM/Redis/Timer/UHF/Seed)
-│   ├── api/               #   API 控制器
-│   ├── service/           #   业务逻辑
-│   └── dao/               #   数据访问
-├── frontend/              # Vue 3 前端
-└── build/bin/             # 构建产物
+├── main.go                  # Wails 入口
+├── wails.json               # Wails 配置
+├── go.mod                   # 根模块 (wails-app)
+├── config.yaml              # 后端配置
+│
+├── internal/                # Go 后端
+│   ├── api/v1/              #   API 控制器(system/parking/uhf/vehicle/owner)
+│   ├── service/             #   业务逻辑(含 UHF TCP/串口硬件驱动)
+│   ├── router/              #   路由注册
+│   ├── model/               #   数据模型(Request/Response DTO)
+│   ├── dao/                 #   数据访问(GORM 实体,25 张表)
+│   ├── middleware/           #   中间件(JWT/CORS/Casbin)
+│   ├── core/                #   核心(Viper/Zap/Server)
+│   ├── config/              #   配置结构体
+│   ├── global/              #   全局变量
+│   ├── initialize/          #   初始化(GORM/Seed/Timer)
+│   ├── plugin/              #   插件(email/ws)
+│   ├── utils/               #   工具函数
+│   └── pkg/                 #   工具函数(core 层引用)
+│
+├── frontend/                # Vue 3 前端
+│   └── src/
+│       ├── api/             #   API 封装(24 文件)
+│       ├── view/            #   业务页面
+│       │   ├── parking/     #     停车管理(含 Tab 联动)
+│       │   ├── dashboard/   #     仪表盘
+│       │   ├── superAdmin/  #     系统管理
+│       │   └── ...
+│       ├── pinia/           #   状态管理
+│       └── router/          #   路由配置
+│
+├── build/bin/               # 构建输出
+│   └── smart-parking.exe
+│
+└── doc/                     # 文档
+    ├── PROJECT.md
+    └── 代码规划.md          # 目标架构蓝图
 ```
 
+## 代码规范
+
+- **旧模块**(`internal/api/` `internal/service/` 等):保持不动,继续维护
+- **新模块**(`internal/modules/<module>/`):自包含 api / service / repository / model 四层
+- 详细规范见 [CLAUDE.md](CLAUDE.md)
+
 ## 常见问题
 
-**双击 exe 打不开?**
-确保 `config.yaml` 与 `smart-parking.exe` 在同一目录。
+**双击 exe 打不开?** 确保 `config.yaml` 与 `smart-parking.exe` 在同一目录。
+
+**超级管理员菜单不显示?** 删除 `%APPDATA%/smart-parking/lc_garage.db` 后重启重建。
 
-**超级管理员菜单不显示?**
-可能是数据库种子数据异常,删除 `%APPDATA%/smart-parking/lc_garage.db` 后重新启动即可重建。
+**wails dev 卡住?** 确保 `cd frontend && npm install` 已执行过。
 
-**wails dev 卡住?**
-确保 `cd frontend && npm install` 已执行过。
+**端口 5173 被占用?** 上次 `wails dev` 残留的 node 进程,任务管理器结束即可。