Waiter — это современное веб-приложение для автоматизации работы официантов и управления заказами в заведениях общественного питания. Проект построен на базе Next.js, TypeScript, Prisma и TailwindCSS.
- Аутентификация пользователей (официанты, менеджеры и др.)
- Работа со столами: просмотр статуса, открытие заказа на стол, добавление блюд
- Меню и заказы: просмотр категорий и блюд, создание и изменение заказов, контроль доступности блюд (стоп-лист, остатки ингредиентов)
- Учёт ингредиентов: автоматическое списание при заказе, контроль остатков
- Отчёты для официантов: статистика по заказам и выручке за день, неделю, месяц
- Роли пользователей: разграничение прав (официант, менеджер, кассир и др.)
- Смены: работа только в рамках активной смены
- Интеграция с базой данных PostgreSQL через Prisma
src/app— страницы приложения (авторизация, дашборд, столы, отчёты)src/components— переиспользуемые UI-компоненты (меню, модальные окна и др.)src/services— бизнес-логика (работа с заказами, меню, ингредиентами)src/lib— вспомогательные функции, инициализация Prisma, авторизацияprisma/schema.prisma— описание структуры базы данныхpublic/— статические файлы
-
Установите зависимости:
npm install
-
Настройте переменные окружения:
DATABASE_URL="postgresql://user:password@localhost:5432/waiter" JWT_SECRET="ваш_секретный_ключ"
-
Примените миграции и заполните базу начальными данными:
npx prisma migrate deploy npx prisma db seed
-
Запустите сервер разработки:
npm run dev
-
Откройте http://localhost:3000 в браузере.
- Вход в систему доступен только сотрудникам, назначенным на активную смену
- Поддерживаются роли: официант, менеджер, кассир, администратор
- Просмотр статуса всех столов (свободен/занят)
- Создание нового заказа на стол
- Добавление/удаление блюд в заказе
- Просмотр текущего заказа
- Просмотр категорий и блюд
- Автоматический контроль доступности блюд
- Стоп-лист при недостатке ингредиентов
- Автоматическое списание ингредиентов при заказе
- Статистика по заказам за день/неделю/месяц
- Выручка официанта
- Количество обработанных заказов
- Next.js 14 (App Router)
- React 18
- TypeScript
- Prisma ORM (PostgreSQL)
- TailwindCSS
- bcryptjs (хэширование паролей)
- Headless UI (модальные окна)
- Docker (рекомендуется для БД)
npm run dev— запуск в режиме разработкиnpm run build— сборка приложенияnpm run start— запуск production-сервераnpx prisma studio— визуальный редактор базы данных
Основные сущности:
- User — пользователи системы
- Order — заказы
- MenuItem — блюда меню
- Ingredient — ингредиенты
- Shift — смены
- Payment — платежи
- MenuCategory — категории меню
- Node.js 18+
- PostgreSQL 14+
- npm или yarn
npm installnpm run devnpm run build
npm run startMIT