À propos du projet
## Positionnement du projet
Projet de déploiement local traditionnel direct de la plateforme de contenu sur la santé maternelle et infantile et l'éducation des enfants Mengya, destiné au débogage local par les développeurs, au développement avec rechargement à chaud du code source et au déploiement sur des hôtes légers sans environnement Docker. Le dépôt fournit également un projet frère en version Docker.
## Caractéristiques de l'architecture
- **Hébergement monolithique intégré** : les artefacts de build de production du frontend sont fusionnés dans les répertoires templates et static de Django, un seul processus Python héberge de manière unifiée les pages SPA, les ressources statiques et l'API backend, l'environnement d'exécution ne nécessite aucun service Node.js résident.
- **Stockage des données** : SQLite3 local (backend/db.sqlite3), avec prise en charge des migrations automatiques.
- **Stack technique** : Python 3.10+, Django + DRF, React + Vite (Node.js 18+ requis uniquement pour le développement secondaire du frontend).
- **Isolation de sécurité** : le frontend et le backend sont liés à l'adresse de bouclage, l'accès externe passe par un proxy inverse Nginx ; prise en charge de la coexistence sur le port 443 avec d'autres sites HTTPS de l'hôte via SNI, génération automatique de certificats auto-signés avec extension SAN, et redirection intégrée de 80 vers 443.
## Script d'exploitation run.sh
Fournit les commandes start / restart / stop / status / add_nginx / init_data / help, prend en charge la personnalisation par arguments de ligne de commande des ports, du compte administrateur (nom d'utilisateur, mot de passe, pseudonyme), du domaine SNI, et écrit automatiquement dans .env. Avant le démarrage, nettoie automatiquement le cache et les objets redondants .git, et s'initialise automatiquement à partir du modèle en cas d'absence de .env.
## Modules fonctionnels
- **Gestion du compte administrateur** : exécution de ensure_admin au démarrage, garantissant un cycle de vie à administrateur unique, nettoyage automatique des comptes administrateurs historiques, préservation des données des utilisateurs ordinaires enregistrés.
- **Contrôle des risques de sécurité à la connexion** : comptage des erreurs de mot de passe et de question de sécurité, compte à rebours de verrouillage, captcha graphique, limitation du nombre de tentatives de récupération de mot de passe ; les comptes administrateurs ne sont pas gelés, déclenchant uniquement une attente et un captcha.
- **Matrice de contrôle des permissions** : couvre 6 grands modules et 31 permissions fines au total (menus de page et opérations CRUD), prend en charge les valeurs par défaut globales et la personnalisation par utilisateur, liaison récursive des permissions parent-enfant, les administrateurs disposant des permissions les plus élevées non désactivables.
- **Contenu et métier** : calendrier hebdomadaire de grossesse, histoires d'éducation prénatale, recettes de grossesse, encyclopédie du jeune enfant, liste de préparation à l'accouchement, bibliothèque de produits et marques, favoris de produits, liens vers les canaux d'achat.
- **Assistant IA** : prise en charge de la configuration de clé API personnelle ou héritée de l'administrateur et test de connectivité, basculement en cas de défaillance de la recherche en ligne multi-moteurs (DuckDuckGo, Google, Bing, 360, Sogou, Baidu, Yahoo), dégradation vers la base de connaissances locale en cas de délai d'attente, annotation des sources d'information dans les réponses.
- **Profil du bébé** : prise en charge de deux modes, non né (date prévue d'accouchement, nom fœtal) et né (date de naissance, poids), synchronisation bidirectionnelle avec la phase de gestation, affichage de l'âge des bébés plus âgés en "X ans X mois".
- **Journal d'audit** : couvre les comportements d'authentification, de contrôle des utilisateurs, de changement de phase, de produits, de favoris, de santé, de liste de préparation à l'accouchement, de questions-réponses IA, etc., avec prise en charge du filtrage et de l'export CSV.
## Structure des répertoires
backend (projet Django, apps, config, db.sqlite3, requirements.txt), frontend (code source Vite + React), logs (journaux et PID), .env, run.sh.
## Scénarios d'application
Convient aux déployeurs souhaitant exécuter une plateforme de contenu maternel et infantile sur une machine unique ou un serveur léger avec un minimum de dépendances, et nécessitant des capacités de permissions fines et de contrôle des risques de sécurité.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.