Техническое задание: Мини-CRM система на Django
Цель проекта
Разработка компактной, но функциональной CRM-системы для отслеживания потенциальных клиентов и сделок. Система должна быть понятной в использовании и иметь потенциал для дальнейшего расширения.
Основные сущности (модели)
- Lead (Лид) - контакт или потенциальный клиент.
- Deal (Сделка) - коммерческое предложение или текущая сделка с этапами.
- Company (Компания) - организация, к которой относятся лиды и сделки.
Обязательная функциональность
1. Система ролей и прав доступа
- Manager (Менеджер): Полный доступ на создание, редактирование и удаление записей.
- Viewer (Наблюдатель): Доступ только на просмотр данных без возможности изменений.
2. Система уведомлений
- Отправка email-уведомлений при изменении статуса у сущностей Lead или Deal.
- Отправка писем должна осуществляться асинхронно, через очередь задач (например, Celery).
3. API и документация
- Реализация REST API для всех основных операций с сущностями.
- Подключение и настройка Swagger (DRF Spectacular или аналоги) для автоматической генерации интерактивной документации API.
4. Технические требования
- Фреймворк: Django + Django REST Framework.
- База данных: на усмотрение исполнителя (предпочтительно PostgreSQL).
- Очередь задач: Celery + Redis/RabbitMQ.
- Код должен быть чистым, с комментариями и соответствовать PEP8.
- Проект должен быть готов к развертыванию (предоставлены инструкции, файл requirements.txt).
Ожидаемый результат
Работоспособное веб-приложение с административной панелью Django, функциональным интерфейсом для менеджеров и наблюдателей, работающей системой уведомлений и полной документацией API.