Веб-сервис на Django: личный кабинет B2B, заявки и роли
Кабинет B2B на Django: заявки, роли и админка операторов — чужие заявки не светятся по URL.
Celery, Django, PostgreSQL, RBAC
Я делал веб-сервис на Django — личный кабинет для клиентов B2B: заявки на услуги, статусы, файлы, переписка с менеджером. Рядом — внутренняя админка для операторов, не «голый» Django Admin из коробки.
Я спроектировал модели и ограничения: организация → пользователи → заявки → комментарии и вложения. Я написал RBAC: владелец, менеджер клиента, наблюдатель, оператор, супервизор. Права проверял не только в view, но и на queryset: чужие заявки не светятся даже прямым URL.
Я собрал формы и список заявок с фильтрами, пагинацией и поиском; загрузка файлов — в S3, антивирусная проверка и лимит размера. Я вынес тяжёлые уведомления (почта, Telegram) в Celery, чтобы POST не ждал SMTP.
Я закрыл сессии, CSRF, аудит действий (кто сменил статус), мягкое удаление. Стек: Django 5, PostgreSQL, Redis, Celery, Gunicorn, Nginx, Docker. NDA: сервис и домен не публикуются.