5.9 KiB
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éé