Skip to content

Repository files navigation

Waiter — Система автоматизации для официантов

Waiter — это современное веб-приложение для автоматизации работы официантов и управления заказами в заведениях общественного питания. Проект построен на базе Next.js, TypeScript, Prisma и TailwindCSS.

Основные возможности

  • Аутентификация пользователей (официанты, менеджеры и др.)
  • Работа со столами: просмотр статуса, открытие заказа на стол, добавление блюд
  • Меню и заказы: просмотр категорий и блюд, создание и изменение заказов, контроль доступности блюд (стоп-лист, остатки ингредиентов)
  • Учёт ингредиентов: автоматическое списание при заказе, контроль остатков
  • Отчёты для официантов: статистика по заказам и выручке за день, неделю, месяц
  • Роли пользователей: разграничение прав (официант, менеджер, кассир и др.)
  • Смены: работа только в рамках активной смены
  • Интеграция с базой данных PostgreSQL через Prisma

Структура проекта

  • src/app — страницы приложения (авторизация, дашборд, столы, отчёты)
  • src/components — переиспользуемые UI-компоненты (меню, модальные окна и др.)
  • src/services — бизнес-логика (работа с заказами, меню, ингредиентами)
  • src/lib — вспомогательные функции, инициализация Prisma, авторизация
  • prisma/schema.prisma — описание структуры базы данных
  • public/ — статические файлы

Быстрый старт

  1. Установите зависимости:

    npm install
  2. Настройте переменные окружения:

    DATABASE_URL="postgresql://user:password@localhost:5432/waiter"
    JWT_SECRET="ваш_секретный_ключ"
  3. Примените миграции и заполните базу начальными данными:

    npx prisma migrate deploy
    npx prisma db seed
  4. Запустите сервер разработки:

    npm run dev
  5. Откройте 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 install

Запуск в режиме разработки

npm run dev

Сборка для production

npm run build
npm run start

Лицензия

MIT

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages