Lettre de Mission & Cahier des Charges

Module de Reservation de Terrains - Merkaz Tennis

Confidentiel v1.0

1. Parties

1.1 Le Prestataire

Raison socialeJeremy Bouznah LTD | גרמי בוזנה בע"מ
Numero d'immatriculation517110912
Adresse71 Rue Shahal, Jerusalem, Israel
Telephone058.59.65.171
Emailbouznahjeremy@gmail.com
RepresentantJeremy Bouznah, Gerant

1.2 Le Donneur d'Ordre

Raison socialeVO2 Israel (filiale de VO2 GROUP)
AdresseJaffa St 224, Jerusalem, Israel
Site webhttps://www.vo2-group.com/
Emailjerusalem@vo2-group.com
SecteurServices et conseil en informatique
Maison mereVO2 GROUP (Paris, France) - Fondee en 2011, 700+ consultants, Pure player Salesforce
Chef de projetOuriel OHANA

1.3 Le Client Final

Raison socialeMerkazei HaTenis VeHaHinukh BeIsrael | מרכזי הטניס והחינוך בישראל
ActiviteReseau de centres de tennis et d'education sportive en Israel
Site webhttps://tennis.org.il/
SiegeCarrefour du Village Vert, Ramat HaSharon, Israel
Tel national*6227

2. Objet de la Mission

2.1 Contexte du projet global

Merkaz Tennis migre son CRM actuel ("Center") vers Salesforce et developpe une application mobile (React Native) pour la reservation de terrains. Le projet se decompose en deux phases. La Phase 1, prevue pour septembre 2026, couvre la reservation de terrains et la mise en place du CRM Salesforce. La Phase 2, jusqu'a janvier 2027, couvre l'inscription aux cours, la gestion des entraineurs et l'espace client complet.

2.2 Perimetre de la mission

La presente mission couvre exclusivement la section 2.4.1 du RFP ("Reservation de terrains dans le systeme existant / Experience client pour la reservation en ligne") et comprend la conception et la realisation de :

  • Ecran 1 : Grille Emploi du Temps des terrains (Looze Migrashim) - interface back-office
  • Ecran 2 : Detail d'une reservation (ecran d'ouverture au clic sur une cellule de la grille)
  • Ecran 3 : Affichage public sur ecrans TV (entrees des centres)
  • Ecran 4 : Design de la resolution de conflits (chevauchements de creneaux)

2.3 Exclusions explicites

Sont exclus du perimetre de cette mission :

  • Le developpement / codage Salesforce LWC
  • L'integration et le branchement au backend Salesforce
  • La formation des utilisateurs

3. Conditions d'Execution

3.1 Nature du contrat

La presente mission est un forfait au livrable. Le montant est fixe et defini pour la livraison des livrables decrits a l'article 4. Il n'est pas conditionne au nombre d'heures ou de jours effectivement consommes. La base de 45 heures est une estimation indicative de l'effort necessaire.

3.2 Montant forfaitaire

PosteMontant
Base estimative45 heures (5 jours x 9 heures)
Taux horaire de reference225 NIS HT / heure
Montant forfaitaire HT10 125 NIS
TVA (18%)1 822,50 NIS
Montant forfaitaire TTC11 947,50 NIS

3.3 Modalites de paiement

EcheanceMontantDeclencheur
Acompte50% du montant TTC (5 973,75 NIS)A la signature de la presente lettre de mission
Solde50% du montant TTC (5 973,75 NIS)A la livraison du livrable final valide

3.4 Delai de livraison

  • livraison sous 5 jours ouvres a compter de la date de signature

3.5 Processus de validation

  1. Le Prestataire livre un premier prototype interactif
  2. Le Donneur d'Ordre et/ou le Client Final effectue(nt) leurs retours
  3. Le Prestataire integre les retours et livre une version affinee
  4. 2 allers-retours de modifications sont inclus dans le forfait
  5. Tout aller-retour supplementaire sera facture sur devis

4. Livrables

4.1 Prototype HTML interactif et fonctionnel

Un prototype complet en HTML/CSS/JavaScript comprenant :

  • Les 4 ecrans decrits dans le perimetre (grille, detail, TV, conflits)
  • Drag & drop fonctionnel
  • Navigation interactive (clics, etats, transitions)
  • Code couleur conforme aux exigences du client
  • Auto-scroll temporel sur l'ecran TV
  • Testable dans tout navigateur web sans installation

