这个项目能做什么
Chefsy 是一个专为餐饮场所设计的内部订单管理系统。第一阶段提供了从订单创建到交付的完整功能基础。
## 技术栈
- **Next.js 14** 搭配 App Router
- **TypeScript**(100% 类型化代码)
- **Tailwind CSS** 用于实用样式
- **React Context + useReducer** 用于内存状态管理,无需外部库
## 主要功能
- **仪表盘**:当日指标和最近订单
- **订单管理**:完整列表,支持按状态筛选,通过表单创建新订单
- **配送视图**:供配送员使用的移动界面
- **状态流程**:新建 → 厨房中 → 就绪 → 配送中 → 已送达,可从任何活跃状态取消
## 项目结构
项目按主要路由组织:
- `/dashboard` - 指标和最近订单
- `/pedidos` - 带筛选功能的完整列表
- `/nuevo-pedido` - 创建表单
- `/cadeteria` - 配送员移动视图
组件分为布局(侧边栏、页眉)、订单(订单卡片、状态徽章、订单表单)和仪表盘(指标卡片)。全局状态通过带有 useReducer 的上下文管理,测试数据位于 mock 文件中。
## 运行方式
1. 安装依赖:`npm install`
2. 开发模式:`npm run dev`(可在 http://localhost:3000 访问)
3. 生产构建:`npm run build` 和 `npm run start`
## 扩展计划
项目包含清晰的未来阶段路线图:
- **第二阶段**:通过 REST API 或 Supabase 实现持久化
- **第三阶段**:使用 next-auth 实现身份验证和角色(操作员、厨房、配送员)
- **第四阶段**:通过 WebSockets 或 Supabase Realtime 实现实时功能
- **第五阶段**:菜单和产品模块,支持自动补全
## 架构决策
- 使用路由组 `(principal)` 将带侧边栏的布局与配送员的简单布局分离
- 使用 `useReducer` 而非多个 `useState` 来集中逻辑
- 同步 mock 数据,无需 useEffect,便于迁移到异步
- 组件无动画,优先考虑功能和速度
- 代码使用西班牙语,以保持与目标团队的一致性
评论
0 评分人数达到10人后显示
登录后参与讨论。