- Создана структура docs/ с категориями: completed, guides, architecture, diagnostic, in-progress, reports - Перемещено 47+ MD файлов из корня проекта в docs/ - Удалено 6 устаревших/дублирующихся файлов - Создана структура backend/scripts/ для тестов и утилит - Перемещено 35 Python скриптов в backend/scripts/ - Создана структура backend/docs/ для технической документации - Перемещено 12 MD файлов backend в backend/docs/ - Перемещены LDAP тестовые данные в backend/tests/fixtures/ - Добавлены README файлы для навигации - Добавлены правила в .github/copilot-instructions.md для размещения документации Результат: - Корень проекта: только README.md - Корень backend/: только manage.py и Django приложения - Вся документация организована в структурированные папки
14 KiB
План наведения порядка в проекте EUSRR
Дата создания: 26 декабря 2025 г. Статус: Требуется выполнение
🎯 Критические задачи (безопасность)
1. КРИТИЧНО: Защита секретных данных
Приоритет: 🔴 ВЫСОКИЙ
Проблема: Файл backend/.env содержит реальные секретные данные в открытом виде:
- SECRET_KEY Django
- Токены Telegram бота
- SMS API токены
- Пароли баз данных
- Email конфигурация
Действия:
- Создать
backend/.env.exampleс шаблонами переменных - Убедиться что
.envв.gitignore - Проверить историю git - не был ли
.envзакоммичен - Если был - сменить все токены и пароли
- Добавить документацию по настройке окружения
📁 Структура и организация
2. Реорганизация документации (100+ MD файлов)
Приоритет: 🟡 СРЕДНИЙ
Проблема: В корне проекта 47+ MD файлов без структуры
Предлагаемая структура:
docs/
├── completed/ # 22 завершенных задачи
│ ├── refactoring/
│ ├── fixes/
│ └── features/
├── guides/ # 4 активных гайда
├── architecture/ # 2 архитектурных документа
├── diagnostic/ # 4 диагностических гайда
└── in-progress/ # Активные задачи
Файлы для архивирования (завершенные):
- BASE_TEMPLATE_REFACTORING_COMPLETE.md
- CHAT_LIST_REFACTORING_COMPLETE.md
- DOCUMENTS_REFACTORING_COMPLETE.md
- JS_MODULES_REFACTORING_COMPLETE.md
- REFACTORING_SUMMARY.md
- CHAT_CACHING_FIX.md
- CHAT_LIST_BUGS_FIX.md
- FOUC_FIX.md
- MESSAGE_NEWLINES_FIX.md
- POLL_WEBSOCKET_FIX.md
- WEBSOCKET_ERROR_FIX.md
- WEBSOCKET_KEEPALIVE_FIX.md
- AVATAR_CROPPER_IMPLEMENTATION.md
- FEED_AJAX_REFACTORING.md
- FORWARDED_MESSAGE_METADATA.md
- MESSAGE_EDITING_FULL_RERENDER.md
- MESSAGE_RENDERING_REFACTORING.md
- MESSAGE_SELECTION_FORWARDING.md
- MESSAGE_SENDING_REFACTORING.md
- POLLS_IMPLEMENTATION.md
- REACTIONS_FROM_DATABASE.md
- REPLY_UPDATE_ON_EDIT.md
Дубликаты для объединения:
-
Кэширование (3 файла → 1):
- CACHE_OPTIMIZATION_SUMMARY.md
- CACHING_SETUP.md
- API_REFACTORING_TESTING.md
→ Объединить в
docs/guides/CACHING_COMPLETE.md
-
Chat List (2 файла):
- CHAT_LIST_RENDERING_ANALYSIS.md (удалить)
- CHAT_LIST_REFACTORING_COMPLETE.md (оставить)
-
Base Template (2 файла):
- BASE_TEMPLATE_REFACTORING.md (удалить)
- BASE_TEMPLATE_REFACTORING_COMPLETE.md (оставить)
-
IP ограничения (2 файла → 1):
- IP_RESTRICTIONS_README.md
- IP_REGISTRATION_RESTRICTIONS.md
→ Объединить в
docs/guides/IP_RESTRICTIONS.md
-
Редактирование сообщений (4 файла → 1):
- MESSAGE_EDITING_ANALYSIS.md
- MESSAGE_EDITING_FULL_RERENDER.md
- EDITING_ATTACHMENTS_TROUBLESHOOTING.md
- REPLY_UPDATE_ON_EDIT.md
→ Объединить в
docs/completed/MESSAGE_EDITING_COMPLETE.md
-
Рендеринг сообщений (2 файла → 1):
- MESSAGE_RENDERING_REFACTORING.md
- MESSAGE_SENDING_REFACTORING.md
→ Объединить в
docs/completed/MESSAGE_SYSTEM_REFACTORING_COMPLETE.md
-
Документы (2 файла):
- DOCUMENTS_MODAL_ANALYSIS.md (удалить)
- DOCUMENTS_REFACTORING_COMPLETE.md (оставить)
-
Опросы (2 файла):
- POLL_LOADING_ANALYSIS.md (удалить)
- POLLS_IMPLEMENTATION.md (оставить)
Файлы для удаления:
- SELECTION_FIXES.md (пустой файл)
Действия:
- Создать структуру папок
docs/ - Переместить завершенные задачи в
docs/completed/ - Переместить гайды в
docs/guides/ - Объединить дубликаты
- Удалить устаревшие файлы
- Оставить в корне только README.md
3. Чистка тестовых и диагностических скриптов
Приоритет: 🟡 СРЕДНИЙ
Проблема: В backend/ более 20 тестовых скриптов вперемешку с основным кодом
Найденные файлы:
backend/
├── test_*.py (22 файла)
├── check_*.py (5 файлов)
├── analyze_*.py (1 файл)
├── create_test_data.py
├── diagnose_page.py
├── diagnostic_summary.py
├── generate_notification.py
├── quick_test.py
├── render_test_page.py
├── simple_create_users.py
└── ...
Действия:
- Переместить все
test_*.pyвbackend/tests/manual/ - Переместить
check_*.pyвbackend/scripts/diagnostic/ - Переместить утилиты в
backend/scripts/utils/ - Создать README в каждой папке со списком скриптов
- Удалить неиспользуемые скрипты
💻 Код и разработка
4. Завершить TODO в коде
Приоритет: 🟠 СРЕДНЕ-ВЫСОКИЙ
Найдено: 10 TODO/FIXME комментариев
Python (10 штук):
-
realtime/consumers.py:606
# TODO: Реализовать логику голосования -
realtime/consumers.py:747
# TODO: Реализовать через Redis для производительности -
feed/notification_signals.py:130
# TODO: реализовать систему подписок -
employees/ldap/services/sync_service.py:437
# TODO: Реализовать через UserService -
employees/ldap/services/user_service.py:123
# TODO: Убрать после полного рефакторинга -
documents/views.py:305
# TODO: добавить проверку членства в отделе через отдельный API запрос
7-10. api/v1/communications/poll_views.py (4 штуки):
# TODO: проверить права пользователя на отправку в чат (L80)
# TODO: проверить user_can_access_chat (L242)
# TODO: проверить модераторские права (L343)
# TODO: user_can_access_chat (L385)
JavaScript (5 штук):
1-4. chatMenuActions.js (4 штуки):
// TODO: Реализовать API endpoint для закрепления (L77)
// TODO: Реализовать API endpoint для управления уведомлениями (L109)
// TODO: Создать страницу редактирования чата (L134)
// TODO: Реализовать API endpoint для удаления (L144)
- requestCrudHandler.js:161
alert(message); // TODO: заменить на toast-уведомление
Действия:
- Создать GitHub Issues для каждого TODO
- Приоритизировать задачи
- Реализовать критичные TODO (проверки прав доступа)
- Удалить устаревшие TODO после рефакторинга
5. Рефакторинг LDAP модуля
Приоритет: 🟡 СРЕДНИЙ
Найдено: Много NOTE комментариев о необходимости рефакторинга
Проблемные файлы:
employees/ldap/services/user_service.py:591- метод >150 строкemployees/ldap/directory_service.py- постепенный рефакторинг в процессе
Действия:
- Завершить рефакторинг UserService
- Разбить большие методы на более мелкие
- Удалить устаревший код после рефакторинга
6. Улучшение тестирования
Приоритет: 🟢 НИЗКИЙ
Обнаружено: 75+ тестовых файлов
Проблемы:
- Тесты разбросаны по разным местам
- Нет единой документации по запуску тестов
- Некоторые тесты пропущены (требуют мокирования LDAP)
Действия:
- Создать
docs/testing/TESTING_GUIDE.md - Документировать команды запуска тестов
- Настроить CI/CD для автоматического тестирования
- Добавить покрытие кода тестами
🔧 Конфигурация и инфраструктура
7. Настройка виртуального окружения
Приоритет: ✅ ВЫПОЛНЕНО
- Создано виртуальное окружение
.venv/ - Настроена автоматическая активация в VS Code
- Создан файл инструкций
.github/copilot-instructions.md
8. Обновление зависимостей
Приоритет: 🟢 НИЗКИЙ
Текущие версии выглядят актуальными:
- Django 5.2.4 ✅
- Python 3.12.10 ✅
- Bootstrap 5.3.3 ✅
- Node packages актуальны ✅
Действия:
- Периодически проверять обновления безопасности
- Настроить Dependabot в GitHub
9. Docker и развертывание
Приоритет: 🟡 СРЕДНИЙ
Найдено:
- Dockerfile существует
- docker-compose.test.yml присутствует
- Основной docker-compose.yml отсутствует в корне
Действия:
- Проверить работоспособность Docker конфигурации
- Создать production-ready docker-compose.yml
- Документировать процесс развертывания
- Добавить health checks в контейнеры
10. Настройка .gitignore
Приоритет: 🟢 НИЗКИЙ
Текущее состояние: Базовый .gitignore присутствует
Рекомендации:
- Проверить что все временные файлы игнорируются
- Добавить
.vscode/(опционально) - Убедиться что
node_modules/игнорируется - Добавить
media/для локальной разработки
📊 Итоговая статистика
Найдено проблем:
- 🔴 Критичных: 1 (секретные данные)
- 🟠 Высокий приоритет: 1 (TODO в коде)
- 🟡 Средний приоритет: 5 (структура, скрипты, LDAP, Docker, documents)
- 🟢 Низкий приоритет: 3 (тестирование, зависимости, gitignore)
Файлы для реорганизации:
- 47 MD файлов в корне
- 22 завершенных задачи для архивирования
- 14 дубликатов для объединения
- 27+ тестовых скриптов для перемещения
TODO в коде:
- 10 Python TODO
- 5 JavaScript TODO
🎬 Рекомендуемый порядок выполнения
- Безопасность (день 1) - Защита .env файла
- Структура документации (день 1-2) - Создание папок и перемещение файлов
- Чистка скриптов (день 2) - Организация тестовых файлов
- Критичные TODO (неделя 1) - Проверки прав доступа в API
- Рефакторинг LDAP (неделя 2-3) - Улучшение кода
- Docker и CI/CD (неделя 3-4) - Инфраструктура
- Остальные TODO (ongoing) - По мере необходимости
💡 Дополнительные рекомендации
Автоматизация
- Настроить pre-commit hooks для проверки кода
- Добавить автоматическое форматирование (black, isort)
- Настроить линтеры (flake8, eslint)
Мониторинг
- Добавить логирование критичных операций
- Настроить Sentry для отслеживания ошибок
- Добавить метрики производительности
Документация
- Создать CONTRIBUTING.md для новых разработчиков
- Документировать API через Swagger/OpenAPI
- Добавить архитектурные диаграммы
Примечание: Этот план можно выполнять поэтапно. Начните с критичных задач (безопасность) и постепенно двигайтесь к улучшениям.