Сервис управления рассылками с системой ролей, блогом и планировщиком задач.
Сервис позволяет компаниям создавать и управлять email-рассылками для своих клиентов.
Реализован удобный веб-интерфейс для настройки рассылок, ведения базы клиентов, отслеживания статистики и продвижения через встроенный блог.
- CRUD-интерфейс для создания и управления рассылками.
- Настройка даты первой отправки и периодичности (день / неделя / месяц).
- Автоматический запуск рассылок по расписанию (через
django-apscheduler). - Отслеживание статуса рассылки и логирование попыток отправки.
- Устойчивость к ошибкам внешнего почтового сервиса.
- База клиентов (email, ФИО, комментарий).
- Возможность выбора целевых клиентов при создании рассылки.
- CRUD-интерфейс для управления клиентами.
- CRUD для шаблонов писем: тема и тело письма.
- Привязка сообщений к конкретным рассылкам.
- Логирование статуса (успешно / неуспешно).
- Хранение ответа от почтового сервера и времени последней попытки.
- Кастомная модель пользователя (
AbstractUser) с регистрацией по email и подтверждением почты. - Разделение прав доступа:
- Обычный пользователь — управляет своими рассылками и клиентами.
- Менеджер — может просматривать все рассылки, блокировать пользователей и останавливать рассылки, но не может их редактировать.
- Реализована аутентификация, верификация email и ограничение доступа к чужим данным.
- Раздел блога для контент-маркетинга сервиса.
- Модель статьи: заголовок, контент, изображение, просмотры, дата публикации.
- Главная страница отображает:
- Общее количество рассылок.
- Активные рассылки.
- Количество уникальных клиентов.
- 3 случайные статьи из блога.
- Кеширование данных блога и статистики главной страницы.
- Backend: Django 5, Django ORM
- Frontend: Bootstrap 5
- База данных: PostgreSQL
- Планировщик задач:
django-apscheduler - Кеширование: Redis / Django cache framework
- Аутентификация: кастомный
AbstractUserс подтверждением email - Docker: контейнеризация приложения
- Админ-панель: кастомизирована под менеджера и контент-менеджера
git clone https://github.com/username/django-mailing-service.git
cd django-mailing-service
cp .env.example .env
docker-compose up --build
После запуска сервис будет доступен по адресу:
👉 http://localhost:8000
🧾 Основные команды
Команда Назначение
python manage.py runserver Запуск локального сервера
python manage.py crontab add Добавить задачи в планировщик
python manage.py createsuperuser Создание администратора
python manage.py loaddata groups.json Импорт групп и ролей
📊 Демонстрация
Панель администратора: /admin
Главная страница: /
Управление рассылками: /mailings/
Блог: /blog/
💡 Особенности проекта
Полностью асинхронный запуск рассылок по расписанию.
Разделение доступа на уровне моделей и интерфейса.
Готовность к масштабированию (Docker + Redis + PostgreSQL).
Продуманный UX для работы с клиентами и письмами.
Удобная админка для менеджеров и контент-менеджеров.