DOC
Accueil/ Projets/ MJY Task Platform/ Cadrage des Nouvelles Fonctionnalités & Suggestions d'Améliorations

Cadrage des Nouvelles Fonctionnalités & Suggestions d'Améliorations

Projet : Plateforme MJY Holding
Date : 7 juillet 2026

Ce document détaille les spécifications fonctionnelles des nouvelles fonctionnalités demandées, ainsi que des suggestions complémentaires pour optimiser l'usage de l'application au sein de la holding MJY (Miyan Noodles, ENGWE France, etc.).


📋 1. Nouvelles Fonctionnalités Spécifiées

👤 A. Page Profil Utilisateur (Collaborateurs, Managers, Super Admin)

  • Objectif : Permettre à chaque membre connecté de gérer ses propres informations personnelles et de sécuriser son compte de façon autonome.
  • Fonctionnalités :
    • Consultation : Visualisation du nom, de l'adresse e-mail, du rôle (Collaborateur, Manager, Super Admin) et des projets/entités rattachés.
    • Modification des infos : Édition du nom d'affichage et de l'e-mail (nécessitant une validation).
    • Changement du code PIN : Interface de saisie sécurisée pour définir un nouveau code PIN à 4 chiffres (l'ancien code PIN doit être saisi pour validation avant modification).
  • Impact Technique :
    • Mise en place d'un endpoint sécurisé /api/profile/update (ou requêtes Supabase directes soumises aux politiques RLS).
    • Hachage immédiat (bcrypt) du nouveau PIN côté serveur avant enregistrement dans la base de données.

🔐 B. Refonte du Flux de Connexion (Authentification Sécurisée)

  • Objectif : Remplacer la sélection de compte publique (qui affiche tous les noms et e-mails de la holding à n'importe quel visiteur, posant un problème de confidentialité) par une saisie directe.
  • Spécifications fonctionnelles :
    • Écran de connexion neutre : Plus de liste de membres cliquables. Deux champs de saisie sont affichés :
      1. Identifiant : Adresse e-mail ou Nom d'utilisateur (Username).
      2. Code PIN : Masqué (type password) à 4 chiffres.
    • Option "Mémoriser l'identifiant" :
      • Une case à cocher : "Ceci est mon ordinateur de travail. Mémoriser mon identifiant."
      • Si cochée, l'e-mail/nom d'utilisateur est enregistré dans le localStorage.
      • Au prochain chargement, l'identifiant est pré-rempli et le focus est directement mis sur le champ PIN.
  • Impact Technique :
    • Désactivation de l'endpoint public /api/public_data pour la partie membres afin d'éviter les fuites d'annuaire.
    • Mise à jour du formulaire dans Auth.jsx.

📧 C. Automatisation de l'Envoi d'E-mail à la Création d'un Membre

  • Objectif : Faciliter l'onboarding sécurisé des nouveaux utilisateurs créés par les managers ou le Super Admin.
  • Fonctionnalités :
    • Lorsqu'un nouveau membre est créé :
      1. Le système génère un code PIN aléatoire temporaire à 4 chiffres.
      2. Un e-mail de bienvenue est envoyé au collaborateur via un service de messagerie (ex: Resend, SendGrid ou Nodemailer via Netlify Functions).
      3. L'e-mail contient : les instructions de connexion, son identifiant, le code PIN par défaut, et un lien direct vers l'application.
      4. Un indicateur must_change_pin est positionné à true sur le compte dans la base de données.
    • Première connexion :
      • Dès que l'utilisateur saisit son identifiant et son code PIN temporaire, l'application détecte le flag must_change_pin et le redirige immédiatement vers une modale obligatoire de changement de code PIN avant de lui donner accès aux tableaux de bord.
  • Impact Technique :
    • Ajout d'une colonne booléenne must_change_pin dans la table members.
    • Intégration d'un service d'envoi d'e-mails dans la Netlify Function de gestion des membres.

🎨 D. Refonte Visuelle (À définir et valider en fin de projet)

  • Ligne directrice : Modernisation de l'UI avec une esthétique premium, responsive et fluide, tout en préservant l'identité visuelle de la holding.

💡 2. Suggestions & Améliorations Recommandées pour la Holding MJY

Compte tenu de la structure de MJY Holding (activités de restauration comme Miyan Noodles et de logistique/distribution comme ENGWE France), voici des propositions de fonctionnalités complémentaires à forte valeur ajoutée :

📡 A. Mode Hors-Ligne Résilient (PWA - Progressive Web App)

  • Pourquoi ? Les managers en restaurant (ex: en cuisine chez Miyan Noodles) ou les collaborateurs sur le terrain chez ENGWE France peuvent rencontrer des pertes de connexion réseau (zones blanches, sous-sols).
  • Fonctionnement :
    • Enregistrer l'application en tant que PWA installable sur mobile et tablette.
    • Utilisation d'un Service Worker pour mettre en cache l'application.
    • Stockage des modifications hors-ligne dans IndexedDB (via le cache local actuel de storage.js).
    • Dès le retour du réseau, une synchronisation automatique en arrière-plan pousse les modifications locales vers Supabase et résout les conflits éventuels.

🔔 B. Système de Notifications Contextuelles & Alertes

  • Pourquoi ? Pour accélérer les temps de traitement et s'assurer que les collaborateurs et managers voient les urgences sans avoir besoin de rafraîchir l'application.
  • Propositions :
    • Notification Push ou E-mail/Slack :
      • Lorsqu'un manager assigne une tâche "Bloquante" ou "Haute" à un collaborateur.
      • Lorsqu'un collaborateur soumet une tâche pour validation (bascule au statut pending_validation). Le manager assigné reçoit une alerte immédiate "Tâche [Nom] à valider".
      • Lorsqu'une tâche est validée ou rejetée (avec le motif de rejet affiché dans la notification).

🛠️ C. Journal d'Audit et Historique des Modifications (Audit Trail)

  • Pourquoi ? Dans une structure collaborative avec plusieurs entités, il est important de savoir qui a modifié un élément, notamment pour les changements de statuts, de priorités ou de PINs de sécurité.
  • Fonctionnement :
    • Création d'une table audit_logs (id, user_email, action, table_name, record_id, changes, created_at).
    • Enregistrement automatique de chaque action sensible (connexion échouée, changement de code PIN, suppression de projet, validation de tâche).

📸 D. Ajout de Pièces Jointes aux Tâches (Photos de Terrain)

  • Pourquoi ? Un collaborateur chez Miyan Noodles constatant un équipement défectueux (ex: machine à nouilles en panne) doit pouvoir illustrer le problème. Un livreur d'ENGWE France doit pouvoir attacher un bon de livraison.
  • Fonctionnement :
    • Activation du module Supabase Storage (Buckets de fichiers sécurisés par RLS).
    • Ajout d'un bouton "Prendre une photo / Joindre un fichier" dans le formulaire de tâche TaskForm.jsx.
    • Affichage d'un carrousel d'images ou de liens de téléchargement dans la vue détaillée TaskDetail.jsx.

🏷️ E. Segmentation stricte par Filiale (Tenant Isolation)

  • Pourquoi ? Un collaborateur de Miyan Noodles ne doit en aucun cas voir ou modifier les tâches d'un projet logistique d'ENGWE France.
  • Fonctionnement :
    • Renforcer les politiques RLS pour cloisonner strictement les données par identifiant d'entité, en veillant à ce que seuls les Super Admins (Julien & Marco) puissent avoir la visibilité transverse.