基于 Next.js 16 + Supabase + Prisma 7 构建的零售门店员工培训与考核管理平台。
- 管理员端:门店管理、店员管理、培训标准、排班、考核发布与评分、考核报告、数据概览
- 店员端:每日打卡、培训学习、查看考核结果、个人信息与密码修改
- Next.js 16.2.4(App Router + Turbopack)
- Supabase Auth(用户认证)
- Prisma 7.7.0 +
@prisma/adapter-pg(ORM,PgBouncer 兼容) - Tailwind CSS v4 + shadcn/ui
- 部署:Vercel
git clone <repo-url>
cd kmall
pnpm install复制 .env.example 为 .env.local,填入真实值:
cp .env.example .env.local需要填写:
DATABASE_URL/DIRECT_URL:Supabase 项目的 Postgres 连接串(Project Settings → Database → Connection string → URI)NEXT_PUBLIC_SUPABASE_URL:Supabase 项目 URLNEXT_PUBLIC_SUPABASE_ANON_KEY:匿名密钥SUPABASE_SERVICE_ROLE_KEY:服务角色密钥(Project Settings → API)
# 同步 Schema 到数据库(首次或 Schema 变更后)
pnpm prisma migrate deploy
# 或开发模式(会生成迁移文件)
pnpm prisma migrate devpnpm devgit push origin main- 进入 vercel.com/new,选择你的 GitHub 仓库
- Framework Preset 选 Next.js(自动检测)
在 Vercel 项目的 Settings → Environment Variables 中,逐一添加 .env.example 中的所有变量(填入真实值)。
NEXT_PUBLIC_前缀的变量会暴露在客户端,其余仅在服务端可用。
部署后在本地执行(连接生产数据库):
DATABASE_URL="<生产连接串>" pnpm prisma migrate deploy或在 Vercel 的 Deployments → 函数日志 中确认迁移状态。
Vercel 会在每次 git push 后自动触发构建和部署。首次点击 Deploy 按钮完成初始部署。
app/
(admin)/admin/ 管理员页面(dashboard、stores、staff、standards、schedules、exams、reports)
(staff)/staff/ 店员页面(dashboard、training、exam、profile)
login/ 登录页
components/
admin/ 管理员侧边栏等
staff/ 店员底部导航等
ui/ shadcn/ui 组件
lib/
prisma.ts Prisma 客户端(adapter-pg)
supabase/ Supabase 客户端(client/server/admin)
prisma/
schema.prisma 数据模型
migrations/ 迁移记录
proxy.ts Next.js 16 路由守卫(替代 middleware.ts)