164 lines
5.7 KiB
Markdown
164 lines
5.7 KiB
Markdown
# Проект управления отелями
|
||
|
||
## Описание
|
||
|
||
Проект для управления отелями, пользователями, интеграциями с PMS, а также для контроля статистики и уведомлений. Включает веб-админку, REST API для управления данными и Telegram-бота для взаимодействия с пользователями.
|
||
|
||
## Стек технологий
|
||
|
||
- Django (для бэкенда)
|
||
- Jazzmin (для кастомизации админки)
|
||
- MySQL (для хранения данных)
|
||
- python-telegram-bot (для Telegram-бота)
|
||
- Docker (для контейнеризации базы данных и проекта)
|
||
|
||
## Установка
|
||
|
||
### 1. Клонирование репозитория
|
||
|
||
```bash
|
||
git clone <repo url>
|
||
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. |