Skip to content

Altair788/MailMaster

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Сервис управления рассылками, администрирования и получения статистики

Описание

Сервис управления рассылками — это веб-приложение на Django Framework, которое позволяет пользователям создавать, управлять и анализировать рассылки сообщений для клиентов. Приложение предоставляет гибкий интерфейс для работы с клиентами, сообщениями и рассылками, а также поддерживает расширенные функции, такие как аутентификация, права доступа, кеширование и автоматизация.


Основные возможности:

Пользовательский режим:

  • Загрузка базы клиентов в сервис.
  • Создание, редактирование и удаление сообщений рассылки.
  • Планирование отправки сообщений через почтовый сервис (например, Yandex).
  • Просмотр статистики по своим рассылкам.
  • Общая статистика сервиса на главной странице.

Режим "Менеджер":

  • Просмотр всех клиентов и рассылок.
  • Просмотр списка пользователей сервиса.
  • Возможность отключения рассылок.

Режим "Администратор":

  • Полный доступ к управлению сообщениями, клиентами и рассылками.
  • Управление пользователями (блокировка, назначение ролей).
  • Разделение прав доступа для различных пользователей.

Установка и запуск

1. Установка зависимостей

Убедитесь, что у вас установлен Python версии 3.13. Для установки зависимостей используйте Poetry:

poetry install

2. Применение миграций

Примените миграции для настройки базы данных:

python manage.py makemigrations
python manage.py migrate

3. Создание суперпользователя

Для создания суперпользователя выполните команду:

python manage.py csu

4. Запуск сервера разработки

Запустите сервер разработки:

python manage.py runserver

5. Запуск Celery для фоновых задач

Запустите Celery worker:

celery -A config worker -l INFO -Q cw6_queue

Запустите Celery Beat для планировщика задач:

celery -A config beat -l INFO

6. Настройка логирования

Убедитесь, что директория logs существует в корне проекта:

mkdir -p logs
chmod 755 logs

Логирование

Система логирования настроена автоматически. Файл logs/mail_master.log будет создан при первом запуске приложения и не требует ручного создания. В этот файл будут записываться все важные события приложения, включая информацию о рассылках, ошибках и других значимых операциях.


Основные команды

  1. Создание суперпользователя:

    python manage.py csu
  2. Создание группы "Менеджеры":

    python manage.py create_managers_group
  3. Отправка рассылок вручную:

    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: Основной файл логов приложения (создается автоматически).
    • Здесь хранятся все логи, связанные с работой приложения, включая информацию о рассылках, ошибках и других важных событиях.

Функционал приложения

Часть 1: Базовый функционал

  1. Управление клиентами:

    • Добавление, редактирование и удаление клиентов.
    • Поля модели:
      • Email (уникальный).
      • ФИО.
      • Комментарий.
  2. Управление сообщениями:

    • Добавление, редактирование и удаление сообщений.
    • Поля модели:
      • Тема письма.
      • Тело письма.
  3. Управление рассылками:

    • Добавление, редактирование и удаление рассылок.
    • Поля модели:
      • Дата начала и окончания отправки.
      • Статус (Создана, Запущена, Отправлена, Завершена, Приостановлена).
      • Связь с сообщением и клиентами.
  4. Попытки отправки сообщений:

    • Логирование каждой попытки отправки:
      • Дата и время попытки.
      • Статус (Успешно, Не успешно).
      • Ответ почтового сервера.
  5. Главная страница: Отображает общую статистику:

    • Количество всех рассылок.
    • Количество активных рассылок (Запущена).
    • Количество уникальных клиентов.

Часть 2: Расширенный функционал

  1. Аутентификация пользователей:

    • Регистрация с подтверждением email.
    • Вход/выход из системы.
    • Восстановление пароля.
  2. Права доступа: Разделение прав между пользователями:

    • Пользователь: Управляет только своими данными (клиенты, сообщения, рассылки).
    • Менеджер: Просматривает все данные (без возможности редактирования чужих).
    • Администратор: Полный доступ ко всем данным.
  3. Кеширование: Настроено серверное кеширование для повышения производительности:

    • Кеширование данных о рассылках.
  4. Статистика и отчёты: Отображение количества успешных/неуспешных попыток отправки сообщений.

  5. Фоновые задачи с Celery: Автоматическая отправка сообщений по расписанию через Celery + Redis.

  6. Логирование событий: Логируются основные события приложения:

    • Успешные/неуспешные попытки отправки сообщений.
    • Ошибки в работе приложения.

Автор

Eduard Slobodyanik
Email: [email protected]


About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published