4.2 Document d'annotations fonctionnelles

Le present cahier des charges (Partie II) faisant partie integrante de cette lettre de mission, detaillant l'ensemble des specifications fonctionnelles, le modele de donnees, et les contraintes techniques.

4.3 Conversion Figma (option)

Sur demande du Donneur d'Ordre, le Prestataire peut fournir une conversion des ecrans au format Figma editable.

PosteMontant
Montant HT1000 NIS
TVA (18%)180 NIS
Montant TTC1180 NIS

Cette option n'est pas incluse dans le forfait de base.

4.4 Stack technique

ElementTechnologie
PrototypageHTML5, CSS3, JavaScript (ES6+)
InteractiviteHTML5 Drag and Drop API, DOM manipulation native
ResponsiveCSS Grid, Flexbox
Compatibilite cibleChrome, Edge, Safari (versions actuelles)
Conversion FigmaVia plugin html.to.design (si option activee)

5. Propriete Intellectuelle et Confidentialite

5.1 Cession des droits

A la livraison finale et au paiement integral du solde, le Prestataire cede au Donneur d'Ordre l'ensemble des droits de propriete intellectuelle sur les livrables produits dans le cadre de cette mission, y compris le droit de reproduction, de modification et d'adaptation.

5.2 Confidentialite (NDA)

Le Prestataire s'engage a :

  • Maintenir la confidentialite de toutes les informations communiquees dans le cadre de cette mission
  • Ne pas divulguer, reproduire ou utiliser les documents du RFP, du transcript de workshop, ou toute autre information relative au projet a des fins autres que l'execution de la presente mission

6. Responsabilite et Garantie

Le Prestataire garantit que les livrables seront conformes aux specifications definies dans le present cahier des charges. En cas de non-conformite constatee lors de la validation, le Prestataire s'engage a corriger les elements concernes dans le cadre des allers-retours prevus a l'article 3.5.

7. Resolution des Litiges et Droit Applicable

ElementDetail
Droit applicableDroit israelien
Resolution amiableEn cas de differend, les parties s'engagent a recourir en premier lieu a une procedure de conciliation devant un Din Torah
JuridictionA defaut de resolution amiable, les tribunaux competents de Tel Aviv seront saisis

8. Signatures

Le PrestataireLe Donneur d'Ordre
NomJeremy Bouznah[A completer]
SocieteJeremy Bouznah LTDVO2 Israel
Date
Signature

9. Contexte Metier

9.1 Presentation de Merkaz Tennis

Merkaz Tennis (ITEC - Israel Tennis Education Centers) exploite 19 centres sportifs en Israel totalisant 215 terrains (tennis, paddle, pickleball, squash, football). L'organisation gere 8 antennes regionales et propose des programmes pour tous ages, des enfants aux seniors.

9.2 Ecosysteme technique existant

SystemeUsage
Center (CRM)CRM interne custom - systeme actuel a remplacer
SAPComptabilite (code SAP = section budgetaire)
SalesforceModule donateurs (existant, a etendre)
Smoove / FlowReachMarketing Automation
Office 365Mail, Sharepoint, stockage fichiers
NotionGestion de plans professionnels
AtanixGestion presence employes
HergelSysteme de paie
Yesh KisuiGestion achats

9.3 Problematiques actuelles

  • CRM "Center" extremement rigide, aucune flexibilite de configuration
  • Modifications mineures necessitant l'intervention du developpeur (delais importants)
  • Ecran d'emploi du temps (Looze) obsolete : pas de header fige, pas d'auto-scroll
  • Ecrans TV dans les centres : gommettes physiques pour identifier les terrains, scroll manuel par les standardistes
  • Absence de dashboard de controle en temps reel
  • Impossibilite de creer des categories sportives de maniere autonome

9.4 Objectifs du nouveau systeme

