Skip to content

Latest commit

 

History

91 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

💌 Django Email Campaign Service

Сервис управления рассылками с системой ролей, блогом и планировщиком задач.

🚀 О проекте

Сервис позволяет компаниям создавать и управлять 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 для работы с клиентами и письмами.

Удобная админка для менеджеров и контент-менеджеров. 

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages