Сервис управления рассылками — это веб-приложение на Django Framework, которое позволяет пользователям создавать, управлять и анализировать рассылки сообщений для клиентов. Приложение предоставляет гибкий интерфейс для работы с клиентами, сообщениями и рассылками, а также поддерживает расширенные функции, такие как аутентификация, права доступа, кеширование и автоматизация.
- Загрузка базы клиентов в сервис.
- Создание, редактирование и удаление сообщений рассылки.
- Планирование отправки сообщений через почтовый сервис (например, Yandex).
- Просмотр статистики по своим рассылкам.
- Общая статистика сервиса на главной странице.
- Просмотр всех клиентов и рассылок.
- Просмотр списка пользователей сервиса.
- Возможность отключения рассылок.
- Полный доступ к управлению сообщениями, клиентами и рассылками.
- Управление пользователями (блокировка, назначение ролей).
- Разделение прав доступа для различных пользователей.
Убедитесь, что у вас установлен Python версии 3.13. Для установки зависимостей используйте Poetry:
poetry install
Примените миграции для настройки базы данных:
python manage.py makemigrations
python manage.py migrate
Для создания суперпользователя выполните команду:
python manage.py csu
Запустите сервер разработки:
python manage.py runserver
Запустите Celery worker:
celery -A config worker -l INFO -Q cw6_queue
Запустите Celery Beat для планировщика задач:
celery -A config beat -l INFO
Убедитесь, что директория logs
существует в корне проекта:
mkdir -p logs
chmod 755 logs
Система логирования настроена автоматически. Файл logs/mail_master.log
будет создан при первом запуске приложения и не требует ручного создания. В этот файл будут записываться все важные события приложения, включая информацию о рассылках, ошибках и других значимых операциях.
-
Создание суперпользователя:
python manage.py csu
-
Создание группы "Менеджеры":
python manage.py create_managers_group
-
Отправка рассылок вручную:
python manage.py send_newsletter
Проект использует следующие ключевые зависимости (подробнее в pyproject.toml
):
- Django 4.2.2 — основной фреймворк.
- Celery — для фоновых задач (например, отправка сообщений).
- Redis — брокер задач для Celery.
- psycopg2-binary — драйвер PostgreSQL.
- django-crontab — для планирования задач.
- django-celery-beat — управление расписанием задач через админку.
- pillow — работа с изображениями (если потребуется).
- flake8, black, isort — инструменты для проверки качества кода.
-
mailmaster/
: Основное приложение проекта:- Модели:
models.py
(Клиенты, Сообщения, Рассылки). - Контроллеры:
views.py
(CRUD операций). - Шаблоны:
templates/
.
- Модели:
-
users/
: Приложение для управления пользователями:- Регистрация и аутентификация пользователей.
- Назначение ролей (менеджер, пользователь).
-
management/commands/
: Пользовательские команды:csu.py
: Создание суперпользователя.create_managers_group.py
: Создание группы "Менеджеры".send_newsletter.py
: Отправка рассылок вручную.
-
logs/
: Директория для хранения файлов логов:mail_master.log
: Основной файл логов приложения (создается автоматически).- Здесь хранятся все логи, связанные с работой приложения, включая информацию о рассылках, ошибках и других важных событиях.
-
Управление клиентами:
- Добавление, редактирование и удаление клиентов.
- Поля модели:
- Email (уникальный).
- ФИО.
- Комментарий.
-
Управление сообщениями:
- Добавление, редактирование и удаление сообщений.
- Поля модели:
- Тема письма.
- Тело письма.
-
Управление рассылками:
- Добавление, редактирование и удаление рассылок.
- Поля модели:
- Дата начала и окончания отправки.
- Статус (
Создана
,Запущена
,Отправлена
,Завершена
,Приостановлена
). - Связь с сообщением и клиентами.
-
Попытки отправки сообщений:
- Логирование каждой попытки отправки:
- Дата и время попытки.
- Статус (
Успешно
,Не успешно
). - Ответ почтового сервера.
- Логирование каждой попытки отправки:
-
Главная страница: Отображает общую статистику:
- Количество всех рассылок.
- Количество активных рассылок (
Запущена
). - Количество уникальных клиентов.
-
Аутентификация пользователей:
- Регистрация с подтверждением email.
- Вход/выход из системы.
- Восстановление пароля.
-
Права доступа: Разделение прав между пользователями:
- Пользователь: Управляет только своими данными (клиенты, сообщения, рассылки).
- Менеджер: Просматривает все данные (без возможности редактирования чужих).
- Администратор: Полный доступ ко всем данным.
-
Кеширование: Настроено серверное кеширование для повышения производительности:
- Кеширование данных о рассылках.
-
Статистика и отчёты: Отображение количества успешных/неуспешных попыток отправки сообщений.
-
Фоновые задачи с Celery: Автоматическая отправка сообщений по расписанию через Celery + Redis.
-
Логирование событий: Логируются основные события приложения:
- Успешные/неуспешные попытки отправки сообщений.
- Ошибки в работе приложения.
Eduard Slobodyanik
Email: [email protected]