# Аннотация RestaurantApp - это настольная информационная система для автоматизации работы ресторана. Программа разработана на C# Windows Forms и предназначена для учета клиентов, сотрудников, блюд, заказов, бронирований столов, платежей и формирования отчетов. Система подключается к базе данных PostgreSQL, использует разграничение доступа по ролям пользователей и предоставляет графический интерфейс для просмотра, добавления, редактирования и удаления данных. # Введение Основные возможности программы: - авторизация пользователя по логину; - разграничение доступа для ролей `admin`, `manager`, `waiter`; - просмотр и поиск клиентов ресторана; - добавление, редактирование и удаление записей о клиентах; - управление справочником блюд и фильтрация блюд по категории и доступности; - управление сотрудниками ресторана; - создание и ведение заказов; - добавление блюд в заказ и расчет суммы заказа; - проведение оплаты заказа; - закрытие заказов; - создание, редактирование и удаление бронирований; - просмотр отчетов по выручке, продажам блюд, работе официантов, способам оплаты и остаткам ингредиентов. # Назначение и условия применения Программа предназначена для использования сотрудниками ресторана при ведении оперативного учета. Система помогает хранить сведения о клиентах, блюдах, сотрудниках, заказах и бронированиях, а также получать аналитические отчеты по работе заведения. Для работы программы необходимы: - операционная система Windows; - установленный .NET Framework 4.7.2 или новее; - доступ к серверу PostgreSQL; - наличие базы данных с нужной структурой таблиц, представлений, функций и триггеров; - сетевое подключение к серверу базы данных; - учетная запись пользователя в таблице `app_user`. Приложение подключается к удаленной базе данных PostgreSQL через библиотеку `Npgsql`. Параметры подключения заданы в модуле `Database.cs`. # Установка 1. [x] Убедиться, что на компьютере установлена Windows. 2. [x] Установить .NET Framework 4.7.2 или более новую версию. 3. [x] Проверить наличие доступа к серверу PostgreSQL и базе данных приложения. 4. [x] Собрать проект в Visual Studio в конфигурации `Release`. 5. [x] Открыть файл `RestaurantAppSetup.iss` в Inno Setup. 6. [x] Скомпилировать установщик командой: ```powershell ISCC.exe RestaurantAppSetup.iss ``` 7. [x] Запустить созданный файл `installer-output\RestaurantAppSetup.exe`. 8. [x] Следовать шагам мастера установки. 9. [x] После завершения установки запустить программу через ярлык в меню "Пуск" или на рабочем столе. 10. [ ] Войти в систему под учетной записью пользователя. # Описание операций ## Авторизация После запуска программы открывается форма входа. Пользователь вводит логин. Если логин найден в базе данных, система определяет ФИО пользователя и его роль, после чего открывает главное окно приложения. ## Работа с клиентами Раздел "Клиенты" позволяет просматривать список клиентов, искать записи, добавлять новых клиентов, редактировать существующие данные и удалять выбранные записи. В таблице отображаются имя, фамилия, телефон, email, дата рождения, бонусные баллы и дата регистрации. ## Работа с блюдами Раздел "Блюда" предназначен для ведения меню ресторана. Пользователь может искать блюда, фильтровать их по категории и доступности, добавлять новые позиции, редактировать сведения о блюде и удалять выбранные записи. ## Работа с сотрудниками Раздел "Сотрудники" доступен пользователям с ролями `admin` и `manager`. В нем можно просматривать список сотрудников, фильтровать записи по должности и активности, добавлять сотрудников, редактировать их данные и отмечать сотрудника как уволенного. ## Работа с заказами Раздел "Заказы" используется для создания и сопровождения заказов. Пользователь может создать новый заказ, выбрать заказ из списка, добавить в него блюда, изменить или удалить позиции заказа, провести оплату и закрыть заказ. ## Работа с бронированиями Раздел "Бронирования" позволяет вести учет резервирования столов. Пользователь может искать бронирования, фильтровать их по статусу, добавлять новые записи, редактировать существующие и удалять отмененные или ошибочные бронирования. ## Работа с отчетами Раздел "Отчеты" доступен пользователям с ролями `admin` и `manager`. В нем отображаются отчеты по дневной выручке, продажам блюд, статистике официантов, способам оплаты и ингредиентам с низким остатком. ## Выход из программы Для завершения работы используется пункт меню "Выход" или стандартная кнопка закрытия окна. После выхода приложение завершает текущий сеанс пользователя. # Термины и сокращения | Термин | Описание | | - | - | | ИС | Информационная система, предназначенная для хранения и обработки данных | | БД | База данных, в которой хранятся сведения ресторана | | PostgreSQL | Система управления базами данных, используемая приложением | | Windows Forms | Технология создания настольных приложений Windows на языке C# | | Npgsql | Библиотека для подключения C#-приложения к PostgreSQL | | Клиент | Посетитель ресторана, сведения о котором хранятся в системе | | Сотрудник | Работник ресторана, например официант или менеджер | | Заказ | Набор блюд, оформленный для клиента или стола | | Бронирование | Запись о резервировании стола на определенное время | | Платеж | Операция оплаты заказа | | Роль | Уровень доступа пользователя к функциям системы | | Инсталлятор | Программа установки, созданная с помощью Inno Setup |