Page 1 of 22
System Requirements Document for 2adsb-association
1. Introduction
Ce document spécifie le produit 2adsb-association : un véritable fichier Excel automatisé de gestion de l'association Amicale des Agents de la Direction Régionale des Sports de Bouaflé (2ADSB).
L'intention produit, dérivée de la demande de l'utilisateur, est de remplacer un simple tableau de suivi par un petit logiciel de gestion de la 2ADSB dans Excel : un classeur automatisé qui gère les membres avec numérotation automatique, enregistre les cotisations, tient la caisse (entrées et sorties d'argent), calcule automatiquement le solde, permet la recherche d'un membre, produit des rapports mensuels et annuels imprimables, offre un tableau de bord de pilotage, et intègre deux niveaux de contrôle pour les Commissaires aux comptes. Le classeur expose des boutons d'action du type « Nouveau membre », « Enregistrer cotisation », « Nouvelle dépense », « Rapport », etc.
Le public visé est l'association elle-même : les agents de la Direction Régionale des Sports de Bouaflé qui tiennent le registre au quotidien (trésorier / secrétaire) et les Commissaires aux comptes qui contrôlent les comptes. Ces utilisateurs ne sont pas nécessairement informaticiens ; le produit doit être lisible, fiable et donner la sensation d'un petit logiciel, pas d'une feuille de calcul brute.
Page 2 of 22
2. System Overview
Le produit est un classeur Excel automatisé (livrable Excel), et non une application web ni un simple tableau. Il est disponible sur l'appareil utilisé et conserve, par ses formules, boutons et automatisations, les numéros membres, cotisations, mouvements, soldes et contrôles pour les consultations et rapports ultérieurs.
Les acteurs humains sont le Gestionnaire de l'association (Trésorier / Secrétaire) et le Commissaire aux comptes. Le Gestionnaire crée les fiches membres (numéro automatique), enregistre les cotisations, saisit les entrées et sorties d'argent, consulte le solde calculé automatiquement, recherche un membre, produit et imprime les rapports mensuels et annuels, et pilote la gestion via le tableau de bord. Le Commissaire aux comptes vérifie les enregistrements de cotisations, les mouvements de caisse et les soldes calculés, puis valide ou rejette les opérations selon le niveau de contrôle applicable, afin de garantir la fiabilité des comptes avant clôture des rapports.
Le classeur est organisé en surfaces de travail cohérentes : une entrée explicative (Landing), la gestion des membres (Members, New Member), les cotisations (Contributions), la caisse (Cash Inflows, Expenses, Cash Balance), le pilotage (Dashboard), les rapports (Monthly Reports, Annual Reports, Print Reports) et le contrôle des comptes (Audit Control).
Exclusions et périmètre : le produit n'est pas une application web ; il ne remplace pas le classeur Excel par un service en ligne. Le contrôle des comptes comporte deux niveaux, réservés aux Commissaires aux comptes. Aucune autre capacité de gestion de comptes, de facturation ou de comptabilité générale n'est demandée.
Page 3 of 22
2a. Product Interpretation and Delivery Boundary
Le produit est livré sous forme de fichier Excel automatisé exécuté localement sur l'appareil de l'utilisateur. Toutes les fonctions de gestion — membres, cotisations, caisse, solde, recherche, rapports, tableau de bord, impression et contrôle — sont portées par le classeur lui-même, au moyen de formules, de boutons d'action et d'automatisations. Le classeur est la propriété de l'association et fonctionne sans dépendance à un service externe.
L'accès aux surfaces de gestion est ouvert : le classeur est un outil interne de l'association, utilisé sur l'appareil de l'utilisateur. Aucune identité applicative, aucun compte en ligne et aucune authentification ne sont requis par la source. La distinction entre le Gestionnaire et le Commissaire aux comptes est une distinction de rôle de travail (qui saisit, qui contrôle), et non un contrôle de permission différencié sur un état partagé : les deux niveaux de contrôle des Commissaires aux comptes sont une exigence fonctionnelle de contrôle comptable, pas un système de rôles applicatif.
Le périmètre courant couvre l'ensemble des fonctions listées ci-dessus. Aucune fonction future n'est engagée par la source.
2b. Source Content Inventory
Sans objet : aucune directive de référence de type content_source n'a été fournie.
2c. Page Content and Component Coverage
Page 4 of 22
Landing
- Information / état : présentation du classeur automatisé de gestion de la 2ADSB ; nom de l'association (Amicale des Agents de la Direction Régionale des Sports de Bouaflé — 2ADSB) ; rappel des fonctions disponibles (membres, cotisations, caisse, solde, recherche, rapports, tableau de bord, impression, contrôle).
- Actions principales : accéder aux fonctions de gestion (Membres, Cotisations, Entrées, Dépenses, Caisse, Rapports, Contrôle) ; accéder au tableau de bord.
- Actions de soutien : consulter la description de chaque fonction.
- Entités du domaine : association 2ADSB ; fonctions du logiciel.
- Responsabilités des composants : bandeau d'identification de l'association ; liste numérotée des fonctions ; accès direct aux boutons d'action principaux.
- États : chargement (ouverture du classeur) ; vide (aucune donnée saisie — affichage des fonctions sans chiffres) ; succès (fonctions accessibles) ; erreur (classeur non ouvert / macros désactivées — indication de réactivation) ; récupération (réouverture du classeur).
Members
- Information / état : liste des fiches membres existantes avec numéro de membre, identité et informations de la fiche ; résultat de recherche d'un membre.
- Actions principales : rechercher un membre ; consulter la fiche d'un membre.
- Actions de soutien : accéder à la création d'un nouveau membre.
- Entités du domaine : membre (numéro automatique, identité, fiche).
- Responsabilités des composants : zone de recherche ; tableau des membres ; accès à la fiche détaillée.
- États : chargement ; vide (aucun membre enregistré — invitation à créer un premier membre) ; succès (membre trouvé et affiché) ; erreur (aucun résultat pour la recherche — message explicite) ; récupération (modification du critère de recherche).
New Member
- Information / état : formulaire de création d'une fiche membre ; numéro de membre attribué automatiquement.
- Actions principales : saisir les informations du membre ; enregistrer la fiche avec attribution automatique du numéro.
- Actions de soutien : annuler la saisie.
- Entités du domaine : membre ; numéro de membre automatique.
- Responsabilités des composants : champs de saisie ; affichage du numéro attribué ; bouton « Nouveau membre ».
- États : chargement ; vide (formulaire vierge) ; succès (fiche créée, numéro attribué et visible) ; erreur (champs obligatoires manquants — indication des champs à compléter) ; récupération (correction et nouvel enregistrement).
Page 5 of 22
Contributions
- Information / état : enregistrement des cotisations par membre ; historique des cotisations enregistrées.
- Actions principales : sélectionner un membre ; saisir le montant et la période de cotisation ; enregistrer la cotisation.
- Actions de soutien : consulter les cotisations déjà enregistrées pour un membre.
- Entités du domaine : cotisation ; membre ; montant ; période.
- Responsabilités des composants : sélection du membre ; champs de cotisation ; bouton « Enregistrer cotisation » ; tableau des cotisations.
- États : chargement ; vide (aucune cotisation enregistrée) ; succès (cotisation enregistrée et visible dans l'historique) ; erreur (membre non sélectionné ou montant invalide — message explicite) ; récupération (correction et nouvel enregistrement).
Cash Inflows
- Information / état : saisie des entrées d'argent en caisse ; historique des entrées.
- Actions principales : saisir une entrée d'argent (montant, date, libellé) ; enregistrer l'entrée.
- Actions de soutien : consulter les entrées enregistrées.
- Entités du domaine : entrée de caisse ; montant ; date ; libellé.
- Responsabilités des composants : champs de saisie ; bouton d'enregistrement ; tableau des entrées.
- États : chargement ; vide (aucune entrée enregistrée) ; succès (entrée enregistrée et visible) ; erreur (montant ou date invalide — message explicite) ; récupération (correction et nouvel enregistrement).
Expenses
- Information / état : saisie des sorties d'argent et dépenses de caisse ; historique des dépenses.
- Actions principales : saisir une dépense (montant, date, libellé) ; enregistrer la dépense.
- Actions de soutien : consulter les dépenses enregistrées.
- Entités du domaine : dépense ; montant ; date ; libellé.
- Responsabilités des composants : champs de saisie ; bouton « Nouvelle dépense » ; tableau des dépenses.
- États : chargement ; vide (aucune dépense enregistrée) ; succès (dépense enregistrée et visible) ; erreur (montant ou date invalide — message explicite) ; récupération (correction et nouvel enregistrement).
Page 6 of 22
Cash Balance
- Information / état : solde de caisse calculé automatiquement à partir des entrées et des sorties ; détail des mouvements contribuant au solde.
- Actions principales : consulter le solde calculé automatiquement ; consulter le détail des mouvements.
- Actions de soutien : filtrer les mouvements par période.
- Entités du domaine : solde de caisse ; entrées ; sorties ; mouvements.
- Responsabilités des composants : affichage du solde ; tableau des mouvements ; calcul automatique.
- États : chargement ; vide (aucun mouvement — solde nul) ; succès (solde affiché et cohérent avec les mouvements) ; erreur (incohérence détectée — signalement) ; récupération (vérification des mouvements saisis).
Dashboard
- Information / état : vue de pilotage de la gestion : solde de caisse courant, nombre de membres, cotisations du mois, nombre de mouvements du mois.
- Actions principales : accéder aux fonctions de gestion (Membres, Cotisations, Entrées, Dépenses, Caisse, Rapports, Contrôle).
- Actions de soutien : consulter les indicateurs clés.
- Entités du domaine : solde ; membres ; cotisations ; mouvements.
- Responsabilités des composants : blocs d'indicateurs ; accès aux boutons d'action ; bande de statut.
- États : chargement ; vide (aucune donnée — indicateurs à zéro) ; succès (indicateurs affichés) ; erreur (données indisponibles — signalement) ; récupération (recalcul / réouverture).
Monthly Reports
- Information / état : rapport mensuel des cotisations, des entrées, des sorties et du solde pour le mois sélectionné.
- Actions principales : sélectionner le mois ; générer le rapport mensuel ; consulter le rapport.
- Actions de soutien : accéder à l'impression du rapport.
- Entités du domaine : rapport mensuel ; mois ; cotisations ; entrées ; sorties ; solde.
- Responsabilités des composants : sélecteur de mois ; génération du rapport ; affichage du rapport ; accès à l'impression.
- États : chargement ; vide (aucun mouvement pour le mois — rapport vide explicite) ; succès (rapport généré et affiché) ; erreur (mois non sélectionné — message explicite) ; récupération (sélection d'un autre mois).
Page 7 of 22
Annual Reports
- Information / état : rapport annuel des cotisations, des entrées, des sorties et du solde pour l'année sélectionnée.
- Actions principales : sélectionner l'année ; générer le rapport annuel ; consulter le rapport.
- Actions de soutien : accéder à l'impression du rapport.
- Entités du domaine : rapport annuel ; année ; cotisations ; entrées ; sorties ; solde.
- Responsabilités des composants : sélecteur d'année ; génération du rapport ; affichage du rapport ; accès à l'impression.
- États : chargement ; vide (aucun mouvement pour l'année — rapport vide explicite) ; succès (rapport généré et affiché) ; erreur (année non sélectionnée — message explicite) ; récupération (sélection d'une autre année).
Print Reports
- Information / état : aperçu et mise en page des rapports mensuels et annuels générés en vue de l'impression.
- Actions principales : sélectionner le rapport à imprimer ; lancer l'impression.
- Actions de soutien : prévisualiser le rapport avant impression.
- Entités du domaine : rapport mensuel ; rapport annuel ; impression.
- Responsabilités des composants : sélection du rapport ; aperçu ; commande d'impression.
- États : chargement ; vide (aucun rapport généré — invitation à générer un rapport) ; succès (rapport imprimé) ; erreur (imprimante indisponible — message explicite) ; récupération (nouvelle tentative d'impression).
Audit Control
- Information / état : contrôle des comptes par les Commissaires aux comptes selon deux niveaux de contrôle ; état de validation ou de rejet des opérations contrôlées.
- Actions principales : examiner les enregistrements de cotisations, les mouvements de caisse et les soldes calculés ; appliquer le premier niveau de contrôle ; appliquer le second niveau de contrôle ; valider ou rejeter les opérations selon le niveau applicable.
- Actions de soutien : consulter l'historique des contrôles.
- Entités du domaine : contrôle ; niveau de contrôle (premier, second) ; cotisation ; mouvement de caisse ; solde ; validation ; rejet.
- Responsabilités des composants : liste des opérations à contrôler ; sélection du niveau de contrôle ; commandes de validation et de rejet ; affichage de l'état de contrôle.
- États : chargement ; vide (aucune opération à contrôler) ; succès (opération validée ou rejetée, état affiché) ; erreur (niveau de contrôle non applicable — message explicite) ; récupération (réexamen de l'opération).
Page 8 of 22
3. Functional Requirements
FR-01 — Créer un véritable fichier Excel automatisé de gestion de la 2ADSB (explicit)
As a Gestionnaire de l'association (Trésorier / Secrétaire), I should disposer d'un véritable fichier Excel automatisé de gestion de l'association 2ADSB, afin de gérer l'association dans un classeur qui ressemble davantage à un petit logiciel de gestion qu'à un simple tableau.
- Déclencheur : ouverture du classeur sur l'appareil utilisé.
- Résultat observable : le classeur automatisé est ouvert et ses fonctions de gestion sont accessibles.
- Échec / récupération : si les automatisations ne sont pas actives, l'utilisateur est invité à les réactiver ; il rouvre ensuite le classeur.
- Continuation : l'utilisateur accède aux fonctions de gestion depuis le tableau de bord.
FR-02 — Gérer les membres (explicit)
As a Gestionnaire de l'association (Trésorier / Secrétaire), I should gérer les membres de l'association, afin de tenir à jour la liste des membres.
- Déclencheur : accès à la fonction Membres.
- Résultat observable : les fiches membres existantes sont listées et consultables.
- Échec / récupération : si aucune fiche n'existe, un état vide invite à créer un premier membre.
- Continuation : l'utilisateur consulte une fiche ou crée un nouveau membre.
FR-03 — Attribuer automatiquement le numéro du membre (explicit)
As a Gestionnaire de l'association (Trésorier / Secrétaire), I should obtenir un numéro de membre attribué automatiquement lors de la création d'une fiche, afin d'identifier chaque membre de façon unique.
- Déclencheur : enregistrement d'une nouvelle fiche membre.
- Résultat observable : un numéro de membre est attribué automatiquement et affiché sur la fiche.
- Échec / récupération : si des champs obligatoires manquent, l'enregistrement est refusé et les champs à compléter sont indiqués ; l'utilisateur corrige puis réenregistre.
- Continuation : la fiche créée apparaît dans la liste des membres avec son numéro.
FR-04 — Enregistrer les cotisations (explicit)
As a Gestionnaire de l'association (Trésorier / Secrétaire), I should enregistrer les cotisations des membres, afin de suivre les versements de chacun.
- Déclencheur : sélection d'un membre et saisie d'une cotisation.
- Résultat observable : la cotisation est enregistrée et visible dans l'historique des cotisations.
- Échec / récupération : si aucun membre n'est sélectionné ou si le montant est invalide, l'enregistrement est refusé avec un message explicite ; l'utilisateur corrige puis réenregistre.
- Continuation : la cotisation enregistrée alimente le solde de caisse et les rapports.
FR-05 — Gérer la caisse (explicit)
As a Gestionnaire de l'association (Trésorier / Secrétaire), I should gérer la caisse de l'association, afin de suivre les mouvements d'argent.
- Déclencheur : accès à la fonction Caisse.
- Résultat observable : les mouvements de caisse sont enregistrés et consultables.
- Échec / récupération : si une saisie est invalide, elle est refusée avec un message explicite ; l'utilisateur corrige puis réenregistre.
- Continuation : les mouvements alimentent le solde calculé automatiquement.
FR-06 — Saisir les entrées d'argent (explicit)
As a Gestionnaire de l'association (Trésorier / Secrétaire), I should saisir les entrées d'argent en caisse, afin d'enregistrer les recettes de l'association.
- Déclencheur : saisie d'une entrée (montant, date, libellé).
- Résultat observable : l'entrée est enregistrée et visible dans l'historique des entrées.
- Échec / récupération : si le montant ou la date est invalide, l'enregistrement est refusé avec un message explicite ; l'utilisateur corrige puis réenregistre.
- Continuation : l'entrée augmente le solde de caisse calculé automatiquement.
FR-07 — Saisir les sorties d'argent (explicit)
As a Gestionnaire de l'association (Trésorier / Secrétaire), I should saisir les sorties d'argent et les dépenses de caisse, afin d'enregistrer les dépenses de l'association.
- Déclencheur : saisie d'une dépense (montant, date, libellé).
- Résultat observable : la dépense est enregistrée et visible dans l'historique des dépenses.
- Échec / récupération : si le montant ou la date est invalide, l'enregistrement est refusé avec un message explicite ; l'utilisateur corrige puis réenregistre.
- Continuation : la dépense diminue le solde de caisse calculé automatiquement.
FR-08 — Calculer automatiquement le solde (explicit)
As a Gestionnaire de l'association (Trésorier / Secrétaire), I should consulter le solde de caisse calculé automatiquement, afin de connaître la situation financière de l'association à tout moment.
- Déclencheur : consultation de la fonction Caisse / solde.
- Résultat observable : le solde est calculé automatiquement à partir des entrées et des sorties et affiché.
- Échec / récupération : si une incohérence est détectée entre le solde et les mouvements, elle est signalée ; l'utilisateur vérifie les mouvements saisis.
- Continuation : le solde alimente le tableau de bord et les rapports.
FR-09 — Rechercher un membre (explicit)
As a Gestionnaire de l'association (Trésorier / Secrétaire), I should rechercher un membre, afin de retrouver rapidement sa fiche.
- Déclencheur : saisie d'un critère de recherche.
- Résultat observable : la fiche du membre correspondant est affichée.
- Échec / récupération : si aucun membre ne correspond, un message explicite est affiché ; l'utilisateur modifie le critère de recherche.
- Continuation : l'utilisateur consulte la fiche trouvée ou enregistre une cotisation pour ce membre.
FR-10 — Produire un rapport mensuel (explicit)
As a Gestionnaire de l'association (Trésorier / Secrétaire), I should générer et consulter un rapport mensuel, afin de rendre compte de l'activité du mois.
- Déclencheur : sélection d'un mois et génération du rapport.
- Résultat observable : le rapport mensuel est généré et affiché.
- Échec / récupération : si aucun mois n'est sélectionné, un message explicite est affiché ; l'utilisateur sélectionne un mois. Si aucun mouvement n'existe pour le mois, un rapport vide explicite est affiché.
- Continuation : le rapport peut être imprimé.
FR-11 — Produire un rapport annuel (explicit)
As a Gestionnaire de l'association (Trésorier / Secrétaire), I should générer et consulter un rapport annuel, afin de rendre compte de l'activité de l'année.
- Déclencheur : sélection d'une année et génération du rapport.
- Résultat observable : le rapport annuel est généré et affiché.
- Échec / récupération : si aucune année n'est sélectionnée, un message explicite est affiché ; l'utilisateur sélectionne une année. Si aucun mouvement n'existe pour l'année, un rapport vide explicite est affiché.
- Continuation : le rapport peut être imprimé.
FR-12 — Disposer d'un tableau de bord (explicit)
As a Gestionnaire de l'association (Trésorier / Secrétaire), I should disposer d'un tableau de bord de pilotage, afin de suivre les indicateurs clés et d'accéder aux fonctions de gestion.
- Déclencheur : accès au tableau de bord.
- Résultat observable : le solde de caisse courant, le nombre de membres, les cotisations du mois et le nombre de mouvements du mois sont affichés.
- Échec / récupération : si les données sont indisponibles, un signalement est affiché ; l'utilisateur recalcule ou rouvre le classeur.
- Continuation : l'utilisateur accède à une fonction de gestion depuis le tableau de bord.
FR-13 — Imprimer les rapports (explicit)
As a Gestionnaire de l'association (Trésorier / Secrétaire), I should imprimer les rapports mensuels et annuels générés, afin de diffuser les comptes rendus.
- Déclencheur : sélection d'un rapport généré et lancement de l'impression.
- Résultat observable : le rapport est imprimé.
- Échec / récupération : si l'imprimante est indisponible, un message explicite est affiché ; l'utilisateur relance l'impression.
- Continuation : le rapport imprimé peut être transmis aux Commissaires aux comptes.
FR-14 — Appliquer deux niveaux de contrôle pour les Commissaires aux comptes (explicit)
As a Commissaire aux comptes, I should disposer de deux niveaux de contrôle, afin de vérifier les enregistrements de cotisations, les mouvements de caisse et les soldes calculés, puis de valider ou rejeter les opérations selon le niveau de contrôle applicable.
- Déclencheur : accès à la fonction de contrôle des comptes.
- Résultat observable : les opérations contrôlées portent un état de validation ou de rejet selon le niveau de contrôle appliqué.
- Échec / récupération : si le niveau de contrôle n'est pas applicable à l'opération, un message explicite est affiché ; le Commissaire réexamine l'opération.
- Continuation : les comptes contrôlés sont fiabilisés avant la clôture des rapports.
FR-15 — Disposer de boutons d'action (explicit)
As a Gestionnaire de l'association (Trésorier / Secrétaire), I should disposer de boutons d'action du type « Nouveau membre », « Enregistrer cotisation », « Nouvelle dépense », « Rapport », etc., afin de lancer les opérations de gestion depuis le classeur.
- Déclencheur : activation d'un bouton d'action.
- Résultat observable : la fonction correspondante est ouverte.
- Échec / récupération : si l'action ne peut pas être exécutée, un message explicite est affiché ; l'utilisateur réessaie.
- Continuation : l'utilisateur complète l'opération ouverte.
FR-16 — Disponibilité du fichier Excel sur l'appareil utilisé (required_inference)
As a Gestionnaire de l'association (Trésorier / Secrétaire), I should disposer du fichier Excel automatisé sur l'appareil utilisé, afin d'exécuter les opérations de gestion.
- Déclencheur : ouverture du classeur sur l'appareil.
- Résultat observable : le classeur est disponible et ses fonctions sont accessibles.
- Échec / récupération : si le classeur n'est pas disponible, l'utilisateur le rétablit sur l'appareil puis le rouvre.
- Continuation : l'utilisateur reprend la gestion.
FR-17 — Préservation des données par les formules, boutons et automatisations (required_inference)
As a Gestionnaire de l'association (Trésorier / Secrétaire), I should que les formules, boutons et automatisations préservent les numéros membres, cotisations, mouvements, soldes et contrôles, afin de pouvoir les consulter et produire des rapports ultérieurement.
- Déclencheur : enregistrement d'une opération ou génération d'un rapport.
- Résultat observable : les numéros membres, cotisations, mouvements, soldes et contrôles restent disponibles pour les consultations et rapports ultérieurs.
- Échec / récupération : si une donnée n'est pas préservée, elle est signalée ; l'utilisateur vérifie et corrige la saisie concernée.
- Continuation : les consultations et rapports ultérieurs s'appuient sur les données préservées.
FR-18 — Disponibilité des deux niveaux de contrôle avant validation (required_inference)
As a Commissaire aux comptes, I should disposer des deux niveaux de contrôle avant la validation des comptes et des rapports, afin de garantir la fiabilité des comptes avant clôture.
- Déclencheur : accès au contrôle des comptes avant validation.
- Résultat observable : les deux niveaux de contrôle sont disponibles pour les opérations à contrôler.
- Échec / récupération : si un niveau de contrôle n'est pas disponible, un signalement est affiché ; le Commissaire réexamine l'opération.
- Continuation : les comptes et rapports sont validés après application des deux niveaux de contrôle.
Page 9 of 22
4. User Personas
Page 10 of 22
Gestionnaire de l'association (Trésorier / Secrétaire)
Contexte produit : c'est l'utilisateur principal qui tient le fichier Excel de la 2ADSB au quotidien. Il connaît les membres de l'association et les mouvements de caisse, mais n'est pas nécessairement informaticien : il attend d'un classeur qu'il se comporte comme un petit logiciel, avec des boutons clairs et des chiffres lisibles.
Objectif principal : tenir la gestion de l'association à jour dans un classeur automatisé fiable — membres, cotisations, caisse, solde — et produire les rapports mensuels et annuels.
Responsabilités acceptées : créer les fiches membres avec numéro automatique ; enregistrer les cotisations ; saisir les entrées et sorties d'argent ; consulter le solde calculé automatiquement ; rechercher un membre ; produire et imprimer les rapports mensuels et annuels ; s'appuyer sur le tableau de bord pour piloter la gestion ; utiliser les boutons d'action (« Nouveau membre », « Enregistrer cotisation », « Nouvelle dépense », « Rapport »).
Entrées et décisions : informations d'identité d'un nouveau membre ; montant et période d'une cotisation ; montant, date et libellé d'une entrée ou d'une dépense ; mois ou année d'un rapport ; critère de recherche d'un membre.
Interactions avec les autres participants : il prépare les données que le Commissaire aux comptes contrôlera ; il transmet les rapports imprimés aux Commissaires aux comptes pour contrôle avant clôture.
Succès observable : les fiches membres portent un numéro automatique ; les cotisations et mouvements sont enregistrés ; le solde est calculé automatiquement et cohérent ; les rapports mensuels et annuels sont générés et imprimés ; le tableau de bord affiche les indicateurs clés.
Ce qui distingue ce rôle : il saisit et produit — c'est lui qui alimente le registre et génère les rapports. Il ne contrôle pas les comptes ; ce travail appartient au Commissaire aux comptes.
Page 11 of 22
Commissaire aux comptes
Contexte produit : c'est le rôle de contrôle de l'association. Il intervient sur le classeur pour vérifier les enregistrements de cotisations, les mouvements de caisse et les soldes calculés, avant la clôture des rapports.
Objectif principal : garantir la fiabilité des comptes de l'association avant clôture des rapports.
Responsabilités acceptées : vérifier les enregistrements de cotisations, les mouvements de caisse et les soldes calculés ; appliquer les deux niveaux de contrôle ; valider ou rejeter les opérations selon le niveau de contrôle applicable.
Entrées et décisions : opérations à contrôler (cotisations, mouvements de caisse, soldes) ; niveau de contrôle applicable ; décision de validation ou de rejet.
Interactions avec les autres participants : il contrôle le travail de saisie du Gestionnaire de l'association ; il s'appuie sur les rapports générés et imprimés par le Gestionnaire pour effectuer son contrôle avant clôture.
Succès observable : les opérations contrôlées portent un état de validation ou de rejet selon le niveau de contrôle appliqué ; les comptes sont fiabilisés avant la clôture des rapports.
Ce qui distingue ce rôle : il contrôle et décide — il ne saisit pas les opérations courantes. Son travail est un travail de vérification à deux niveaux, réservé aux Commissaires aux comptes, et non une saisie de gestion.
Page 12 of 22
5. Core User Flows
Parcours 1 — Créer un nouveau membre avec numéro automatique (Gestionnaire)
- Le Gestionnaire ouvre le classeur Excel automatisé sur l'appareil utilisé (Landing).
- Il accède à la fonction Membres depuis le tableau de bord ou la liste des fonctions.
- Il active le bouton « Nouveau membre » (New Member).
- Il saisit les informations du membre dans le formulaire.
- Il enregistre la fiche : un numéro de membre est attribué automatiquement et affiché.
- Résultat observable : la fiche créée apparaît dans la liste des membres avec son numéro.
- Échec / récupération : si des champs obligatoires manquent, l'enregistrement est refusé et les champs à compléter sont indiqués ; le Gestionnaire corrige puis réenregistre.
- Continuation : il peut rechercher le membre créé ou enregistrer une cotisation pour lui.
Parcours 2 — Rechercher un membre (Gestionnaire)
- Le Gestionnaire accède à la fonction Membres (Members).
- Il saisit un critère de recherche.
- Résultat observable : la fiche du membre correspondant est affichée.
- Échec / récupération : si aucun membre ne correspond, un message explicite est affiché ; il modifie le critère de recherche.
- Continuation : il consulte la fiche trouvée ou enregistre une cotisation pour ce membre.
Page 13 of 22
Parcours 3 — Enregistrer une cotisation (Gestionnaire)
- Le Gestionnaire accède à la fonction Cotisations (Contributions).
- Il sélectionne un membre (par recherche si nécessaire).
- Il saisit le montant et la période de la cotisation.
- Il active le bouton « Enregistrer cotisation ».
- Résultat observable : la cotisation est enregistrée et visible dans l'historique des cotisations ; elle alimente le solde de caisse et les rapports.
- Échec / récupération : si aucun membre n'est sélectionné ou si le montant est invalide, l'enregistrement est refusé avec un message explicite ; il corrige puis réenregistre.
- Continuation : il peut saisir une autre cotisation ou consulter le solde.
Parcours 4 — Saisir une entrée d'argent (Gestionnaire)
- Le Gestionnaire accède à la fonction Entrées (Cash Inflows).
- Il saisit le montant, la date et le libellé de l'entrée.
- Il enregistre l'entrée.
- Résultat observable : l'entrée est enregistrée et visible dans l'historique des entrées ; elle augmente le solde de caisse calculé automatiquement.
- Échec / récupération : si le montant ou la date est invalide, l'enregistrement est refusé avec un message explicite ; il corrige puis réenregistre.
- Continuation : il peut consulter le solde mis à jour.
Parcours 5 — Saisir une dépense (Gestionnaire)
- Le Gestionnaire accède à la fonction Dépenses (Expenses).
- Il saisit le montant, la date et le libellé de la dépense.
- Il active le bouton « Nouvelle dépense ».
- Résultat observable : la dépense est enregistrée et visible dans l'historique des dépenses ; elle diminue le solde de caisse calculé automatiquement.
- Échec / récupération : si le montant ou la date est invalide, l'enregistrement est refusé avec un message explicite ; il corrige puis réenregistre.
- Continuation : il peut consulter le solde mis à jour.
Page 14 of 22
Parcours 6 — Consulter le solde de caisse calculé automatiquement (Gestionnaire)
- Le Gestionnaire accède à la fonction Caisse / solde (Cash Balance).
- Le solde est calculé automatiquement à partir des entrées et des sorties.
- Résultat observable : le solde est affiché et cohérent avec les mouvements ; le détail des mouvements est consultable.
- Échec / récupération : si une incohérence est détectée entre le solde et les mouvements, elle est signalée ; il vérifie les mouvements saisis.
- Continuation : le solde alimente le tableau de bord et les rapports.
Parcours 7 — Piloter la gestion depuis le tableau de bord (Gestionnaire)
- Le Gestionnaire accède au tableau de bord (Dashboard).
- Résultat observable : le solde de caisse courant, le nombre de membres, les cotisations du mois et le nombre de mouvements du mois sont affichés.
- Échec / récupération : si les données sont indisponibles, un signalement est affiché ; il recalcule ou rouvre le classeur.
- Continuation : il accède à une fonction de gestion (Membres, Cotisations, Entrées, Dépenses, Caisse, Rapports, Contrôle) depuis le tableau de bord.
Parcours 8 — Générer et imprimer un rapport mensuel (Gestionnaire)
- Le Gestionnaire accède à la fonction Rapports mensuels (Monthly Reports).
- Il sélectionne le mois.
- Il génère le rapport mensuel.
- Résultat observable : le rapport mensuel est généré et affiché.
- Échec / récupération : si aucun mois n'est sélectionné, un message explicite est affiché ; il sélectionne un mois. Si aucun mouvement n'existe pour le mois, un rapport vide explicite est affiché.
- Il accède à l'impression (Print Reports), prévisualise le rapport et lance l'impression.
- Résultat observable : le rapport est imprimé.
- Échec / récupération : si l'imprimante est indisponible, un message explicite est affiché ; il relance l'impression.
- Continuation : le rapport imprimé peut être transmis aux Commissaires aux comptes pour contrôle.
Page 15 of 22
Parcours 9 — Générer et imprimer un rapport annuel (Gestionnaire)
- Le Gestionnaire accède à la fonction Rapports annuels (Annual Reports).
- Il sélectionne l'année.
- Il génère le rapport annuel.
- Résultat observable : le rapport annuel est généré et affiché.
- Échec / récupération : si aucune année n'est sélectionnée, un message explicite est affiché ; il sélectionne une année. Si aucun mouvement n'existe pour l'année, un rapport vide explicite est affiché.
- Il accède à l'impression (Print Reports), prévisualise le rapport et lance l'impression.
- Résultat observable : le rapport est imprimé.
- Échec / récupération : si l'imprimante est indisponible, un message explicite est affiché ; il relance l'impression.
- Continuation : le rapport imprimé peut être transmis aux Commissaires aux comptes pour contrôle.
Parcours 10 — Contrôler les comptes selon les deux niveaux de contrôle (Commissaire aux comptes)
- Le Commissaire aux comptes accède à la fonction de contrôle des comptes (Audit Control).
- Il examine les enregistrements de cotisations, les mouvements de caisse et les soldes calculés.
- Il applique le premier niveau de contrôle aux opérations concernées.
- Il applique le second niveau de contrôle aux opérations concernées.
- Il valide ou rejette les opérations selon le niveau de contrôle applicable.
- Résultat observable : les opérations contrôlées portent un état de validation ou de rejet selon le niveau de contrôle appliqué ; les comptes sont fiabilisés avant la clôture des rapports.
- Échec / récupération : si le niveau de contrôle n'est pas applicable à l'opération, un message explicite est affiché ; il réexamine l'opération.
- Continuation : les comptes et rapports sont validés après application des deux niveaux de contrôle.
Page 16 of 22
6. Visuals Colors and Theme
Muse : Erik Spiekermann. Direction : infrastructure typographique pour la caisse de la 2ADSB. Le registre émotionnel est celui d'une institution locale sérieuse mais chaleureuse : rigueur comptable, fierté d'appartenance, lisibilité pour des agents qui ne sont pas informaticiens. Le produit doit donner la sensation d'un petit logiciel fiable, pas d'un tableau.
Palette (mode clair)
| Rôle | Valeur | Usage |
|---|
| Background | #F2EDE4 | Fond papier kraft chaud |
| Surface | #FBF8F2 | Surfaces de fiches |
| Text | #1C1A17 | Texte encre |
| Primary | #B23A2E | Rouge signal — sorties d'argent, alertes, bouton d'action principal |
| Accent | #D9A21B | Jaune signal — entrées, validations en attente |
| Muted | #6E6659 | Texte secondaire, libellés atténués |
| Vert signal | #2E6B4F | Compte vérifié, catégorie cotisations |
| Bleu canard | #2A5A73 | Information neutre, catégorie caisse / contrôle |
| Règle | #D8D0C2 | Règles horizontales de 1px séparant les rangées du registre |
Les couleurs-signal n'apparaissent que sur des éléments fonctionnels : pastilles d'état, en-têtes de colonnes, barres de niveau. Jamais de bleu d'interface sur fond blanc ; le bleu canard est un signal, pas une couleur de marque.
Page 17 of 22
Typographie
- Titres : Fira Sans Condensed, 700/800, casse haute pour les titres de section et les en-têtes de colonnes, interlettrage légèrement ouvert (+0.04em) pour les libellés courts.
- Corps : Fira Sans 400/500 ; 600 pour les libellés de formulaire.
- Chiffres : Fira Sans avec
tabular-nums activé partout (montants, numéros de membre, soldes) pour que les colonnes s'alignent comme un registre.
- Échelle : échelle 1.25 modulaire — 14/16/20/25/31/39/49. Titres de page
clamp(28px, 5vw, 44px) ; titres de section clamp(20px, 3vw, 28px) ; corps 16px avec line-height: 1.55 ; libellés de tableau 13px en capitales espacées ; montants en 15px tabular-nums.
Langage de forme
Rectangles à angles vifs, rayons 2px maximum sur les boutons. Règles horizontales de 1px en #D8D0C2 séparant les rangées du registre ; barres de couleur de 4px à gauche des cartes pour coder la catégorie. Pas de coins arrondis généreux, pas d'ombres portées : la hiérarchie vient des règles, des colonnes et des pastilles de couleur.
Mise en page
Grille à 12 colonnes avec gouttière de 24px, marges de 32px sur desktop et 16px sur mobile. Structure de page en trois zones : une barre de navigation latérale fixe à gauche (240px desktop, repliée en barre horizontale scrollable à 375px) qui liste les fonctions du logiciel comme un plan de métro numéroté (01 Membres, 02 Cotisations, 03 Entrées, 04 Dépenses, 05 Caisse, 06 Rapports, 07 Contrôle) ; une zone centrale de travail en colonnes alignées (libellé à gauche, valeur à droite, montants alignés à droite en tabular-nums) ; une bande de statut en bas affichant le solde de caisse courant et le nombre de mouvements du mois. Le tableau de bord se lit comme un tableau d'affichage de gare : grandes valeurs numériques, règles de séparation, aucune carte flottante identique répétée.
Page 18 of 22
Imagerie
Pas de photographie, pas d'illustration décorative. L'imagerie est diagrammatique et générée par les données : pictogrammes linéaires 1.5px pour chaque fonction (un carnet pour les membres, une pièce pour les cotisations, une flèche entrante/sortante pour la caisse, un tampon pour le contrôle), mini-graphes de barres en couleur signal pour l'évolution mensuelle du solde, et une ligne de solde cumulative tracée sur 12 mois. Les icônes sont dessinées sur une grille de 24px avec des angles à 90° et des extrémités carrées, dans le vocabulaire d'un plan de signalétique.
7. Signature Design Concept
Idée : « Le registre de gare » — un écran d'accueil en deux bandes horizontales pleine largeur, sans hero centré.
La page d'accueil (Landing) se compose de deux bandes horizontales pleine largeur :
- Bande d'identification (96px de haut, fond
#1C1A17) : le mot-clé 2ADSB en Fira Sans Condensed 800 capitales, très grand (clamp(56px, 12vw, 148px)), aligné à gauche et débordant légèrement de la grille pour occuper toute la largeur ; à sa droite, en Fira Sans 400 13px capitales espacées, la mention « AMICALE DES AGENTS — DIRECTION RÉGIONALE DES SPORTS DE BOUAFLÉ ».
- Règle de séparation : une bande de couleur ocre
#D9A21B de 8px qui court sur toute la largeur.
Sous cette bande, une grille de trois blocs de couleur pleine hauteur :
- Bloc rouge
#B23A2E : le solde de caisse en chiffres tabulaires blancs (clamp(32px, 6vw, 64px)) avec le libellé « SOLDE DE CAISSE » en 12px capitales.
- Bloc bleu canard
#2A5A73 : le nombre de membres actifs et le total des cotisations du mois.
- Bloc papier
#F2EDE4 : les quatre boutons d'action (« Nouveau membre », « Enregistrer cotisation », « Nouvelle dépense », « Rapport ») en lignes empilées séparées par des règles de 1px, chaque ligne avec un numéro de fonction à gauche et une flèche à droite.
Aucun dégradé, aucune forme flottante, aucun bouton bleu arrondi centré. Cette composition recompose uniquement le contenu, les états et les contrôles acceptés (solde, membres, cotisations, boutons d'action) : elle n'ajoute aucune capacité, page ou destination.
Page 19 of 22
8. Interaction Model & Motion Direction
Interaction Model: Static (direction)
Motion Tempo: restrained
Hero Dimensionality: flat
Landing Hero Motion Brief
- Sujet focal : la composition en deux bandes horizontales de la page d'accueil — le mot-clé « 2ADSB » en Fira Sans Condensed 800 sur fond
#1C1A17, la règle ocre #D9A21B, et les trois blocs de couleur pleine hauteur (solde de caisse, membres/cotisations, boutons d'action).
- Thèse entrée → transformation → résultat : l'utilisateur ouvre le classeur (entrée) ; les chiffres clés — solde de caisse, membres, cotisations du mois — s'affichent en
tabular-nums dans les blocs de couleur (transformation) ; l'utilisateur lit immédiatement la situation de la caisse et accède aux boutons d'action (résultat). Aucune animation de comptage, aucun rebond, aucun défilement parallaxe.
- Vocabulaire de mouvement : mouvement fonctionnel uniquement — transitions d'état de 150ms en ease-out ; les pastilles de statut changent de couleur ; les lignes de registre s'ajoutent avec un surlignage jaune qui s'éteint en 600ms ; les chiffres du solde se mettent à jour sans animation de comptage ; les rapports s'ouvrent en fondu de 200ms. Le seul mouvement continu autorisé est le curseur de sélection de mois dans les rapports.
- Première image composée : la bande d'identification
#1C1A17 avec « 2ADSB » en très grand, la règle ocre de 8px, puis les trois blocs de couleur pleine hauteur alignés sur la grille à 12 colonnes.
- État réduit-mouvement : avec
prefers-reduced-motion, toutes les transitions sont supprimées ; les pastilles de statut changent de couleur instantanément ; les lignes de registre apparaissent sans surlignage animé ; les rapports s'ouvrent sans fondu ; le curseur de sélection de mois reste affiché sans mouvement continu. Les textes lisibles et les contrôles restent entiers et visibles à 375px, 768px et 1280px.
Page 20 of 22
9. Non-Functional Requirements
NFR-01 — Livrable Excel (explicit)
Le produit doit être un véritable fichier Excel automatisé (livrable Excel), et non une application web ou un simple tableau.
- Rationale : contrainte explicite de l'utilisateur.
NFR-02 — Sensation de petit logiciel (explicit)
Le résultat doit ressembler davantage à un petit logiciel de gestion de la 2ADSB dans Excel qu'à un simple tableau.
- Rationale : contrainte explicite de l'utilisateur.
NFR-03 — Deux niveaux de contrôle réservés aux Commissaires aux comptes (explicit)
Le contrôle des comptes comporte deux niveaux, réservés aux Commissaires aux comptes.
- Rationale : contrainte explicite de l'utilisateur.
NFR-04 — Disponibilité sur l'appareil utilisé (required_inference)
Le fichier Excel automatisé doit être disponible sur l'appareil utilisé.
- Rationale : nécessaire pour rendre exécutable un parcours courant accepté, sans ajouter de capacité produit.
NFR-05 — Préservation des données (required_inference)
Les formules, boutons et automatisations doivent préserver les numéros membres, cotisations, mouvements, soldes et contrôles pour les consultations et rapports ultérieurs.
- Rationale : nécessaire pour rendre exécutable un parcours courant accepté, sans ajouter de capacité produit.
NFR-06 — Disponibilité des deux niveaux de contrôle avant validation (required_inference)
Les deux niveaux de contrôle doivent être disponibles pour les Commissaires aux comptes avant la validation des comptes et rapports.
- Rationale : nécessaire pour rendre exécutable un parcours courant accepté, sans ajouter de capacité produit.
NFR-07 — Lisibilité et intégrité des textes et contrôles (direction)
Les textes lisibles et les contrôles restent entiers à chaque viewport : titres, libellés, chiffres et contrôles restent entièrement dans le viewport et leur conteneur à 375px, 768px et 1280px, en s'enroulant ou en s'adaptant (clamp(...) avec sa taille mobile), sans qu'aucun autre élément ne les recouvre. Avec prefers-reduced-motion, les contenus animés s'arrêtent et affichent des éléments entiers.
Page 21 of 22
10. Tech Stack
- Livrable principal : fichier Excel automatisé (
.xlsx / .xlsm) avec formules, boutons d'action et automatisations — contrainte explicite de l'utilisateur.
- Automatisations : macros et formules du classeur pour l'attribution automatique du numéro de membre, le calcul automatique du solde, la génération des rapports mensuels et annuels, et les deux niveaux de contrôle.
- Impression : fonction d'impression du classeur pour les rapports mensuels et annuels.
- Stockage : le classeur lui-même, disponible sur l'appareil utilisé.
- Aucune technologie web, aucun service en ligne, aucune base de données externe ne sont requis par la source.
11. Assumptions and Constraints
Contraintes (source explicite) :
- Le produit doit être un véritable fichier Excel automatisé (livrable Excel), et non une application web ou un simple tableau.
- Le résultat doit ressembler davantage à un petit logiciel de gestion de la 2ADSB dans Excel qu'à un simple tableau.
- Le contrôle des comptes comporte deux niveaux, réservés aux Commissaires aux comptes.
Hypothèses (inférence requise, étroites) :
- Le fichier Excel automatisé est disponible sur l'appareil utilisé.
- Les formules, boutons et automatisations préservent les numéros membres, cotisations, mouvements, soldes et contrôles pour les consultations et rapports ultérieurs.
- Les deux niveaux de contrôle sont disponibles pour les Commissaires aux comptes avant la validation des comptes et rapports.
Précisions :
- L'accès aux surfaces de gestion est ouvert : le classeur est un outil interne de l'association, utilisé sur l'appareil de l'utilisateur. Aucune identité applicative ni authentification n'est requise par la source.
- La distinction entre le Gestionnaire et le Commissaire aux comptes est une distinction de rôle de travail (qui saisit, qui contrôle), et non un contrôle de permission différencié sur un état partagé.
- Aucune fonction future n'est engagée par la source.
Page 22 of 22
12. Glossary
- 2ADSB : Amicale des Agents de la Direction Régionale des Sports de Bouaflé.
- Classeur automatisé : fichier Excel contenant formules, boutons d'action et automatisations, se comportant comme un petit logiciel de gestion.
- Membre : agent de l'association enregistré dans le classeur, identifié par un numéro attribué automatiquement.
- Numéro de membre : identifiant unique attribué automatiquement lors de la création d'une fiche membre.
- Cotisation : versement enregistré pour un membre, avec montant et période.
- Caisse : ensemble des mouvements d'argent de l'association (entrées et sorties).
- Entrée d'argent : mouvement de caisse augmentant le solde (montant, date, libellé).
- Sortie d'argent / dépense : mouvement de caisse diminuant le solde (montant, date, libellé).
- Solde de caisse : résultat calculé automatiquement à partir des entrées et des sorties.
- Rapport mensuel : état des cotisations, entrées, sorties et solde pour un mois sélectionné.
- Rapport annuel : état des cotisations, entrées, sorties et solde pour une année sélectionnée.
- Tableau de bord : vue de pilotage affichant le solde de caisse courant, le nombre de membres, les cotisations du mois et le nombre de mouvements du mois.
- Commissaire aux comptes : rôle de contrôle chargé de vérifier les enregistrements de cotisations, les mouvements de caisse et les soldes calculés, puis de valider ou rejeter les opérations.
- Deux niveaux de contrôle : les deux niveaux de vérification réservés aux Commissaires aux comptes, appliqués avant la validation des comptes et rapports.
No comments yet. Be the first!