Игорь Надеин ce158c64bb docs: финальный отчет о завершении requests detail view
✅ ПРОЕКТ 100% ЗАВЕРШЕН

Статистика:
- 8 этапов разработки (100%)
- 9 коммитов на feature ветке
- 1300+ строк кода
- 5+ документов создано
- Все функции реализованы
- Все тесты пройдены
- Готово к merge & deployment

Реализовано:
✅ RequestDetailView (backend)
✅ requestDetail.js (frontend модуль)
✅ Система комментариев
✅ Управление статусом
✅ Полная документация
✅ План тестирования

Готово к интеграции в master и развертыванию на production
2025-12-26 16:35:38 +03:00

EUSRR - Корпоративная система управления

Комплексная корпоративная информационная система с интеграцией Active Directory/LDAP для управления сотрудниками, документами, заявками и внутренними коммуникациями.

Основные возможности

🏢 Управление сотрудниками

  • Интеграция с Active Directory через LDAP
  • Автоматическая синхронизация данных сотрудников
  • Управление отделами и должностями
  • Профили сотрудников с фотографиями и контактами
  • Иерархия отделов с назначением руководителей

📄 Система документооборота

  • Загрузка и распространение документов
  • Отправка документов всем сотрудникам, конкретным отделам или индивидуально
  • Автоматические уведомления о новых документах
  • Отслеживание ознакомления с документами
  • Визуальное выделение неознакомленных документов

📬 Система уведомлений

  • Веб-уведомления в реальном времени (WebSocket)
  • Email-уведомления с настраиваемой периодичностью (мгновенно, ежедневно, еженедельно)
  • Telegram-уведомления через бота
  • Индивидуальные настройки уведомлений для каждого пользователя
  • Звуковые оповещения о новых уведомлениях

📋 Система заявок

  • Создание и отслеживание заявок
  • Назначение ответственных отделов
  • История изменений заявок
  • Комментарии и обсуждения

💬 Внутренние коммуникации

  • Лента новостей организации
  • Посты с комментариями
  • Упоминания сотрудников (@mention)
  • Ленты новостей по отделам

📅 Календарь событий

  • Корпоративный календарь
  • События отделов и общеорганизационные события
  • Интеграция с календарем на главной странице

Технологический стек

Backend

  • Python 3.13.5
  • Django 5.2.4 - основной веб-фреймворк
  • Django REST Framework - REST API
  • Django Channels - WebSocket поддержка
  • PostgreSQL / SQLite - база данных
  • python-ldap - интеграция с Active Directory
  • Celery (опционально) - асинхронные задачи

Frontend

  • Bootstrap 5 - UI фреймворк
  • Vanilla JavaScript (ES6+) - модульная архитектура
  • WebSocket - реальное время
  • Fetch API - HTTP запросы

Интеграции

  • Active Directory (LDAP) - управление пользователями
  • Telegram Bot API - уведомления в Telegram
  • SMTP (Yandex) - email-рассылка
  • SMS Gateway - SMS-уведомления

Установка и запуск

Предварительные требования

  • Python 3.11+
  • PostgreSQL 14+ или SQLite (для разработки)
  • Active Directory (опционально, можно отключить через LDAP_ENABLED=False)
  • Git

Установка

  1. Клонирование репозитория:
git clone https://github.com/IgorNadein/EUSRR.git
cd EUSRR
  1. Создание виртуального окружения:
python -m venv .venv
source .venv/bin/activate  # Linux/Mac
# или
.venv\Scripts\activate  # Windows
  1. Установка зависимостей:
cd backend
pip install -r requirements.txt
  1. Настройка окружения:
# Скопируйте .env.example в .env и настройте параметры
cp .env.example .env

Основные параметры в .env:

# База данных
USE_SQLITE=True  # True для SQLite, False для PostgreSQL

# Django
SECRET_KEY=your-secret-key
DEBUG=True
ALLOWED_HOSTS=localhost,127.0.0.1

# LDAP (можно отключить)
LDAP_ENABLED=False  # True для интеграции с AD

# Email
EMAIL_HOST=smtp.yandex.ru
EMAIL_PORT=465
EMAIL_HOST_USER=your-email@yandex.ru
EMAIL_HOST_PASSWORD=your-password

# Telegram (опционально)
TELEGRAM_BOT_TOKEN=your-bot-token
  1. Применение миграций:
python manage.py migrate
  1. Создание суперпользователя:
python manage.py createsuperuser
  1. Сбор статических файлов:
python manage.py collectstatic --noinput

Запуск разработки

# Запуск сервера разработки
python manage.py runserver 9000

# В отдельном терминале - Telegram бот (опционально)
python manage.py run_telegram_bot

Приложение будет доступно по адресу: http://localhost:9000

Запуск в продакшене

  1. Настройте .env для продакшена:
DEBUG=False
USE_SQLITE=False
ALLOWED_HOSTS=your-domain.com
LDAP_ENABLED=True
  1. Используйте WSGI сервер (Gunicorn):
pip install gunicorn
gunicorn eusrr_backend.wsgi:application --bind 0.0.0.0:8000
  1. Настройте веб-сервер (Nginx) как reverse proxy

  2. Настройте supervisor/systemd для автозапуска

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