Fournir un ecran de gestion des terrains moderne dans Salesforce (LWC) qui permette :

  • Une gestion visuelle et intuitive de l'emploi du temps
  • Le respect du code couleur existant (20 ans d'habitudes)
  • Une flexibilite totale dans la configuration (centres, categories, terrains)
  • Un affichage public professionnel sur les ecrans TV des centres
  • Des indicateurs de performance en temps reel (taux d'occupation)

10. Ecran 1 : Grille Emploi du Temps (Looze Migrashim)

Cet ecran est le composant central du module de gestion des terrains. Il est utilise quotidiennement par les standardistes de chaque centre pour gerer les reservations, et par la direction pour le suivi global.

Reference visuelle - Systeme actuel :

(Capture d'ecran du RFP page 25 : grille avec colonnes numerotees 1 a 25+, lignes horaires de 7:00 a 8:30, cellules colorees par type de reservation. En haut : filtres par centre, boutons de categories sportives avec codes couleur. A gauche : labels des categories en hebreu avec fonds de couleur correspondants)

Systeme actuel - Grille Looze Migrashim

Systeme actuel - Grille Looze Migrashim (Planning des terrains)

10.1 Barre de navigation et filtres

10.1.1 Picklist de selection du centre

  • Type : Liste deroulante (dropdown)
  • Contenu : Liste de tous les centres Merkaz Tennis
  • Comportement selon le role :
    • Standardiste / employe de centre : picklist verrouillee sur son propre centre (pas de choix)
    • Manager de centre : picklist verrouillee sur son propre centre + possibilite de consulter d'autres centres en lecture seule
    • Direction / Mate : acces a tous les centres
    • Super User : acces a tous les centres avec droits de modification
  • Valeur par defaut : le centre de l'utilisateur connecte

10.1.2 Multi-boutons de filtrage par categorie sportive

  • Type : Boutons multi-selection (plusieurs peuvent etre actifs simultanement)
  • Style : Boutons avec la couleur de fond correspondant a la categorie
  • Categories actuelles a valider par le client :
CategorieCouleur de fondCode hex (a confirmer)
Tennis[a definir][a definir]
Paddle[a definir][a definir]
Squash[a definir][a definir]
Pickleball[a definir][a definir]
Football[a definir][a definir]
Fitness / Salle[a definir][a definir]
Studio[a definir][a definir]

[A VALIDER] : Liste definitive des categories sportives par centre. Chaque centre peut avoir un sous-ensemble different de categories.

  • Comportement : Au clic, filtre les colonnes de la grille pour n'afficher que les terrains de la/des categorie(s) selectionnee(s)
  • Etat par defaut : Toutes les categories du centre sont affichees

10.1.3 Navigation temporelle

  • Selecteur de date : Calendrier avec la date du jour selectionnee par defaut
  • Boutons de navigation : Jour precedent / Jour suivant
  • Vue : Vue journaliere (une journee a la fois)

10.2 Structure de la grille

10.2.1 Colonnes = Terrains

  • Chaque colonne represente un terrain physique du centre
  • Header de colonne : Numero du terrain + categorie sportive
  • Numerotation : Par categorie (Tennis 1, Tennis 2, ... Paddle 1, Paddle 2, ...)
  • Tri : Groupes par categorie sportive
  • Couleur de fond du header : Couleur de la categorie du terrain

10.2.2 Lignes = Creneaux horaires

  • Intervalle : 30 minutes
  • Plage horaire : Selon les heures d'ouverture du centre selectionne (ex: 6:00 - 23:00)
  • Duree minimale de reservation : 1 heure
  • Durees possibles : 1h, 1h30, 2h (configurable par categorie sportive)

10.2.3 Header fige (sticky)

  • OBLIGATOIRE : Le header avec les numeros de terrain reste visible en permanence lors du scroll vertical
  • C'est un point douloureux majeur du systeme actuel (le header disparait au scroll, les centres ont mis des gommettes sur la TV)

10.2.4 Auto-scroll vers l'heure actuelle

  • OBLIGATOIRE : A l'ouverture de l'ecran, la grille scrolle automatiquement pour afficher l'heure actuelle en haut de la zone visible
  • Le systeme actuel ne le fait pas : les standardistes doivent scroller manuellement toutes les 2 heures

10.3 Code couleur obligatoire des cellules

Le code couleur est un element critique. Le personnel travaille avec ces couleurs depuis 20 ans. Elles doivent etre respectees imperativement.

CouleurCodeType de reservationInformations affichees dans la cellule
Vert clair (רקע ירוק בהיר) ~#A5D6A7 (approximatif, a confirmer) Promotion / reduction active sur le terrain Nom du client, horaire, indication promo
Vert (ירוק) ~#4CAF50 (approximatif, a confirmer) Cours / entrainement adultes-seniors (Gil Chichimi) Nom du cours, nom du prof
Bleu (כחול) ~#42A5F5 (approximatif, a confirmer) Groupes enfants et communaute (Keita/Kehila) Nom du groupe, tranche d'age
Gris (אפור) ~#BDBDBD (approximatif, a confirmer) Reservation de terrain standard Nom du client, horaire
Jaune (צהוב) ~#FFF176 (approximatif, a confirmer) Terrain bloque / Migrash Hassoum (travaux, evenement, anniversaire, Maccabiah) Motif du blocage
Mauve/violet clair (אפור כהה) ~#CE93D8 (approximatif, a confirmer) Entrainement personnel / Imoun Ishi Nom de l'entraineur + Nom du client

[A VALIDER] : Les codes hexadecimaux exacts de chaque couleur. Extraire des captures d'ecran du systeme actuel si disponibles.

10.3.1 Icone speciale : Reservation interne (Shiboutz Atzmi)

  • Quand une icone specifique apparait dans une cellule, cela signifie que le terrain a ete reserve en interne (par un employe/prof) et non par un client externe
  • [A DEFINIR] : Icone exacte a utiliser

10.3.2 Jour sans activite (Yom Lelo Peulot)

  • Quand un jour est marque "sans activite" (pas de cours), les terrains restent disponibles a la reservation
  • Le tarif passe automatiquement au tarif soir/weekend
  • Visuellement : indication claire que c'est un jour special

10.4 Contenu des cellules de reservation

Chaque cellule occupee dans la grille affiche :

DonneeObligatoireContextuel
Nom du client / groupeOui-
Horaire (debut - fin)Oui-
Numero de terrainNon (implicite par la colonne)-
Type de reservation (couleur)Oui (via couleur de fond)-
Nom de l'entraineur-Si cours ou entrainement personnel
Icone shiboutz atzmi-Si reservation interne
Indication promo-Si promotion active
Motif de blocage-Si terrain bloque (jaune)

10.5 Fonctionnalites interactives

10.5.1 Drag & drop

  • Deplacer une reservation : L'utilisateur peut glisser une cellule de reservation d'un creneau/terrain vers un autre creneau/terrain
  • Verification automatique : Le systeme verifie la disponibilite du creneau cible avant d'accepter le deplacement
  • Annulation : Si le creneau cible est occupe, la cellule revient a sa position d'origine et un message d'erreur s'affiche
  • Restrictions : Le drag & drop respecte les permissions de l'utilisateur (un standardiste ne peut pas deplacer des reservations d'un autre centre)

10.5.2 Clic sur un creneau vide = Creation rapide

  • Un clic sur un creneau vide ouvre l'ecran 2 (Detail de reservation) avec les champs pre-remplis :
    • Terrain : celui de la colonne cliquee
    • Horaire : celui de la ligne cliquee
    • Duree : par defaut 1h (modifiable)

10.5.3 Reservations repetitives (recurrence)

  • Possibilite de creer une reservation recurrente : "Tous les lundis a 10h sur le terrain 5"
  • Interface : Checkbox "Recurrence" + selection des jours + date de fin
  • La recurrence cree automatiquement les creneaux sur la periode definie

[A VALIDER] : Dans le systeme actuel, la recurrence hebdomadaire est reservee aux abonnes uniquement (checkbox 'למנויים: הקצאה כסדרה שבועית'). Cette restriction doit-elle etre maintenue dans le nouveau systeme ?

10.5.4 Bouton de reservation directe

  • Un bouton "Reserver" accessible sans passer par le Looze (comme dans Google Calendar)
  • Ouvre le meme ecran de detail (Ecran 2) mais sans champs pre-remplis
  • L'utilisateur selectionne manuellement le centre, le terrain, la date, l'horaire

10.5.5 Gestion visuelle des conflits

  • Si deux reservations se chevauchent sur le meme terrain, la grille affiche un indicateur visuel de conflit (voir Ecran 4)

10.6 Lien vers Dashboard d'occupation

  • Bouton en bas ou dans le header de la grille : "Taux d'occupation"
  • Action : Ouvre le report Salesforce standard (hors scope de ce design) montrant le pourcentage de terrains reserves en temps reel sur la journee
  • Seul le bouton/lien est dans le scope ; le contenu du dashboard est hors perimetre

11. Ecran 2 : Detail d'une Reservation (Clic sur cellule)

Cet ecran s'ouvre en modal / side panel quand l'utilisateur clique sur une cellule de la grille (occupee ou vide).

Reference visuelle - Systeme actuel :

(Capture du RFP page 25 : formulaire "Hashkarat Migrash Tennis" avec champs Nom, Date debut, Heure, Duree, Type (Imoun Ishi), zone Commentaires, boutons Ajouter/Annuler)

Systeme actuel - Formulaire de reservation back-office

Systeme actuel - Formulaire de reservation back-office (CRM Center)

11.1 Mode "Creneau vide" (Nouvelle reservation)

11.1.1 Champs pre-remplis (depuis la grille)

ChampSourceModifiable
CentrePicklist de la grilleNon
TerrainColonne cliqueeOui (dropdown)
DateDate affichee dans la grilleOui (datepicker)
Heure de debutLigne cliqueeOui (timepicker)
Duree1h par defautOui (1h / 1h30 / 2h)

[A VALIDER] : Le formulaire actuel permet la reservation de plusieurs terrains simultanement (champ 'מגרש/ים להשכרה'). Cette fonctionnalite doit-elle etre conservee dans le nouveau systeme ?

11.1.2 Recherche et selection du client

  • Champ de recherche : Recherche par nom, prenom, telephone ou email
  • Resultats : Liste des comptes Salesforce correspondants
  • Selection : Clic sur un resultat remplit automatiquement les informations client

11.1.3 Creation rapide d'un nouveau client

Si le client n'existe pas dans le systeme :

Mode Guest (rapide) :

ChampObligatoire
PrenomOui
NomOui
TelephoneOui
EmailNon

Mode Complet :

ChampObligatoire
PrenomOui
NomOui
Teudat Zehout (ID)Oui
Date de naissanceOui
GenreOui
TelephoneOui
EmailOui
AdresseNon
  • Le mode Guest cree un compte minimal dans Salesforce
  • Le mode Complet cree un compte standard

11.1.4 Type de reservation

  • Dropdown : Reservation standard / Entrainement personnel / Blocage terrain / Cours collectif
  • Le choix influence la couleur de la cellule dans la grille

11.1.5 Zone commentaires

  • Champ texte libre pour notes internes

11.1.6 Bouton de validation

  • "Reserver" : Cree la reservation et l'affiche dans la grille
  • "Reserver et Payer" : Cree la reservation et enchaine vers le paiement

11.1.7 Enchainement vers le paiement

[EN SUSPENS] : L'ecran de paiement PelCard (via iframe) est-il dans le scope de cette mission ?

  • Si oui : designer le flux de paiement integre
  • Si non : le bouton "Payer" renvoie vers le module de paiement existant
  • A confirmer avec VO2 / Merkaz Tennis

11.2 Mode "Creneau occupe" (Consultation/Modification)

Quand l'utilisateur clique sur une cellule deja occupee :

11.2.1 Informations affichees

DonneeAffichage
Nom du clientTexte + lien vers la fiche Salesforce
TelephoneTexte
TerrainNumero + categorie
DateJJ/MM/AAAA
HoraireHH:MM - HH:MM
DureeXh
TypeCouleur + label
CommentairesTexte
Reserve parNom de l'agent + date/heure de creation

11.2.2 Actions disponibles

  • Modifier : Ouvre le formulaire en mode edition
  • Annuler la reservation : Avec confirmation ("Etes-vous sur ?")
  • Deplacer : Ouvre un selecteur de creneau alternatif
HORS SCOPE

Contexte : Wizard de reservation client actuel

Etape 1 - Wizard reservation

Etape 1 - Choix du centre, type, jour, heure, duree

Etape 2 - Wizard reservation

Etape 2 - Selection du terrain + carte du centre

Etape 3 - Wizard reservation

Etape 3 - Paiement avec timer + VIP

12. Ecran 3 : Affichage Public TV (Entrees des centres)

Cet ecran est affiche en permanence sur les ecrans geants a l'entree de chaque centre. Les clients qui arrivent pour jouer consultent cet ecran pour connaitre leur numero de terrain.

12.1 Objectif et contexte

  • Utilisateurs : Clients physiquement presents dans le centre
  • Interaction : Aucune (lecture seule, pas de souris/clavier)
  • Taille d'ecran : Grands ecrans TV (42" a 65")
  • Distance de lecture : 2 a 5 metres
  • Priorite : Lisibilite maximale, design epure, style "ecran d'information" (reference : ecrans des restaurants fast-food, ecrans d'aeroport)

12.2 Contenu affiche

L'ecran affiche les reservations en cours et a venir (fenetre glissante de 2 a 3 heures).

12.2.1 Par type de reservation

TypeInformations afficheesCouleur
Reservation standardNom, Prenom, Numero de terrainGris
Cours collectif (Keita)Nom du professeur, Numero de terrainBleu
Cours particulier (Imoun Ishi)Nom du coach + Nom du client, Numero de terrainMauve
Terrain bloque"Terrain indisponible", Numero de terrainJaune
Promotion activeNom, Prenom, Numero de terrain, Badge "Promo"Vert clair

12.2.2 Donnees NON affichees sur l'ecran TV

  • Pas de liste d'eleves des groupes
  • Pas d'ages
  • Pas de commentaires internes
  • Pas de details financiers

12.3 Auto-scroll temporel

  • OBLIGATOIRE : L'ecran defile automatiquement pour que l'heure actuelle soit toujours visible
  • Fenetre : Affiche les 2-3 prochaines heures de reservations
  • Frequence de rafraichissement : Toutes les 60 secondes (minimum) pour refleter les nouvelles reservations

12.4 Design

  • Police : Grande, lisible a distance (minimum 24pt equivalent) - a definir police exact a fournir par le client
  • Contraste : Fort (fond sombre, texte clair OU fond clair, texte sombre - a tester)
  • Organisation : Par categorie sportive (liserets colores) puis par terrain
  • Pas de header complexe : Juste le nom du centre + l'heure actuelle
  • Mode plein ecran : S'ouvre en mode fullscreen dans le navigateur

12.5 Elements en suspens pour l'ecran TV

[A VALIDER] : Design exact souhaite par le client (style McDo ? Style aeroport ? Style tableau des scores ?)

[A VALIDER] : Faut-il afficher les creneaux vides (terrains disponibles) ou seulement les creneaux occupes ?

[A VALIDER] : Filtrage par categorie sportive sur l'ecran TV ou affichage de toutes les categories ?

[A VALIDER] : Affichage du nom complet ou seulement initiales/prenom pour la confidentialite ?

13. Ecran 4 : Resolution de Conflits (Chevauchements)

13.1 Detection visuelle

Quand deux reservations se chevauchent sur le meme terrain et le meme creneau :

  • Les cellules en conflit sont encadrees en rouge vif
  • Une icone d'alerte (triangle avec exclamation) apparait
  • Un compteur de conflits s'affiche dans le header de la grille

13.2 Modal de resolution

Au clic sur une cellule en conflit, une modal specifique s'ouvre avec :

InformationAffichage
Reservation ANom client, horaire, type, date de creation
Reservation BNom client, horaire, type, date de creation
Terrain concerneNumero + categorie
Type de conflitChevauchement total / partiel

13.3 Options de resolution

  • Deplacer la reservation A : Ouvre un selecteur de creneau alternatif pour A
  • Deplacer la reservation B : Ouvre un selecteur de creneau alternatif pour B
  • Annuler la reservation A : Supprime A (avec confirmation)
  • Annuler la reservation B : Supprime B (avec confirmation)
  • Forcer (conserver les deux) : Maintient le conflit (utilisateur averti, decision volontaire, necessite un profil avec permission)

[A VALIDER] : Y a-t-il une regle de priorite automatique ? (ex: premier arrive premier servi, cours collectif prioritaire sur individuel, etc.)

14. Modele de Donnees

14.1 Entite : Centre (Merkaz)

ChampTypeObligatoireDescription
IDAutoOuiIdentifiant unique
NomTexteOuiNom du centre (ex: Jerusalem, Haifa, Ramat HaSharon)
VilleTexteOuiVille
AdresseTexteNonAdresse complete
TelephoneTexteNonNumero de contact
Heure d'ouvertureHeureOuiHeure de debut d'activite
Heure de fermetureHeureOuiHeure de fin d'activite
StatutPicklistOuiOuvert / Ferme / Restreint
GPS LatitudeNombreNonPour geolocalisation
GPS LongitudeNombreNonPour geolocalisation

14.2 Entite : Categorie Sportive

ChampTypeObligatoireDescription
IDAutoOuiIdentifiant unique
NomTexteOuiTennis, Paddle, Squash, Pickleball, Football, Studio, Fitness
CouleurHexOuiCode couleur d'affichage
IconeImage/SVGNonIcone representative
ActifBooleanOuiCategorie active dans le systeme

14.3 Entite : Terrain (Migrash)

ChampTypeObligatoireDescription
IDAutoOuiIdentifiant unique (API Name)
Numero d'affichageTexteOuiNumero visible (ex: "Paddle 1", "Tennis 3")
CentreLookupOuiReference vers le Centre
CategorieLookupOuiReference vers la Categorie Sportive
Heure d'ouvertureHeureNonOverride des heures du centre
Heure de fermetureHeureNonOverride des heures du centre
StatutPicklistOuiActif / En maintenance / Ferme
CouvertBooleanNonTerrain couvert ou decouvert
EclairageBooleanNonTerrain eclaire (pour jeu en soiree)

14.4 Entite : Reservation (Hazmana)

ChampTypeObligatoireDescription
IDAutoOuiIdentifiant unique
TerrainLookupOuiReference vers le Terrain
ClientLookupOuiReference vers le Compte client
DateDateOuiDate de la reservation
Heure de debutHeureOuiHeure de debut
Heure de finHeureOuiHeure de fin
Duree (minutes)NombreOui60, 90 ou 120
TypePicklistOuiStandard / Entrainement personnel / Blocage / Cours collectif / Promotion
StatutPicklistOuiConfirmee / En attente / Annulee / En cours
EntraineurLookupNonReference vers le Coach (si applicable)
Shiboutz AtzmiBooleanNonTrue si reservation interne
CommentairesTexte longNonNotes
Cree parUtilisateurOuiAgent qui a cree la reservation
Date de creationDateTimeOuiHorodatage
RecurrenceLookupNonReference vers une regle de recurrence
MontantDeviseNonMontant facture
Methode de paiementPicklistNonCB / Cartisia / Manoui / Cash / Aucun

14.5 Entite : Regle de Blocage (Chissima)

ChampTypeObligatoireDescription
IDAutoOuiIdentifiant unique
NiveauPicklistOuiOrganisation / Centre / Categorie / Terrain
CentreLookupConditionnelSi niveau Centre ou inferieur
CategorieLookupConditionnelSi niveau Categorie ou Terrain
TerrainLookupConditionnelSi niveau Terrain
Date de debutDateTimeOuiDebut du blocage
Date de finDateTimeOuiFin du blocage (retour automatique a la normale)
MotifTexteOuiRaison du blocage
Impact reservationsBooleanOuiBloque aussi les reservations existantes ?
Impact coursBooleanOuiAnnule aussi les cours programmes ?
Tarif specialLookupNonTarif derogatoire pendant le blocage
Cree parUtilisateurOuiQui a cree la regle
StatutPicklistOuiActive / Expiree / Annulee

14.6 Entite : Client (Lakhoah)

ChampTypeObligatoireDescription
IDAutoOuiIdentifiant Salesforce
PrenomTexteOui
NomTexteOui
Teudat ZehoutTexteNon (Guest) / Oui (Complet)Numero ID israelien
Date de naissanceDateNon
GenrePicklistNonHomme / Femme
TelephoneTexteOui
EmailTexteNon (Guest) / Oui (Complet)
Centre de referenceLookupNonCentre habituel
TypePicklistOuiGuest / Standard / Abonne / VIP
Solde Arnak (Wallet)DeviseNonSolde du porte-monnaie numerique

14.7 Schema relationnel (vue simplifiee)

Centre
ID, Nom, Ville, Horaires, Statut
Categorie Sportive
ID, Nom, Couleur, Icone
Terrain
ID, Numero, Centre, Categorie, Statut
Reservation
ID, Terrain, Client, Date, Horaires, Type
Client
ID, Nom, Prenom, Tel, Type
Entraineur
ID, Nom, Specialite
Regle de Blocage
ID, Niveau, Dates, Motif

Centre 1--N Terrain | Centre 1--N Categorie Sportive

Terrain 1--N Reservation | Client 1--N Reservation

Entraineur 1--N Reservation

Centre/Categorie/TerrainRegle de Blocage

15. Contraintes Techniques Salesforce LWC

Le prototype HTML devra etre concu en tenant compte des contraintes suivantes, documentees par Salesforce pour les Lightning Web Components.

15.1 Shadow DOM et CSS

  • Les styles CSS sont confines au composant (Shadow DOM) : impossible de styler un composant enfant depuis un composant parent
  • Le theming doit passer par des CSS Custom Properties (variables CSS)
  • Les selecteurs d'ID ne fonctionnent pas en LWC (les IDs sont transformes en runtime)

15.2 Drag & Drop

  • Pas d'API native de drag & drop dans LWC
  • Implementation requise via l'API HTML5 Drag and Drop (dragstart, dragover, drop)
  • Contrainte critique : les evenements drag ne traversent PAS les frontieres du Shadow DOM

15.3 Performance et volumes

  • Maximum recommande : 1 000 lignes x 5 colonnes pour un datatable standard
  • Pour la grille planning (ex: 20 terrains x 34 creneaux de 30 min = 680 cellules) : dans les limites acceptables
  • Si plus de 25 terrains : envisager la pagination par categorie sportive ou le lazy loading
  • Pas de composant standard datatable avec fusion de cellules : le composant grille devra utiliser du positionnement CSS absolu pour les blocs de reservation

15.4 Librairies tierces

  • Upload en Static Resource obligatoire (max 5 MB par fichier)
  • Interdit : eval(), new Function(), injection de <script>
  • React, Vue, Angular : inutilisables dans LWC
  • FullCalendar : v4 compatible avec lwc:dom="manual", v5/v6 incompatibles
  • D3.js, Chart.js : compatibles sous LWS

15.5 Temps reel

  • Mises a jour via Platform Events ou Change Data Capture (lightning/empApi)
  • Latence inherente (near real-time, pas real-time strict)
  • Maximum 2 000 souscripteurs concurrents par organisation

15.6 iframes (pour PelCard)

  • LWS restreint les src a http:// et https://
  • Cross-origin : meme politique que le navigateur
  • Integration PelCard possible via iframe avec postMessage pour la communication

15.7 Calendrier standard Salesforce

  • Limite a 150 evenements : inutilisable pour ce cas d'usage
  • Composant custom obligatoire pour la grille de planning

16. Elements en Suspens (A Confirmer)

Les elements suivants necessitent une validation de VO2 et/ou du client final Merkaz Tennis avant la finalisation des maquettes :

#ElementQuestionImpact
1Ecran TV publicDesign exact souhaite (style McDo, aeroport, tableau des scores ?)Design ecran 3
2Ecran TV publicAfficher les creneaux vides ou seulement les occupes ?Contenu ecran 3
3Ecran TV publicNom complet ou initiales pour confidentialite ?Donnees ecran 3
4Paiement PelCardL'ecran de paiement est-il dans le scope de cette mission ?Ecran 2 - flow post-reservation
5Codes couleur hexCodes hexadecimaux exacts des couleurs actuellesEcrans 1, 2, 3
6Categories sportListe definitive des categories par centreEcran 1 - filtres
7Icone Shiboutz AtzmiIcone exacte a utiliser pour les reservations internesEcran 1 - cellules
8Regle de priorite conflitsY a-t-il une hierarchie automatique pour resoudre les conflits ?Ecran 4
9Permissions par roleMatrice detaillee des droits par role utilisateurTous les ecrans
10Durees par categorieQuelles durees sont disponibles pour chaque sport ?Ecran 2

17. Glossaire

Terme hebreuTranscriptionTraduction / Signification
לוח מגרשיםLooze MigrashimEmploi du temps / Planning des terrains
מגרשMigrashTerrain
מרכזMerkazCentre
השכרהHashkaraLocation / Reservation
שיבוץ עצמיShiboutz AtzmiAssignation interne (reservation par un employe)
מגרש חסוםMigrash HassoumTerrain bloque
אימון אישיImoun IshiEntrainement personnel
קהילהKehilaCommunaute
קייטהKeitaProgramme / Camp pour enfants
כרטיסייהCartisiaCarte multi-reservations
מנויManouiAbonne / Abonnement
ארנקArnakPorte-monnaie / Wallet
תעריףTaarifTarif
הקפאהHakpaaGel (suspension d'un compte/abonnement)
ביטולBittoulAnnulation
גיל שלישיGil Chichimi3eme age / Seniors
מתאמןMitamenSportif / Personne qui s'entraine
מאמןMeamenEntraineur / Coach
יום ללא פעילותYom Lelo PeulotJour sans activite (fermeture partielle)
חסימהHassimaBlocage
דין תורהDin TorahProcedure de conciliation rabbinique