Об этом проекте

## Позиционирование проекта «Мэнъя» (Mengya) — проект локального традиционного прямого развёртывания платформы контента о материнском и детском здоровье и уходе за детьми, ориентированный на локальную отладку разработчиками, разработку с горячей перезагрузкой исходного кода и развёртывание на лёгких хостах без среды Docker. В репозитории также предоставляется братский проект с версией для Docker. ## Особенности архитектуры - **Монолитное интегрированное обслуживание**: производственная сборка фронтенда объединяется в каталоги templates и static Django, единый процесс Python централизованно обслуживает страницы SPA, статические ресурсы и серверный API; в рабочей среде не требуется постоянно работающий сервис Node.js. - **Хранение данных**: локальный SQLite3 (backend/db.sqlite3), поддерживается автоматическая миграция. - **Технологический стек**: Python 3.10+, Django + DRF, React + Vite (Node.js 18+ требуется только при вторичной разработке фронтенда). - **Безопасная изоляция**: фронтенд и бэкенд привязаны к loopback-адресу, внешний доступ идёт через обратный прокси Nginx; поддерживается сосуществование на порту 443 с другими HTTPS-сайтами хост-машины через SNI, автоматически генерируется самоподписанный сертификат с расширением SAN, встроен переход с 80 на 443. ## Скрипт эксплуатации run.sh Предоставляет команды start / restart / stop / status / add_nginx / init_data / help и другие, поддерживает настройку через параметры командной строки портов, логина, пароля и никнейма администратора, домена SNI, с автоматической записью в .env. Перед запуском автоматически очищает кэш и избыточные объекты .git, при отсутствии .env самовосстанавливается из шаблона. ## Функциональные модули - **Управление учётной записью администратора**: при запуске выполняется ensure_admin, обеспечивается жизненный цикл единственного администратора, автоматически очищаются исторические учётные записи администраторов, данные обычных зарегистрированных пользователей сохраняются. - **Контроль рисков безопасности входа**: счётчики ошибок пароля и контрольного вопроса, обратный отсчёт блокировки, графическая капча, ограничение числа попыток восстановления пароля; учётная запись администратора не замораживается, вызываются только ожидание и капча. - **Матрица управления правами**: охватывает 6 крупных модулей и всего 31 тонкую настройку прав (меню страниц и операции CRUD), поддерживает глобальные значения по умолчанию и индивидуальную настройку для пользователя, рекурсивную связь родительских и дочерних прав; администратор обладает высшими правами, которые нельзя отключить. - **Контент и бизнес**: недельный календарь беременности, истории для пренатального воспитания, рецепты для беременных, энциклопедия для малышей, список для роддома, база товаров и брендов, избранные товары, ссылки на каналы покупки. - **AI-ассистент**: поддерживает настройку API Key личного или унаследованного от администратора и проверку подключения, отказоустойчивый переход между несколькими поисковыми системами (DuckDuckGo, Google, Bing, 360, Sogou, Baidu, Yahoo), при тайм-ауте переход к локальной базе знаний, ответы с указанием источников информации. - **Профиль ребёнка**: поддерживает два режима — нерождённый (предполагаемая дата родов, имя плода) и рождённый (дата рождения, вес), двусторонняя синхронизация с этапом беременности и воспитания, для старших детей возраст отображается в формате «X лет X месяцев». - **Журнал аудита**: охватывает аутентификацию, управление пользователями, изменение этапов, товары, избранное, здоровье, список для роддома, вопросы и ответы AI и другие действия, поддерживает фильтрацию и экспорт в CSV. ## Структура каталогов backend (проект Django, apps, config, db.sqlite3, requirements.txt), frontend (исходный код Vite + React), logs (журналы и PID), .env, run.sh. ## Сценарии применения Подходит для тех, кто хочет запустить платформу контента о материнстве и детях на одной машине или лёгком сервере с минимальными зависимостями и нуждается в тонкой настройке прав и возможностях контроля безопасности.