Files
Touchh/README.md
2024-12-06 10:47:30 +09:00

164 lines
5.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Проект управления отелями
## Описание
Проект для управления отелями, пользователями, интеграциями с 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.