105 lines
4.6 KiB
Markdown
105 lines
4.6 KiB
Markdown
# InviteMe
|
||
|
||
Система регистрации гостей, рассылки приглашений и контроля входа на мероприятия.
|
||
|
||
## Возможности
|
||
|
||
- Создание мероприятий и управление ими.
|
||
- Импорт гостей из Excel.
|
||
- Генерация QR-кодов и персональных пригласительных билетов.
|
||
- Конструктор билетов с логотипом, цветами и предпросмотром.
|
||
- Рассылка приглашений по SMTP, EWS (Exchange) или через локальный Outlook.
|
||
- Проверка приглашений на входе (сканирование QR / поиск по списку).
|
||
- Ролевая модель: администратор, организатор, стафф.
|
||
- Аудит действий пользователей.
|
||
- Поддержка Docker.
|
||
|
||
## Быстрый старт
|
||
|
||
### Вариант 1: Docker (рекомендуется)
|
||
|
||
Требования: установленный Docker и Docker Compose.
|
||
|
||
```bash
|
||
git clone https://git.mycloud24.ru/insight/InviteMe.git
|
||
cd InviteMe
|
||
|
||
# Собрать и запустить
|
||
docker compose up -d --build
|
||
|
||
# Приложение будет доступно по адресу http://localhost:8888
|
||
```
|
||
|
||
При первом запуске откройте `http://localhost:8888` — вас встретит страница создания первого администратора.
|
||
|
||
### Вариант 2: Запуск вручную
|
||
|
||
Требования: Python 3.12.
|
||
|
||
```bash
|
||
git clone https://git.mycloud24.ru/insight/InviteMe.git
|
||
cd InviteMe
|
||
|
||
python -m venv venv
|
||
# Windows:
|
||
venv\Scripts\pip install -r requirements.txt
|
||
# Linux/macOS:
|
||
# venv/bin/pip install -r requirements.txt
|
||
|
||
# Запуск
|
||
venv\Scripts\python run_waitress.py
|
||
```
|
||
|
||
Приложение запустится на `http://localhost:8888`.
|
||
|
||
## Первый запуск
|
||
|
||
1. Откройте приложение в браузере.
|
||
2. На странице приветствия создайте первого администратора.
|
||
3. Войдите под созданной учётной записью.
|
||
4. Создайте мероприятие и настройте почту в разделе «Рассылка → Настройки почты».
|
||
|
||
## Настройка почты
|
||
|
||
В разделе **Рассылка → Настройки почты** можно выбрать один из способов отправки:
|
||
|
||
- **SMTP** — указать сервер, порт, логин и пароль.
|
||
- **EWS** — для Microsoft Exchange, указать URL вида `https://mail.company.com/EWS/Exchange.asmx`.
|
||
- **Локальный Outlook** — работает только если приложение запущено на Windows-компьютере с установленным Outlook.
|
||
|
||
## Безопасность
|
||
|
||
- Сразу после первого запуска задайте сильный `SECRET_KEY` через переменную окружения.
|
||
- Не храните реальные пароли в репозитории — используйте `.env` файл или переменные окружения.
|
||
- Папка `instance/` (SQLite) и `app/static/uploads/` не попадают в git.
|
||
- Пример переменных окружения — в файле `.env.example`.
|
||
|
||
## Переменные окружения
|
||
|
||
| Переменная | Описание | По умолчанию |
|
||
|------------|----------|--------------|
|
||
| `SECRET_KEY` | Секретный ключ для сессий | `dev-secret-key-change-in-production` |
|
||
| `BASE_URL` | Базовый URL приложения | — |
|
||
| `TIMEZONE` | Часовой пояс | `Europe/Moscow` |
|
||
| `DATABASE_URL` | URI базы данных (SQLite по умолчанию) | `sqlite:///instance/inviteme.db` |
|
||
|
||
## Структура проекта
|
||
|
||
```
|
||
InviteMe/
|
||
├── app/ # Flask-приложение
|
||
│ ├── services/ # QR, билеты, почта, Excel
|
||
│ ├── templates/ # HTML-шаблоны
|
||
│ ├── static/ # CSS, JS, изображения
|
||
│ └── utils/ # Вспомогательные утилиты
|
||
├── instance/ # SQLite-база (не в git)
|
||
├── app/static/uploads/ # Загруженные файлы (не в git)
|
||
├── Dockerfile
|
||
├── docker-compose.yml
|
||
└── requirements.txt
|
||
```
|
||
|
||
## Лицензия
|
||
|
||
Проект распространяется как есть для внутреннего использования.
|