Sobre o projeto

## Posicionamento do projeto Projeto de implantação tradicional local direta da plataforma de conteúdo sobre saúde materno-infantil e parentalidade Mengya, voltado para depuração local por desenvolvedores, desenvolvimento com recarregamento a quente do código-fonte e implantação em hosts leves sem ambiente Docker. O repositório também oferece um projeto irmão na versão Docker. ## Características da arquitetura - **Hospedagem monolítica integrada**: os artefatos de build de produção do frontend são mesclados nos diretórios templates e static do Django, e um único processo Python hospeda de forma unificada as páginas SPA, os recursos estáticos e a API de backend, sem necessidade de serviço Node.js residente no ambiente de execução. - **Armazenamento de dados**: SQLite3 local (backend/db.sqlite3), com suporte a migração automática. - **Stack tecnológica**: Python 3.10+, Django + DRF, React + Vite (Node.js 18+ necessário apenas para desenvolvimento secundário do frontend). - **Isolamento de segurança**: frontend e backend vinculados ao endereço de loopback, com acesso externo via proxy reverso Nginx; suporte à coexistência na porta 443 com outros sites HTTPS do host através de SNI, geração automática de certificado autoassinado com extensão SAN e redirecionamento integrado de 80 para 443. ## Script de operação run.sh Oferece comandos como start / restart / stop / status / add_nginx / init_data / help, com suporte a parâmetros de linha de comando para personalizar portas, nome de usuário, senha e apelido do administrador, domínio SNI, gravando automaticamente no .env. Antes da inicialização, limpa automaticamente o cache e objetos redundantes do .git; quando o .env está ausente, inicializa por auto-recuperação a partir do template. ## Módulos funcionais - **Gerenciamento de conta de administrador**: executa ensure_admin na inicialização, garantindo um ciclo de vida de administrador único, limpando automaticamente contas de administradores históricos e preservando os dados de usuários registrados comuns. - **Controle de segurança de login**: contagem de erros de senha e de perguntas de segurança, contagem regressiva de bloqueio, captcha gráfico, limite de tentativas de recuperação de senha; contas de administrador não são congeladas, apenas acionam espera e captcha. - **Matriz de controle de permissões**: cobre 6 grandes módulos com um total de 31 permissões refinadas (menus de página e operações CRUD), com suporte a padrão global e personalização por usuário, vinculação recursiva entre permissões pai e filho, e o administrador possui a permissão máxima não desativável. - **Conteúdo e negócio**: calendário semanal de gestação, histórias de educação fetal, receitas para gestantes, enciclopédia infantil, lista de enxoval, biblioteca de produtos e marcas, favoritos de produtos, links de canais de compra. - **Assistente de IA**: suporte à configuração de API Key individual ou herdada do administrador e teste de conectividade, failover de busca online multi-mecanismo (DuckDuckGo, Google, Bing, 360, Sogou, Baidu, Yahoo), degradação para base de conhecimento local em caso de timeout, respostas com indicação da fonte de informação. - **Perfil do bebê**: suporte a dois modos, não nascido (data prevista do parto, nome fetal) e nascido (data de nascimento, peso), com sincronização bidirecional com a fase de gestação, e exibição da idade de bebês mais velhos em meses no formato “X anos e X meses”. - **Log de auditoria**: cobre comportamentos como autenticação, controle de usuários, mudanças de fase, produtos, favoritos, saúde, lista de enxoval, perguntas e respostas de IA, com suporte a filtragem e exportação CSV. ## Estrutura de diretórios backend (projeto Django, apps, config, db.sqlite3, requirements.txt), frontend (código-fonte Vite + React), logs (logs e PID), .env, run.sh. ## Cenários de aplicação Adequado para implantadores que desejam executar uma plataforma de conteúdo materno-infantil em uma única máquina ou servidor leve com o mínimo de dependências, e que necessitam de capacidades refinadas de permissão e controle de segurança.