EUSRR/
├── backend/                      # Django проект
│   ├── api/                      # REST API
│   │   └── v1/                   # API версия 1
│   │       ├── documents/        # API документов
│   │       ├── employees/        # API сотрудников
│   │       └── ...
│   ├── documents/                # Приложение документов
│   ├── employees/                # Приложение сотрудников
│   ├── notifications/            # Система уведомлений
│   ├── requests_app/             # Система заявок
│   ├── feed/                     # Лента новостей
│   ├── calendar_app/             # Календарь событий
│   ├── communications/           # Коммуникации
│   ├── static/                   # Статические файлы
│   │   ├── css/                  # Стили
│   │   └── js/                   # JavaScript модули
│   ├── templates/                # HTML шаблоны
│   ├── media/                    # Загруженные файлы
│   └── eusrr_backend/            # Настройки Django
└── README.md                     # Этот файл

Основные функции

Работа с документами

  1. Создание документа:

    • Загрузка файла
    • Выбор получателей (все/отделы/конкретные сотрудники)
    • Автоматические уведомления
  2. Отслеживание ознакомления:

    • Клик на документ автоматически отмечает ознакомление
    • Визуальное выделение неознакомленных документов
    • Ведомость ознакомлений для администраторов

Система уведомлений

  1. Веб-уведомления:

    • Звуковое оповещение
    • Счётчик непрочитанных
    • Список в реальном времени
  2. Email-уведомления:

    • Мгновенная отправка
    • Ежедневный дайджест
    • Еженедельный дайджест
  3. Telegram-уведомления:

    • Привязка аккаунта через код
    • Мгновенная отправка важных уведомлений

LDAP интеграция

  • Двусторонняя синхронизация данных
  • Создание пользователей в AD
  • Управление отделами через OU
  • Автоматическое обновление при изменениях

API Документация

REST API доступен по адресу /api/v1/

Основные эндпоинты:

  • /api/v1/employees/ - Сотрудники
  • /api/v1/departments/ - Отделы
  • /api/v1/documents/ - Документы
  • /api/v1/requests/ - Заявки
  • /api/v1/calendar/events/ - События календаря
  • /api/notifications/ - Уведомления

Документация API: /api/docs/ (если установлен drf-spectacular)

Разработка

Создание миграций

python manage.py makemigrations
python manage.py migrate

Запуск тестов

pytest
# или
python manage.py test

Линтинг кода

flake8 .
black .
isort .

Настройка уведомлений

Email

Настройте SMTP в .env:

EMAIL_HOST=smtp.yandex.ru
EMAIL_PORT=465
EMAIL_USE_SSL=true
EMAIL_HOST_USER=your-email@yandex.ru
EMAIL_HOST_PASSWORD=your-app-password
DEFAULT_FROM_EMAIL=Company <your-email@yandex.ru>

Telegram

  1. Создайте бота через @BotFather
  2. Получите токен
  3. Настройте в .env:
TELEGRAM_BOT_TOKEN=123456789:ABCdefGHIjklMNOpqrsTUVwxyz
TELEGRAM_BOT_USERNAME=your_bot_name
  1. Запустите бота:
python manage.py run_telegram_bot

Отложенная отправка

Для дайджестов используйте команду:

python manage.py send_pending_notifications --batch-size=100

Настройте cron для автоматического запуска:

# Ежедневно в 9:00
0 9 * * * /path/to/python /path/to/manage.py send_pending_notifications

Безопасность

  • Используйте HTTPS в продакшене
  • Настройте CORS правильно
  • Используйте сильные пароли
  • Регулярно обновляйте зависимости
  • Настройте файрвол
  • Используйте переменные окружения для секретов

Документация и troubleshooting

Архитектура

Руководства по функциям

WebSocket диагностика

Рефакторинг и оптимизация

Лицензия

Проприетарное ПО © 2024-2025 Robotail

Контакты

Changelog

v2.0.0 (21.11.2025)

  • ✨ Добавлена возможность отправки документов на отделы
  • ✨ Визуальное выделение неознакомленных документов
  • ✨ Автоматическое ознакомление при клике на документ
  • ✨ Адаптивная мобильная версия
  • 🐛 Исправлена фильтрация "Мои документы" для загрузивших
  • 🐛 Исправлена ведомость ознакомлений с учётом отделов
  • 🔧 Добавлена поддержка массовых рассылок с порогом

v1.0.0

  • 🎉 Первый релиз
  • ✨ Базовая система документооборота
  • ✨ Интеграция с LDAP
  • ✨ Система уведомлений
  • ✨ Управление заявками
Description
Разработка — в develop; локальный CI работает через Git hooks и quality gates перед коммитом/пушем. После проверки — слияние в master. Push в master запускает blue-green деплой на CORP через Gitea Actions и Telegram-отчёт. Статус деплоя — «Действия».
https://corp.robotail.pro/ Readme 87 MiB
Languages
Python 47.7%
TypeScript 30%
JavaScript 15.5%
HTML 4%
SCSS 2.1%
Other 0.7%