Sobre el proyecto
## Posicionamiento del proyecto
Mengya es un proyecto de despliegue directo tradicional local de una plataforma de contenido de salud materno-infantil y crianza, orientado a depuración local para desarrolladores, desarrollo con recarga en caliente del código fuente y despliegue en hosts ligeros sin Docker. El repositorio también ofrece un proyecto hermano en versión Docker.
## Características de la arquitectura
- **Alojamiento monolítico integrado**: los artefactos de compilación de producción del frontend se fusionan en los directorios templates y static de Django, y un único proceso Python aloja de forma unificada las páginas SPA, los recursos estáticos y la API del backend, sin necesidad de un servicio Node.js permanente en el entorno de ejecución.
- **Almacenamiento de datos**: SQLite3 local (backend/db.sqlite3), con soporte de migraciones automáticas.
- **Stack tecnológico**: Python 3.10+, Django + DRF, React + Vite (Node.js 18+ solo es necesario para desarrollo secundario del frontend).
- **Aislamiento de seguridad**: el frontend y el backend están vinculados a direcciones de loopback, y el acceso externo pasa por un proxy inverso Nginx; admite coexistir con otros sitios HTTPS del host en el puerto 443 mediante SNI, genera automáticamente certificados autofirmados con extensión SAN e incluye redirección de 80 a 443.
## Script de operación run.sh
Proporciona comandos como start / restart / stop / status / add_nginx / init_data / help, admite parámetros de línea de comandos para personalizar puerto, cuenta, contraseña y apodo del administrador, y dominio SNI, y los escribe automáticamente en .env. Antes del arranque limpia automáticamente la caché y los objetos redundantes de .git, y cuando falta .env se auto-recupera inicializándolo desde la plantilla.
## Módulos funcionales
- **Gestión de cuenta de administrador**: ejecuta ensure_admin en el arranque, garantiza el ciclo de vida de un único administrador, limpia automáticamente cuentas de administrador históricas y conserva los datos de usuarios registrados normales.
- **Control de riesgos de seguridad en el inicio de sesión**: conteo de errores de contraseña y de preguntas de seguridad, cuenta regresiva de bloqueo, captcha gráfico y límite de intentos de recuperación de contraseña; la cuenta de administrador no se congela, solo activa espera y captcha.
- **Matriz de control de permisos**: cubre 31 permisos detallados en 6 módulos principales (menús de página y operaciones CRUD), admite valores predeterminados globales y personalización por usuario, vinculación recursiva entre permisos padre e hijo, y el administrador posee el permiso máximo no deshabilitable.
- **Contenido y negocio**: calendario semanal de embarazo, cuentos de educación prenatal, recetas para el embarazo, enciclopedia infantil, lista de preparación para el parto, biblioteca de productos y marcas, favoritos de productos y enlaces de canales de compra.
- **Asistente de IA**: admite configuración personal o heredada del administrador de API Key y prueba de conectividad, conmutación por error de búsqueda en línea entre múltiples motores (DuckDuckGo, Google, Bing, 360, Sogou, Baidu, Yahoo), degradación por tiempo de espera a la base de conocimiento local y respuestas con indicación de la fuente de información.
- **Perfil del bebé**: admite dos modos, no nacido (fecha prevista de parto, nombre fetal) y nacido (fecha de nacimiento, peso), con sincronización bidireccional con la etapa de gestación; la edad en meses de bebés mayores se muestra como "X años X meses".
- **Registro de auditoría**: cubre autenticación, control de usuarios, cambios de etapa, productos, favoritos, salud, lista de preparación para el parto, preguntas y respuestas de IA, entre otros comportamientos, con soporte de filtrado y exportación CSV.
## Estructura de directorios
backend (proyecto Django, apps, config, db.sqlite3, requirements.txt), frontend (código fuente Vite + React), logs (registros y PID), .env, run.sh.
## Escenarios aplicables
Adecuado para implementadores que deseen ejecutar una plataforma de contenido materno-infantil en una sola máquina o en un servidor ligero con mínimas dependencias, y que necesiten capacidades de permisos detallados y control de riesgos de seguridad.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.