Skip to content

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📬 Django Mailing Service

Django application for managing email campaigns, clients and scheduled mailings

Учебный Django-проект для создания и управления рассылками.

Приложение позволяет создавать сообщения и клиентскую базу, формировать рассылки, отслеживать их состояние и вести журнал попыток отправки.

Проект также включает авторизацию пользователей, разграничение доступа, кеширование и планирование фоновых задач.


🚀 Возможности

  • регистрация и авторизация пользователей;
  • управление клиентами рассылок;
  • создание и редактирование сообщений;
  • создание и управление рассылками;
  • настройка периодичности отправки;
  • управление статусами рассылок;
  • журналирование попыток отправки;
  • ограничение доступа к отдельным операциям через permissions;
  • кеширование отдельных представлений;
  • планирование задач;
  • блог с подсчётом просмотров.

🏗️ Архитектура

Основная бизнес-логика сосредоточена в приложении service.

Users
  │
  ├── Clients
  │
  ├── Messages
  │
  └── Mailings
        │
        ├── Clients
        ├── Message
        └── Mailing Logs

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

Для пользователей предусмотрены собственные permissions, позволяющие разделять доступ к просмотру и управлению рассылками.


📁 Структура проекта

Cource_django_6/
├── config/
├── service/
│   ├── migrations/
│   ├── templates/
│   ├── templatetags/
│   ├── cron.py
│   ├── forms.py
│   ├── models.py
│   ├── tests.py
│   ├── urls.py
│   └── views.py
├── users/
├── static/
├── media/
├── manage.py
├── poetry.lock
└── pyproject.toml

Основные модели

MailingMessage

Содержит тему и текст сообщения.

Client

Хранит данные клиентов, которым предназначены рассылки.

Mailing

Описывает настройки рассылки: дату и время, периодичность, статус, сообщение и список клиентов.

MailingLog

Хранит информацию о попытках выполнения рассылки и ответах почтового сервера.

Blog

Дополнительный раздел с публикациями и подсчётом просмотров.


🔐 Authentication & Permissions

В проекте используется авторизация пользователей Django.

Для отдельных операций с рассылками реализованы собственные permissions:

  • просмотр рассылок;
  • отключение рассылок.

Доступ к функциональности контролируется на уровне представлений.


⚡ Caching & Scheduled Tasks

Для повышения эффективности приложения используется кеширование отдельных представлений.

Проект также содержит механизм запуска запланированных задач для автоматизации работы с рассылками.


🛠️ Technologies

  • Python
  • Django
  • Django ORM
  • PostgreSQL
  • Redis
  • Django Cache Framework
  • django-crontab
  • Poetry
  • HTML / CSS

🧠 What I Practiced

В проекте практиковались:

  • построение Django-приложения;
  • работа с Django ORM;
  • создание связанных моделей;
  • ForeignKey и ManyToManyField;
  • Class-Based Views;
  • формы Django;
  • authentication;
  • custom permissions;
  • кеширование;
  • планирование фоновых задач;
  • журналирование операций;
  • организация проекта по приложениям.

🎯 Project Purpose

Проект создавался как практика разработки Django-приложения с более сложной бизнес-логикой.

Основной акцент — переход от простого CRUD к приложению, в котором появляются пользователи, права доступа, связанные сущности, автоматизация задач и дополнительные инфраструктурные компоненты.


🌱 Development Path

Этот проект занимает промежуточное место в моей backend-линии:

Django → ORM → Authentication → Permissions → Redis → Scheduled Tasks

Следующим этапом стали более комплексные приложения с PostgreSQL, Celery, Redis, платежами и Docker.


🦊

Ещё один шаг от учебного CRUD к приложению, где уже приходится думать не только о данных, но и о доступе, автоматизации и инфраструктуре.

About

Django mailing service with scheduled email campaigns, clients, permissions, caching and Redis.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages