Files
inkreach-official-website/README.md
T
yeuimu c3472a449b feat(product-center): implement full product center with NestJS backend, Vue3 admin, and Nuxt4 website page
- NestJS backend: Prisma + PostgreSQL, JWT auth, CRUD for goods/categories/countries/tags/positions, SDS sync with cron, public API, Swagger docs
- Vue3 Admin: Element Plus, goods/categories/countries/tags/positions/sync management pages, batch operations, login with JWT
- Nuxt4 Website: product-center page with sidebar navigation, country filter, search, product grid, pagination, skeleton loading
- Nitro proxy routes for backend API
- 54 backend tests passing
- Updated docs and README
2026-06-15 10:09:42 +08:00

110 lines
3.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# InkReach Product Center
InkReach 官方产品中心项目,包含三个协同工作的子项目:
| 子项目 | 技术栈 | 端口 | 角色 |
|--------|--------|------|------|
| `inkreach-official-nestjs` | NestJS 10 + Prisma 5 + PostgreSQL | 3001 | 后端 API(鉴权 / CRUD / SDS 同步 / 公开 API / Swagger |
| `inkreach-official-admin` | Vue 3 + Vite + Element Plus + Pinia | 5173 | 后台管理(登录 / 商品 / 品类 / 国家 / 标签 / 坑位 / 同步) |
| `inkreach-official-website` | Nuxt 4 + Vue 3 + Tailwind v4 | 3000 | 官方展示站 + 产品中心页 |
## 快速开始
### 1. 启动顺序
后端必须先于前两个子项目启动,否则前端代理会失败。
```bash
# Terminal 1:后端(需要 PostgreSQL
cd inkreach-official-nestjs
npm install
npm run prisma:generate
npm run prisma:migrate
npm run start:dev
# → http://localhost:3001 · Swagger: http://localhost:3001/api/docs
# Terminal 2:官网
cd inkreach-official-website
npm install
npm run dev
# → http://localhost:3000
# Terminal 3:后台
cd inkreach-official-admin
npm install
npm run dev
# → http://localhost:5173
```
### 2. 环境变量
在仓库根目录的 `.env` 中配置数据库:
```env
DATABASE_URL=postgresql://postgres:<password>@localhost:5432/inkreach-official
```
后端额外需要的变量(在 `inkreach-official-nestjs/.env` 中):
```env
JWT_SECRET=<your-secret>
SDS_API_BASE=https://api.sds.example.com
SDS_API_KEY=<your-key>
PORT=3001
```
官网默认通过 `NUXT_PUBLIC_BACKEND_URL=http://localhost:3001` 指向后端,可写入 `inkreach-official-website/.env` 覆盖。
后台无需额外环境变量;Vite 代理已把 `/api/*` 转给 `http://localhost:3001`
## 端口分配
| 端口 | 项目 | 入口 |
|------|------|------|
| 3001 | NestJS 后端 | `inkreach-official-nestjs/src/main.ts` |
| 5173 | Vue Admin | `inkreach-official-admin/vite.config.ts` |
| 3000 | Nuxt 官网 | `inkreach-official-website/nuxt.config.ts` |
## 数据流概览
```
[SDS 外部 API]
│ (同步)
[NestJS 后端 :3001] ── public/goods ──► [Nitro 代理 /api/backend/*] ──► [Nuxt 官网 :3000]
│ ▲
├── /auth /goods /categories ... ──► │ Vite proxy /api/*
│ │
[PostgreSQL] [Vue Admin :5173]
```
## 常用命令
```bash
# 后端
cd inkreach-official-nestjs
npm run start:dev # 开发
npm run build # 编译
npm run test # 单元测试
npm run prisma:studio # 打开 Prisma Studio
# 官网
cd inkreach-official-website
npm run dev # 开发
npm run build # 构建
npm run generate # 静态站点生成
# 后台
cd inkreach-official-admin
npm run dev # 开发
npm run build # 构建(含 vue-tsc 类型检查)
```
## 文档
- 整体目录结构:[`docs/references/structs.md`](docs/references/structs.md)
- 数据库表设计:[`docs/dev/database-table-design.md`](docs/dev/database-table-design.md)
- 产品中心 PRD[`docs/dev/product-center-prd.md`](docs/dev/product-center-prd.md)
- 官网子项目结构:[`inkreach-official-website/docs/references/structs.md`](inkreach-official-website/docs/references/structs.md)
- 开发规范:[`AGENTS.md`](AGENTS.md)