# Проект управления отелями ## Описание Проект для управления отелями, пользователями, интеграциями с PMS, а также для контроля статистики и уведомлений. Включает веб-админку, REST API для управления данными и Telegram-бота для взаимодействия с пользователями. ## Стек технологий - Django (для бэкенда) - Jazzmin (для кастомизации админки) - MySQL (для хранения данных) - python-telegram-bot (для Telegram-бота) - Docker (для контейнеризации базы данных и проекта) ## Установка ### 1. Клонирование репозитория ```bash git clone cd yourrepository ```` ### 2. Установка зависимостей ```bash python -m venv .venv source .venv/bin/activate # Для Linux/MacOS .venv\Scripts\activate # Для Windows pip install -r requirements.txt ``` ### 3. Настройка базы данных MySQL #### 3.1. Запуск контейнера с MySQL Используем Docker для поднятия MySQL контейнера: ``` bash docker-compose up -d mysql ``` #### 3.2. Создание базы данных и пользователя После поднятия контейнера с MySQL, создайте базу данных и пользователя: ### 3.2. Настройка базы данных После поднятия контейнера с MySQL, создайте таблицы и загрузите дамп: ``` docker exec -it mysql_container bash mysql -u root -p ``` Введите пароль от MySQL, а затем загрузите ваш дамп: ```bash mysql -u root -p your_database_name < /path/to/your_dump.sql ``` ### 3.3. Применение миграций После настройки базы данных выполните миграции для вашего Django-проекта: ```bash python manage.py migrate ``` ### 4. Настройка админки Для настройки админки с использованием Dazzling и Jazzmin, добавьте соответствующие настройки в settings.py: ```python INSTALLED_APPS = [ 'dazzle', 'jazzmin', ... ] JAZZMIN_SETTINGS = { "site_title": "My Admin", "site_header": "My Administration", "site_brand": "My Brand", "footer": { "copyright": False, "version": False, }, } ``` ### 5. Запуск проекта Запустите сервер Django: ```bash python manage.py runserver ``` Теперь проект будет доступен по адресу http://127.0.0.1:8000. ##### Структура проекта hotel_manager/ — основная директория проекта. hotel_manager/settings.py — настройки Django. hotel_manager/models.py — модели данных для отелей, пользователей и статистики. hotel_manager/views.py — представления для работы с данными. hotel_manager/urls.py — маршруты проекта. bot/ — директория для бота, использующего python-telegram-bot. ##### Модели Отель (Hotel) Название отеля ID отеля PMS (Bnovo, Travel Line, Realty) Статус интеграции с PMS Пользователь (User) Имя пользователя Роль (Admin или Hotel User) Связь с отелем Настройки уведомлений (Notification Settings) Включено/выключено уведомление Часовой пояс Время отправки уведомлений Статистика (Statistics) Количество несанкционированных заселений за период Статус ошибок Даты и номера нарушений ##### API Администратор: Добавить/удалить отель Добавить/удалить пользователя Проверка статуса интеграции с PMS Управление уведомлениями Пользователь отеля: Получение статистики по заселениям Управление уведомлениями ##### Интеграция с Telegram-ботом Бот для администраторов позволяет управлять отелями, пользователями, уведомлениями и проверять статус интеграций. Бот для пользователей отелей позволяет получать статистику по заселениям и управлять уведомлениями. ##### Пример команды для администратора Добавить отель Список отелей Удалить отель Проверить статус PMS ##### Пример команды для пользователя отеля Показать статистику за вчера Управление уведомлениями #### Проверка интеграции с PMS Для каждого отеля можно проверять статус интеграции с PMS (Bnovo, Travel Line, Realty) и получать ответ о доступности PMS.