Skip to content

asamilyk/Order-System

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 

Repository files navigation

Консольное приложение для управления системой заказов в ресторане

Это консольное приложение предоставляет возможность аутентификации двух типов пользователей (посетителей и администраторов) и управления блюдами и заказами. Система обрабатывает заказы в многопоточном режиме, позволяя клиентам добавлять блюда в заказ в реальном времени, а также отображать статусы заказов. Администраторы могут управлять меню, добавляя или удаляя блюда, а также просматривать статистику по отзывам и заказам.

Как пользоваться

  1. Запуск приложения

    • Запустите приложение, выполните файл main в вашей среде разработки или в консоли.
    • Приложение откроет меню для входа или регистрации.
  2. Аутентификация

    • Введите логин и пароль для входа в систему.
    • Если у вас нет аккаунта, выберите опцию регистрации и следуйте инструкциям.
  3. Главное меню

    • После успешной аутентификации откроется главное меню, предоставляющее различные действия в зависимости от вашей роли в системе.
    • Выберите нужное действие, введя соответствующую цифру.
  4. Действия пользователя

    • Пользователи могут просматривать меню, создавать заказы, проверять статус своих текущих заказов, отменять заказы до их готовности, добавлять блюда в заказы, находящиеся в обработке, оплачивать готовые заказы и оставлять к ним отзывы.
  5. Действия администратора

    • Администраторы имеют доступ к дополнительным функциям:
      • Добавление, удаление и изменение блюд.
      • Просмотр статистики, включающей в себя общее число заказов, среднее количество блюд в заказе, среднюю стоимость заказа, среднюю оценку заказов
  6. Выход

    • Чтобы завершить работу с приложением, выберите опцию "Выход".
  7. Сохранение данных

    • Данные о пользователях, блюдах и выручке сохраняются автоматически при выходе из приложения.
  8. Шаблоны проектирования

    • В данном проекте используется паттерн Proxy. Благодаря нему не нужно отдельно обрабатывать случаи, когда посетители по ошибке пытаются совершить то действие, которое им недоступно, паттерн отвечает за это. В рамках Proxy существует класс Logger, сейчас вывод логов закомментирован, чтобы избежать засорения консоли, однако при необходимости вывод логов можно включить.
  9. Многопоточный режим

    • Заказы обрабатываются в отдельных потоках, реализованных с помощью ExecutorService, время работы зависит от сложности приготовления блюд, которые входят в заказ.
  10. Система приоритетов

  • Заказы тех пользователей, которые в сумме сделали меньше 5 заказов, обрабатываются дольше по времени.

Дополнительные замечания

  • Приложение сохраняет данные о блюдах, сумме выручки и пользователях в формате JSON в соответствующие файлы (например, "dish.json", "money.json", "users.json").
  • Пользователи могут регистрироваться как посетители или администраторы, что влияет на доступные им функции.

About

order system for restaurant

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages