Files
sonum/todo.md

5.9 KiB

SONUM - Todo

Base de données & Backend

  • Schéma DB : tables établissements, solutions, éditeurs, blocs fonctionnels, logiciels_etablissements
  • Schéma DB : tables demandes_contact, consultations (traçabilité), cgu_acceptances
  • Données de référence : régions, types d'activité, blocs fonctionnels, états déploiement, modes hébergement
  • Procédures tRPC : CRUD solutions et éditeurs
  • Procédures tRPC : CRUD établissements et rattachement logiciels
  • Procédures tRPC : moteur de recherche multicritères
  • Procédures tRPC : fiche logiciels + compteur consultation
  • Procédures tRPC : prise de contact (email + notification)
  • Procédures tRPC : demandes de contact (liste, réponse)
  • Procédures tRPC : CGU (vérification + acceptation)
  • Procédures tRPC : gestion des rôles (admin/user)

Interface & Design

  • Design system : couleurs FEHAP, typographie, tokens CSS
  • Layout principal avec navigation (sidebar + header)
  • Page de connexion / landing
  • Modale Charte CGU (1ère connexion)
  • Page d'accueil : moteur de recherche multicritères
  • Page résultats de recherche (tableau triable)
  • Page "Mes Établissements" (accordéons)
  • Formulaire de saisie guidé en étapes (rattacher une solution)
  • Mode édition complète inline des tableaux
  • Page fiche logiciels d'un établissement
  • Modale prise de contact
  • Page "Mes Demandes de Contact"
  • Interface gestionnaire SONUM (accès admin)
  • Lien retour espace adhérent FEHAP

Tests

  • Tests unitaires procédures tRPC (14 tests passés)

Évolution v2 — Profil Adhérent FEHAP & Auth locale

Base de données

  • Étendre enum sonumRole : ajouter "adherent"
  • Table local_users : id, userId (FK), passwordHash, createdAt
  • Vérifier que la table users supporte les comptes créés manuellement (sans openId OAuth)

Backend tRPC

  • Procédure admin.createUser : créer un utilisateur manuellement (nom, email, rôle, mot de passe)
  • Procédure admin.listUsers : liste complète des utilisateurs avec rôle et établissements
  • Procédure admin.updateUser : modifier nom, email, rôle d'un utilisateur
  • Procédure admin.deleteUser : supprimer un utilisateur
  • Procédure admin.setAffectations : affecter un ou plusieurs établissements à un adhérent
  • Procédure admin.removeEtablissement : retirer un établissement d'un adhérent (inclus dans setAffectations)
  • Procédure auth.loginLocal : authentification par email + mot de passe (JWT session)
  • Middleware : les adhérents FEHAP voient uniquement leurs établissements affectés

Interface

  • Page de choix de connexion : OAuth FEHAP vs Connexion locale
  • Formulaire de connexion locale (email + mot de passe)
  • Page admin : onglet "Gestion des utilisateurs" avec tableau et actions CRUD
  • Page admin : affectations établissements inline dans le tableau utilisateurs
  • Badge "Adhérent FEHAP" dans le header et la sidebar
  • Vue "Mes Établissements" filtrée pour les adhérents (uniquement les établissements affectés)

Évolution v3 — Gestion des établissements par utilisateur

  • Étendre admin.setAffectations pour accepter tous les rôles (référent + adhérent)
  • Interface Admin : panneau dédié "Établissements" par utilisateur avec liste complète, barre de recherche et cases à cocher
  • Afficher le nombre d'établissements affectés dans le tableau utilisateurs

Évolution v4

  • CGU : afficher à chaque connexion (réinitialiser à chaque login, pas seulement à la fermeture du navigateur)
  • Moteur de recherche : corriger les filtres multicritères qui ne fonctionnent pas
  • Page "Mes Solutions Numériques" : liste de toutes mes solutions avec les établissements les utilisant (accordéon)
  • Page "Solutions Logicielles" : liste globale des solutions avec établissements équipés (accordéon), accessible depuis la sidebar
  • Admin : onglet import établissements (CSV/Excel)
  • Admin : onglet import contacts (CSV/Excel)

Évolution v5

  • Solutions Logicielles : toggle vue accordéon / vue liste à plat (solutions + établissements visibles sans clic)

Évolution v6

  • Admin : onglet "Éditeurs" — CRUD éditeurs (ajouter, modifier, supprimer)
  • Admin : onglet "Blocs fonctionnels" — CRUD blocs fonctionnels (ajouter, modifier, supprimer)
  • Backend : procédures tRPC CRUD éditeurs (createEditeur, updateEditeur, deleteEditeur)
  • Backend : procédures tRPC CRUD blocs fonctionnels (createBlocFonctionnel, updateBlocFonctionnel, deleteBlocFonctionnel)
  • Backend : procédure statistiques (stats par bloc fonctionnel, par région, taux de remplissage)
  • Page "Tableau de bord" : graphiques recharts (barres, camembert, indicateurs clés)
  • Lien "Tableau de bord" dans la sidebar (visible uniquement gestionnaires)

Évolution v7

  • Vue liste Solutions Logicielles : alternance de couleurs de fond (blanc / bleu clair) à chaque changement de solution pour améliorer la lisibilité

Évolution v8 — Skill itinova-user-management

  • Schéma DB : ajout champs firstName, lastName, login, isActive dans table users
  • Schéma DB : migration enum role (admin/standard/readonly)
  • db.ts : createLocalUser étendu (firstName, lastName, login, role, isActive)
  • db.ts : authenticateLocalUser accepte login ou email
  • db.ts : updateUser étendu avec nouveaux champs
  • routers.ts : loginLocal accepte login ou email (pas seulement email)
  • routers.ts : middleware writeProcedure pour bloquer mutations readonly
  • routers.ts : updateUser étendu avec firstName, lastName, login, role, isActive
  • Admin.tsx : formulaire création/édition avec firstName, lastName, login, role, isActive
  • Login.tsx : page de choix avec logo FEHAP
  • LoginLocal.tsx : formulaire connexion locale avec logo FEHAP (haut) et Santinova (bas)
  • Seed admin : compte admin@sonum.fr / Admin2024! créé