# Театральная система управления билетами Десктопное приложение на **Python + PyQt6** для автоматизации продажи билетов, управления событиями и учёта пользователей театра. Данные хранятся в реляционной базе **PostgreSQL**. --- # Введение ## Основные возможности - Управление билетами — создание, редактирование, удаление, продажа - Учёт продаж — история транзакций, фильтрация, экспорт CSV - Управление пользователями — регистрация, назначение ролей, блокировка - Отчёты — выручка по спектаклям, журнал аудита - Разграничение доступа по ролям: **admin**, **cashier**, **buyer** - Экспорт данных в CSV из любой вкладки --- # Назначение и условия применения Система предназначена для кассиров и администраторов театра, обеспечивающих: - продажу и возврат билетов на спектакли; - ведение репертуара (спектакли, залы, места); - контроль остатков и статусов билетов; - формирование отчётности для руководства. **Условия применения:** локальная сеть театра или выделенный сервер с доступом к PostgreSQL. Клиентская часть запускается на Windows. --- # Установка База данных развёрнута на сервере — дополнительная настройка подключения не требуется. ## Шаги установки 1. Скачать установочный файл TheatreSetup.exe 2. Запустить TheatreSetup.exe двойным щелчком 3. - [ ] Следовать инструкциям мастера установки - [ ] Выбрать папку назначения и нажать «Далее» - [ ] По завершении нажать «Готово» 4. Запустить приложение через ярлык на рабочем столе 5. В диалоге входа ввести логин и пароль учётной записи: - Email: `admin@theatre.local` - Пароль: `admin123` Для удаления приложения воспользуйтесь файлом unins000.exe в папке установки или разделом «Программы и компоненты» в Панели управления. --- # Описание операций | Операция | Роль | Вкладка | Действие | |---|---|---|---| | Просмотр билетов | все | Билеты | Открыть вкладку, применить фильтры | | Продажа билета | cashier, admin | Билеты | Выбрать билет, нажать «Продать» | | Добавить билет | cashier, admin | Билеты | Нажать «Добавить», заполнить форму | | Просмотр продаж | cashier, admin | Продажи | Открыть вкладку | | Добавить пользователя | admin | Пользователи | Нажать «Добавить», заполнить форму | | Заблокировать пользователя | admin | Пользователи | Выбрать пользователя, нажать «Блок.» | | Отчёт по выручке | cashier, admin | Отчёты | Нажать «Выручка по спектаклям» | | Журнал аудита | admin | Отчёты | Нажать «Журнал аудита» | --- # Термины и сокращения | Термин / сокращение | Расшифровка | |---|---| | БД | База данных | | СУБД | Система управления базами данных | | PostgreSQL | Объектно-реляционная СУБД с открытым исходным кодом | | PyQt6 | Python-биндинг к фреймворку Qt6 для создания GUI | | PyInstaller | Инструмент упаковки Python-приложения в исполняемый .exe файл | | Inno Setup | Инструмент для создания установщиков Windows | | GUI | Graphical User Interface — графический интерфейс пользователя | | CSV | Comma-Separated Values — формат хранения табличных данных | | audit_log | Журнал аудита — таблица автоматической фиксации изменений в БД | | admin | Роль пользователя с полным доступом к системе | | cashier | Роль кассира — продажа билетов и просмотр отчётов | | buyer | Роль покупателя — только просмотр доступных билетов | | PK | Primary Key — первичный ключ таблицы | | FK | Foreign Key — внешний ключ, ссылка на другую таблицу |