8/8 pages
Sample report
Fictitious application built for the demonstration: no real data. Your report will follow the same structure.
What breaks in your app
Riad Dar Zitoun
riad-connect-hub.lovable.app
Summary report
Decision
Technical detail
La recherche de disponibilités et ses bornes, la connexion, l'affichage des réservations et les contrôles de saisie de la page de réservation se comportent comme attendu (CN-1, CL-1 à CL-8, CS-2, CL-20 à CL-23). En revanche, le parcours de l'argent n'est pas démontré de bout en bout : le paiement de l'acompte n'a jamais pu être joué (CN-2, I1), le calcul RIAD10 reste non confirmé (CS-20, I3) et la gérante ne retrouve pas dans la Gestion les réservations confirmées du voyageur, défaut reproduit (C01, I4). La mise en service n'est envisageable qu'une fois ces points démontrés ou corrigés et les
The test of riad-connect-hub.lovable.app found 21 issues, 4 of them critical or major (S1, S2), which come down to 12 fixes. Fix first: Business journey fails, then Sign-in pages can be framed by another site (clickjacking), then Form fields without a label.
Key figures
Fix first
- #1MajorBusiness journey fails — /admin
Customers cannot complete a revenue journey: lost bookings until it is fixed. - #2MajorSign-in pages can be framed by another site (clickjacking) — /auth
A third-party site can hijack clicks on the sign-in page: customer accounts exposed and trust lost. - #3MinorSecurity headers missing — /
- #4NoteSecurity headers missing — /
- #5MajorForm fields without a label — /admin
Some visitors (keyboard users, visually impaired) cannot finish: these are lost bookings, and accessibility is becoming a legal duty in several markets.
Next steps
- Fix the 5 "fix first" points, in order.
- Apply the 6 grouped fixes: each one settles several findings at once.
- Then handle the remaining minor findings, section by section.
- Run a new Avalyz test to verify the fixes.
Detailed report
Our understanding of the business (to be validated)
Client clarifications taken into account (round 2)
- Business model: Le code promo RIAD10 donne -10 % sur l hebergement seulement ; la taxe de sejour (30 MAD par adulte et par nuit) n est jamais remisee ; l acompte de 30 % porte sur le total remise, taxe comprise.
- Organisation and profiles: La gerante est la seule administratrice : elle gere le calendrier des reservations, les dates bloquees, les chambres et les prix, et lit les messages de contact. Le voyageur connecte voit ses reservations dans Mes reservations.
User stories added
- En tant que voyageur connecte, je veux reserver la chambre Majorelle 2 nuits pour 2 adultes avec le code RIAD10, afin de payer un acompte calcule sur le total remise.
- En tant que gerante, je veux retrouver dans mon tableau de bord la reservation que le voyageur vient de faire, afin de preparer son arrivee.
Concept
Riad Dar Zitoun vend en direct des nuitées dans ses 5 chambres de la Médina de Marrakech à des voyageurs, réservées en ligne avec un acompte de 30 % payé en ligne. Promesse : un riad paisible au cœur de la Médina, des prix clairs par nuit et une annulation possible jusqu'à 48 h avant l'arrivée.
Target customers: Voyageurs (couples, familles, petits groupes jusqu'à 4 personnes par chambre) visitant Marrakech ; site FR avec bascule EN.
Value chain
- AttirerVIS-01, VIS-05, VIS-06
- ConvertirVIS-02, VIS-03, CLI-01, CLI-02
- EncaisserCLI-03
- Délivrer le séjourCLI-04, ADM-01, ADM-02, ADM-03, ADM-04
- Servir et fidéliserCLI-05, CLI-06, VIS-04, ADM-05
Business model
| Customer segments | Voyageurs, couples et petites familles (jusqu'à 4 personnes) visitant Marrakech, francophones et anglophones. |
|---|---|
| Value proposition | Riad paisible au cœur de la Médina, 5 chambres de 750 à 1 800 MAD, annulation jusqu'à 48 h. |
| Channels | Site web direct FR/EN : recherche de disponibilités, réservation en ligne, Mes réservations, contact, téléphone, e-mail. |
| Revenue streams | Nuitées vendues par chambre, acompte 30 % en ligne (simulé), taxe de séjour 30 MAD/adulte/nuit. |
Organisation
- riad-connect-hub.lovable.app
- Espace public (accueil, disponibilités, avis, FAQ, contact)
- Visiteur VIS ★
- Espace voyageur « Mes réservations »
- Client voyageur connecté CLI ★
- Gestion (administration de la gérante)
- Gérante (seule administratrice) ADM ★
- Espace public (accueil, disponibilités, avis, FAQ, contact)
Functions
| Function (profile) | Mission | Main responsibilities | Used for testing |
|---|---|---|---|
| Visiteur VIS | Découvrir le riad et vérifier les disponibilités avant de réserver. |
| ★ yes |
| Client voyageur connecté CLI | Réserver et suivre son séjour au riad en payant l'acompte en ligne. |
| ★ yes |
| Gérante (seule administratrice) ADM | Piloter les réservations, l'offre de chambres et l'accueil des voyageurs. |
| ★ yes |
Domains
Business
- Découverte de l'offre et disponibilités VIS-01, VIS-02, VIS-06
- Réservation et suivi des séjours CLI-02, CLI-04, CLI-05, ADM-01
- Gestion de l'offre (chambres, prix, calendrier, dates bloquées) ADM-02, ADM-03, ADM-04
Support
- Paiement de l'acompte CLI-03
- Comptes et accès VIS-03, CLI-01
- Relation client (avis, contact, FAQ) VIS-04, VIS-05, CLI-06, ADM-05
Map of macro-processes and processes
| Macro-process | Process | Profile | Outcomes | Coverage |
|---|---|---|---|---|
| Faire découvrir le riad Business · Découverte de l'offre et disponibilités | VIS-01 — Consulter les chambres et les prix | VIS | ✓ Chambres, capacités et prix affichés, ✗ Prix ou capacité différents de la description | not tested |
| VIS-02 — Rechercher des disponibilités | VIS | ✓ Chambres libres listées pour les dates, ✗ Date d'arrivée passée refusée, ✗ Départ non postérieur à l'arrivée refusé, ✗ Chambre réservée ou bloquée non proposée, ✗ Capacité dépassée : chambre non proposée | tested: compliant (CN-1, CL-2, CL-3, CL-4, CL-5, CL-6) | |
| VIS-06 — Basculer le site en anglais | VIS | ✓ Site affiché en anglais, ✗ Textes restés en français | tested: compliant (CS-4) | |
| Préparer l'accueil Business · Réservation et suivi des séjours | ADM-01 — Retrouver la réservation au tableau de bord (US-2) | ADM | ✓ Réservation du voyageur affichée, montants justes, ✗ Réservation absente du tableau de bord, ✗ Total ou statut divergent de Mes réservations | tested: defect (CU-2, CL-7) |
| Suivre ses séjours Business · Réservation et suivi des séjours | CLI-04 — Consulter ses réservations | CLI | ✓ Réservation listée, statut Confirmée, montants justes, ✗ Réservation absente ou montants faux | tested: compliant (CS-2) |
| CLI-05 — Annuler une réservation | CLI | ✓ Réservation annulée, dates libérées, ✗ Annulation à moins de 48 h refusée | blocked (CS-1) | |
| Vendre un séjour Business · Réservation et suivi des séjours | CLI-02 — Réserver une chambre avec code promo (US-1) | CLI | ✓ Récapitulatif juste : hébergement remisé, taxe, total, ✗ Code promo invalide refusé, ✗ Dates chevauchant une réservation refusées, ✗ Capacité de la chambre dépassée refusée | tested: compliant (CU-1) |
| Gérer l'offre Business · Gestion de l'offre (chambres, prix, calendrier, dates bloquées) | ADM-03 — Bloquer des dates | ADM | ✓ Dates bloquées non réservables, ✗ Blocage sur dates déjà réservées | not tested |
| ADM-04 — Gérer les chambres et les prix | ADM | ✓ Nouveau prix affiché et appliqué, ✗ Prix invalide refusé | not tested | |
| Préparer l'accueil Business · Gestion de l'offre (chambres, prix, calendrier, dates bloquées) | ADM-02 — Consulter le calendrier des réservations | ADM | ✓ Occupation conforme aux réservations, ✗ Réservation manquante au calendrier | not tested |
| Vendre un séjour Support · Paiement de l'acompte | CLI-03 — Payer l'acompte de 30 % (simulé) | CLI | ✓ Acompte payé, numéro remis, statut Confirmée, ✗ Paiement simulé refusé, réservation non confirmée | not tested |
| Gérer les comptes Support · Comptes et accès | VIS-03 — Créer un compte | VIS | ✓ Compte créé puis confirmé par e-mail, ✗ Mot de passe trop court refusé, ✗ E-mail déjà utilisé refusé, ✗ E-mail de confirmation non reçu | not tested |
| CLI-01 — Se connecter et se déconnecter | CLI | ✓ Menu « Mes réservations » affiché, ✗ Identifiants erronés refusés, ✗ Voyageur voyant « Gestion » (accès indu) | tested: compliant (CL-1) | |
| Fidéliser les hôtes Support · Relation client (avis, contact, FAQ) | CLI-06 — Laisser un avis | CLI | ✓ Avis publié après un séjour passé, ✗ Avis refusé sans séjour passé | tested: compliant (CL-8) |
| Informer et assister Support · Relation client (avis, contact, FAQ) | VIS-04 — Envoyer un message de contact | VIS | ✓ Message envoyé et confirmé, ✗ Champ obligatoire vide refusé, ✗ E-mail invalide refusé | not tested |
| VIS-05 — Consulter la FAQ | VIS | ✓ Réponses cohérentes avec les règles, ✗ Réponse contredisant taxe, acompte ou annulation | tested: compliant (CS-3) | |
| ADM-05 — Lire les messages de contact | ADM | ✓ Message du formulaire Contact reçu, ✗ Message absent de la Gestion | not tested |
Key business rules by process
| Process | Business rule | Source |
|---|---|---|
| VIS-01 — Consulter les chambres et les prix | RG-01 — Atlas : 900 MAD par nuit, 2 personnes | read on the site : « 900 MAD / nuit » |
| RG-02 — Majorelle : 1 200 MAD par nuit, 3 personnes | read on the site : « 1 200 MAD / nuit » | |
| RG-03 — Suite Koutoubia : 1 800 MAD par nuit, 4 personnes | read on the site : « 1 800 MAD / nuit » | |
| RG-04 — Palmeraie : 750 MAD par nuit, 2 personnes | read on the site : « 750 MAD / nuit » | |
| RG-05 — Menara : 1 000 MAD par nuit, 2 personnes | read on the site : « 1 000 MAD / nuit » | |
| VIS-02 — Rechercher des disponibilités | RG-12 — Une chambre ne peut pas être réservée deux fois sur des dates qui se chevauchent | read on the site : « une chambre ne peut pas etre reservee deux fois sur des dates qui se chevauchent » |
| RG-13 — Pas de réservation dans le passé | read on the site : « pas de reservation dans le passe » | |
| RG-14 — 1 nuit minimum | read on the site : « 1 nuit minimum » | |
| RG-15 — Recherche : 1 à 4 adultes et 0 à 3 enfants (limites du formulaire) | to be confirmed | |
| RG-20 — La gérante bloque des dates, qui deviennent non réservables | read on the site : « blocage de dates » | |
| VIS-03 — Créer un compte | RG-17 — Inscription par e-mail et mot de passe avec e-mail de confirmation | read on the site : « inscription par e-mail + mot de passe avec e-mail de confirmation » |
| RG-18 — Mot de passe de 6 caractères minimum (limite du formulaire) | to be confirmed | |
| VIS-04 — Envoyer un message de contact | RG-21 — Contact : nom (100 car.), e-mail et message (2 000 car.) obligatoires, sujet facultatif (150 car.) | to be confirmed |
| VIS-05 — Consulter la FAQ | RG-06 — Taxe de séjour : 30 MAD par adulte et par nuit, jamais remisée | read on the site : « la taxe de sejour (30 MAD par adulte et par nuit) n est jamais remisee » |
| RG-07 — Code RIAD10 : -10 % sur l'hébergement seulement (US-1 : Majorelle 2 nuits 2 adultes = 2 400 - 240 + 120 = 2 280 MAD) | read on the site : « Le code promo RIAD10 donne -10 % sur l hebergement seulement » | |
| RG-08 — Acompte de 30 % du total remisé, taxe comprise, payé en ligne (US-1 : 684 MAD) | read on the site : « l acompte de 30 % porte sur le total remise, taxe comprise » | |
| RG-11 — Annulation possible jusqu'à 48 h avant l'arrivée | read on the site : « Annulation possible jusqu'à 48 h avant l'arrivée. » | |
| VIS-06 — Basculer le site en anglais | RG-22 — Site en français avec bascule EN | read on the site : « FR avec bascule EN » |
| CLI-01 — Se connecter et se déconnecter | RG-19 — La gérante est la seule administratrice : seule elle accède à la Gestion | read on the site : « La gerante est la seule administratrice » |
| CLI-02 — Réserver une chambre avec code promo (US-1) | RG-02 — Majorelle : 1 200 MAD par nuit, 3 personnes | read on the site : « 1 200 MAD / nuit » |
| RG-06 — Taxe de séjour : 30 MAD par adulte et par nuit, jamais remisée | read on the site : « la taxe de sejour (30 MAD par adulte et par nuit) n est jamais remisee » | |
| RG-07 — Code RIAD10 : -10 % sur l'hébergement seulement (US-1 : Majorelle 2 nuits 2 adultes = 2 400 - 240 + 120 = 2 280 MAD) | read on the site : « Le code promo RIAD10 donne -10 % sur l hebergement seulement » | |
| RG-08 — Acompte de 30 % du total remisé, taxe comprise, payé en ligne (US-1 : 684 MAD) | read on the site : « l acompte de 30 % porte sur le total remise, taxe comprise » | |
| RG-12 — Une chambre ne peut pas être réservée deux fois sur des dates qui se chevauchent | read on the site : « une chambre ne peut pas etre reservee deux fois sur des dates qui se chevauchent » | |
| RG-14 — 1 nuit minimum | read on the site : « 1 nuit minimum » | |
| CLI-03 — Payer l'acompte de 30 % (simulé) | RG-08 — Acompte de 30 % du total remisé, taxe comprise, payé en ligne (US-1 : 684 MAD) | read on the site : « l acompte de 30 % porte sur le total remise, taxe comprise » |
| RG-09 — Paiement simulé, jamais réel | read on the site : « paiement SIMULE, jamais reel » | |
| RG-10 — Un numéro de réservation est remis après le paiement de l'acompte | read on the site : « numero de reservation » | |
| CLI-04 — Consulter ses réservations | RG-08 — Acompte de 30 % du total remisé, taxe comprise, payé en ligne (US-1 : 684 MAD) | read on the site : « l acompte de 30 % porte sur le total remise, taxe comprise » |
| RG-23 — Statuts de réservation visibles : Confirmée, Annulée | read on the site : « Confirmée » | |
| RG-25 — Le voyageur connecté voit ses réservations dans Mes réservations | read on the site : « Le voyageur connecte voit ses reservations dans Mes reservations » | |
| CLI-05 — Annuler une réservation | RG-11 — Annulation possible jusqu'à 48 h avant l'arrivée | read on the site : « Annulation possible jusqu'à 48 h avant l'arrivée. » |
| RG-23 — Statuts de réservation visibles : Confirmée, Annulée | read on the site : « Confirmée » | |
| CLI-06 — Laisser un avis | RG-16 — Seuls les hôtes ayant séjourné peuvent publier un avis | read on the site : « Seuls les hôtes ayant séjourné au riad peuvent publier un avis. » |
| ADM-01 — Retrouver la réservation au tableau de bord (US-2) | RG-08 — Acompte de 30 % du total remisé, taxe comprise, payé en ligne (US-1 : 684 MAD) | read on the site : « l acompte de 30 % porte sur le total remise, taxe comprise » |
| RG-19 — La gérante est la seule administratrice : seule elle accède à la Gestion | read on the site : « La gerante est la seule administratrice » | |
| RG-23 — Statuts de réservation visibles : Confirmée, Annulée | read on the site : « Confirmée » | |
| ADM-02 — Consulter le calendrier des réservations | RG-12 — Une chambre ne peut pas être réservée deux fois sur des dates qui se chevauchent | read on the site : « une chambre ne peut pas etre reservee deux fois sur des dates qui se chevauchent » |
| RG-19 — La gérante est la seule administratrice : seule elle accède à la Gestion | read on the site : « La gerante est la seule administratrice » | |
| ADM-03 — Bloquer des dates | RG-20 — La gérante bloque des dates, qui deviennent non réservables | read on the site : « blocage de dates » |
| RG-19 — La gérante est la seule administratrice : seule elle accède à la Gestion | read on the site : « La gerante est la seule administratrice » | |
| ADM-04 — Gérer les chambres et les prix | RG-01 — Atlas : 900 MAD par nuit, 2 personnes | read on the site : « 900 MAD / nuit » |
| RG-02 — Majorelle : 1 200 MAD par nuit, 3 personnes | read on the site : « 1 200 MAD / nuit » | |
| RG-03 — Suite Koutoubia : 1 800 MAD par nuit, 4 personnes | read on the site : « 1 800 MAD / nuit » | |
| RG-04 — Palmeraie : 750 MAD par nuit, 2 personnes | read on the site : « 750 MAD / nuit » | |
| RG-05 — Menara : 1 000 MAD par nuit, 2 personnes | read on the site : « 1 000 MAD / nuit » | |
| RG-19 — La gérante est la seule administratrice : seule elle accède à la Gestion | read on the site : « La gerante est la seule administratrice » | |
| ADM-05 — Lire les messages de contact | RG-19 — La gérante est la seule administratrice : seule elle accède à la Gestion | read on the site : « La gerante est la seule administratrice » |
| RG-21 — Contact : nom (100 car.), e-mail et message (2 000 car.) obligatoires, sujet facultatif (150 car.) | to be confirmed | |
| — | RG-24 — Prix affichés en MAD, par chambre et par nuit | read on the site : « 750 MAD / nuit » |
Acceptance test book
| Ref. | User story | Expected result | Actual result and evidence | Recommendation |
|---|---|---|---|---|
| CN-1 | En tant que Client voyageur connecté, je veux trouver une chambre libre pour mes dates, afin de réserver mon séjour au riad. VIS-02 · RG-02 · RG-12 · RG-13 · RG-14 | Connexion réussie ; la Majorelle est proposée pour 2 adultes du 10 au 12 novembre à 1 200 MAD la nuit. | Pass Server responses
| Keep this case in the regression test suite. |
| CU-1 | En tant que Client voyageur connecté, je veux réserver la Majorelle 2 nuits pour 2 adultes avec RIAD10, afin de payer un acompte calculé sur le total remisé. client user story · CLI-02 · RG-02 · RG-06 · RG-07 · RG-08 | Récapitulatif : hébergement 2 400, remise RIAD10 -240, taxe 120, total 2 280 MAD ; acompte 684 MAD ; numéro de réservation affiché. | Pass Server responses
| Keep this case in the regression test suite. |
| CU-2 | En tant que Gérante (seule administratrice), je veux retrouver dans mon tableau de bord la réservation du voyageur, afin de préparer son arrivée. client user story · ADM-01 · RG-19 · RG-23 | Le tableau de bord liste DZ-2610-A646A et DZ-2610-39268 (Atlas, 1 920 MAD) avec chambre, client, dates et statut. | Fail expected text missing: « DZ-2610-A646A » (page: « Riad Dar Zitoun Accueil Disponibilités Avis FAQ Contact Mes réservations Gestion EN Déconnexion Tableau de bord Calendrier Dates bloquées Chambres & prix Messag ») Server responses
Hygiene of related pages: #2, #5, #6, #7, #12, #18 Finding: #1 | Severity S2: an important secondary or edge business case does not behave as promised. Replay the steps with the test account, fix, then run the acceptance test again. |
| CS-1 | En tant que Client voyageur connecté, je veux annuler une réservation plus de 48 h avant l'arrivée, afin de libérer mes dates sans litige. CLI-05 · RG-11 · RG-23 | La réservation passe au statut Annulée ; ses dates redeviennent réservables. | Blocked « Annuler » : paiement, suppression ou annulation, jamais cliqué Server responses
| Remove the blocker (« Annuler » : paiement, suppression ou annulation, jamais cliqué), then replay. |
| CS-2 | En tant que Client voyageur connecté, je veux voir un total et un acompte justes dans Mes réservations, afin de payer le bon montant. CLI-04 · RG-01 · RG-06 · RG-08 | Atlas 2 nuits 2 adultes : 1 800 + taxe 120 = 1 920 MAD ; acompte 30 % = 576 MAD. | Pass Server responses
| Keep this case in the regression test suite. |
| CS-3 | En tant que Visiteur, je veux lire dans la FAQ les règles de promo, de taxe et d'annulation, afin de réserver en confiance. VIS-05 · RG-06 · RG-07 · RG-11 | Les réponses citent RIAD10, la taxe de 30 MAD et l'annulation jusqu'à 48 h, sans contradiction. | Pass Hygiene of related pages: #20 | Keep this case in the regression test suite. |
| CS-4 | En tant que Visiteur, je veux afficher le site en anglais, afin de comprendre l'offre sans parler français. VIS-06 · RG-22 | Les libellés passent en anglais ; les chambres restent affichées. | Pass Hygiene of related pages: #3, #4, #8, #9, #10, #11, #13, #14, #15, #16 | Keep this case in the regression test suite. |
| CL-1 | En tant que Client voyageur connecté, je veux être refusé avec un mauvais mot de passe, afin que personne n'accède à mes réservations. CLI-01 · RG-17 | Connexion refusée avec un message d'erreur ; aucun accès à Mes réservations. | Pass Server responses
| Keep this case in the regression test suite. |
| CL-2 | En tant que Visiteur, je veux être empêché de chercher une arrivée passée, afin de ne pas réserver une date impossible. VIS-02 · RG-13 | Date passée refusée ; aucune chambre proposée. | Pass Hygiene of related pages: no technical finding on these pages | Keep this case in the regression test suite. |
| CL-3 | En tant que Visiteur, je veux être alerté si mon départ précède mon arrivée, afin de corriger mes dates. VIS-02 · RG-14 | Dates incohérentes refusées ; aucune chambre proposée. | Pass Hygiene of related pages: no technical finding on these pages | Keep this case in the regression test suite. |
| CL-4 | En tant que Visiteur, je veux être empêché de réserver zéro nuit, afin de respecter le minimum d'une nuit. VIS-02 · RG-14 | Séjour de zéro nuit refusé ; aucune chambre proposée. | Pass Hygiene of related pages: no technical finding on these pages | Keep this case in the regression test suite. |
| CL-5 | En tant que Visiteur, je veux ne voir que les chambres assez grandes pour 4 adultes, afin de réserver une chambre adaptée. VIS-02 · RG-02 · RG-03 · RG-15 | Seule la Suite Koutoubia (4 pers.) est proposée. | Pass Server responses
Hygiene of related pages: no technical finding on these pages | Keep this case in the regression test suite. |
| CL-6 | En tant que Visiteur, je veux être bloqué au-delà de 4 adultes, afin de ne pas réserver une capacité inexistante. VIS-02 · RG-15 | Saisie refusée ; aucune chambre proposée pour 5 adultes. | Pass Hygiene of related pages: no technical finding on these pages | Keep this case in the regression test suite. |
| CL-7 | En tant que Gérante (seule administratrice), je veux que la Gestion soit fermée aux visiteurs, afin de protéger les réservations et les clients. ADM-01 · RG-19 · RG-25 | Sans connexion, ni la Gestion ni les réservations ne s'affichent. | Pass | Keep this case in the regression test suite. |
| CL-8 | En tant que Client voyageur connecté, je veux être empêché de publier un avis sans séjour passé, afin que les avis restent authentiques. CLI-06 · RG-16 | Le compte sans séjour passé ne peut pas publier ; la règle est rappelée. | Pass Server responses
| Keep this case in the regression test suite. |
| CN-2 | En tant que Client voyageur connecté, je veux réserver la Majorelle 2 nuits avec RIAD10 et payer l'acompte, afin de confirmer mon séjour. CLI-03 · RG-02 · RG-06 · RG-07 · RG-08 · RG-09 | Total 2 280 MAD après RIAD10, acompte de 684 MAD payé (simulé), réservation confirmée avec numéro. | Not playable not played: element not found: input >> nth=0 — to be confirmed Hygiene of related pages: no technical finding on these pages | Remove the blocker (not played: element not found: input >> nth=0 — to be confirmed), then replay. |
| CS-20 | En tant que Client voyageur connecté, je veux appliquer RIAD10 à la Suite Koutoubia, afin de payer un acompte juste sur le total remisé. CLI-02 · RG-03 · RG-06 · RG-07 · RG-08 | Total 3 360 MAD, acompte 1 008 MAD, solde 2 352 MAD ; la taxe de 120 MAD n'est pas remisée. | Not playable not played: element not found: input[placeholder="RIAD10"] — to be confirmed Hygiene of related pages: no technical finding on these pages | Remove the blocker (not played: element not found: input[placeholder="RIAD10"] — to be confirmed), then replay. |
| CS-21 | En tant que Gérante (seule administratrice), je veux retrouver la réservation Majorelle que le voyageur vient de payer, afin de préparer son arrivée. ADM-01 · RG-08 · RG-19 · RG-23 · RG-25 | Mes réservations affiche 2 280 MAD et 684 MAD ; la Gestion liste la réservation Majorelle du 2026-11-10. | Inconclusive — to be confirmed expected text missing: « Total: 2 280 MAD » (page: « Riad Dar Zitoun Accueil Disponibilités Avis FAQ Contact EN Connexion Connexion E-mail Mot de passe ConnexionPas encore de compte ? Créer un compte Riad Dar Zito ») | Have the business confirm the expected result, then replay. |
| CL-20 | En tant que Client voyageur connecté, je veux qu'un code promo inconnu soit refusé, afin de payer le prix juste. CLI-02 · RG-04 · RG-07 | Code refusé ; total 1 620 MAD et acompte 486 MAD inchangés. | Pass Server responses
Hygiene of related pages: no technical finding on these pages | Keep this case in the regression test suite. |
| CL-21 | En tant que Client voyageur connecté, je veux être empêché de réserver une chambre déjà prise, afin d'éviter un surbooking. CLI-02 · RG-12 | Réservation refusée : chambre indisponible sur ces dates, aucun numéro émis. | Pass payment in test mode (provider: simulation) Server responses
Hygiene of related pages: no technical finding on these pages | Keep this case in the regression test suite. |
| CL-22 | En tant que Client voyageur connecté, je veux être bloqué si le nom complet manque, afin que la gérante sache qui accueillir. CLI-03 · RG-08 | Paiement bloqué, champ Nom complet signalé ; aucune réservation créée. | Pass payment in test mode (provider: simulation) Server responses
Hygiene of related pages: no technical finding on these pages | Keep this case in the regression test suite. |
| CL-23 | En tant que Client voyageur connecté, je veux être alerté si mon e-mail est invalide, afin de recevoir ma confirmation. CLI-03 · RG-08 | Paiement bloqué, format d'e-mail signalé ; aucune réservation créée. | Pass payment in test mode (provider: simulation) Server responses
Hygiene of related pages: no technical finding on these pages | Keep this case in the regression test suite. |
Technical hygiene
Acceptance test of riad-connect-hub.lovable.app: 21 findings, 12 fixes to make
The test of riad-connect-hub.lovable.app found 21 issues, 4 of them critical or major (S1, S2), which come down to 12 fixes. Fix first: Business journey fails, then Sign-in pages can be framed by another site (clickjacking), then Form fields without a label.
20 problems found, 3 to fix first.
Fix these first
- One cause → one fixSign-in pages can be framed by another site (clickjacking): 3 findings, one fix
Cause: Same "Sign-in pages can be framed by another site (clickjacking)" defect repeated: probably one shared component or template.
Single fix: Send the Content-Security-Policy: frame-ancestors 'none' header (and X-Frame-Options: DENY).
- #2MajorSign-in pages can be framed by another site (clickjacking) — /auth (Chromium (Chrome's engine))
Why first: A third-party site can hijack clicks on the sign-in page: customer accounts exposed and trust lost. Effort : low
Page: https://riad-connect-hub.lovable.app/auth
Observed: Encadrables : /admin; /auth
Technical detail
Original title: Pages de connexion affichables dans un autre site (clickjacking)
Expected: Ces pages refusent d'être affichées dans un cadre étranger
Recommended fix: Envoyer Content-Security-Policy: frame-ancestors 'none' (et X-Frame-Options: DENY).
- #3MinorSecurity headers missing — / (desktop · Chromium (Chrome's engine))
Page: https://riad-connect-hub.lovable.app/
Observed: Manquants : Content-Security-Policy, Permissions-Policy
Technical detail
Original title: En-têtes de sécurité absents sur riad-connect-hub.lovable.app
Expected: En-têtes de sécurité présents
Recommended fix: Les ajouter dans la configuration de l'hébergeur (fichier _headers Netlify, vercel.json...).
- #4NoteSecurity headers missing — / (Chromium (Chrome's engine))
Page: https://riad-connect-hub.lovable.app/
Observed: Cross-Origin-Opener-Policy: absent
Technical detail
Original title: Cross-Origin-Opener-Policy absente : une fenêtre ouverte par un autre site garde un lien vers la vôtre
Expected: Cross-Origin-Opener-Policy: same-origin (ou same-origin-allow-popups si des fenêtres de paiement/connexion sont utilisées)
Recommended fix: Ajouter Cross-Origin-Opener-Policy: same-origin-allow-popups, puis same-origin si aucun parcours n'en souffre.
- One cause → one fixForm fields without a label: 3 findings, one fix
Cause: The fields are built without an associated label.
Single fix: Attach a label (or aria-label) to each field in the shared form component.
- #5MajorForm fields without a label — /admin (Chromium (Chrome's engine))
Why first: Some visitors (keyboard users, visually impaired) cannot finish: these are lost bookings, and accessibility is becoming a legal duty in several markets. Effort : low
Page: https://riad-connect-hub.lovable.app/admin
Observed: input[maxlength="100"] Form elements must have labels; input Form elements must have labels; input[maxlength="100"] Form elements must have labels
Technical detail
Original title: Accessibilité : champ-sans-libelle (label) (3 occurrence(s) sur 2 page(s)) — ordinateur, téléphone
Expected: Conforme WCAG 2.2 AA — WCAG 2.2 : 4.1.2 Nom, rôle et valeur (A), 1.3.1 Information et relations (A) · RGAA 4.1 : 11.1 Champ de formulaire avec étiquette
Recommended fix: axe-core (moteur de référence) : corriger chaque élément cité.
- #6MajorAccessibility issue — /admin (Chromium (Chrome's engine))
Page: https://riad-connect-hub.lovable.app/admin
Observed: .bg-background.w-9.\[\&_svg\]\:pointer-events-none:nth-child(1) Buttons must have discernible text
Technical detail
Original title: Accessibilité : nom-accessible (button-name) (1 occurrence(s) sur 1 page(s))
Expected: Conforme WCAG 2.2 AA — WCAG 2.2 : 4.1.2 Nom, rôle et valeur (A) · RGAA 4.1 : 11.9 Intitulé de bouton pertinent
Recommended fix: axe-core (moteur de référence) : corriger chaque élément cité.
- #7NoteAccessibility issue — /admin (Chromium (Chrome's engine))
Page: https://riad-connect-hub.lovable.app/admin
Observed: thead > tr > .p-3:nth-child(7) Table header text should not be empty
Technical detail
Original title: Accessibilité : empty-table-header (1 occurrence(s) sur 1 page(s))
Expected: Conforme WCAG 2.2 AA — bonne pratique (aucun critère WCAG 2.2 ni RGAA 4.1 directement visé)
Recommended fix: axe-core (moteur de référence) : corriger chaque élément cité.
- One cause → one fixNo link to the privacy policy: 2 findings, one fix
Cause: Same "No link to the privacy policy" defect repeated: probably one shared component or template.
Single fix: Fix it once in the shared component or template, then re-check every listed page.
- #8MinorNo link to the privacy policy — / (Chromium (Chrome's engine))
Why first: This information is usually mandatory for a site that sells online; its absence exposes the publisher and reassures buyers less. Effort : low
Page: https://riad-connect-hub.lovable.app/
Technical detail
Original title: Pas de lien vers la politique de confidentialité
Expected: Un lien vers la politique de confidentialité (RGPD / loi 09-08)
Observed: Aucun lien ni texte « confidentialité / privacy / données personnelles » trouvé sur l'accueil.
Recommended fix: Publier une politique de confidentialité et la lier depuis le pied de page.
- #9MinorNo legal notice — / (Chromium (Chrome's engine))
Page: https://riad-connect-hub.lovable.app/
Technical detail
Original title: Pas de mentions légales
Expected: Des mentions légales (éditeur, hébergeur, contact)
Observed: Aucun lien « mentions légales / CGU / CGV / legal » trouvé sur l'accueil.
Recommended fix: Ajouter une page de mentions légales liée depuis le pied de page.
- One cause → one fixPages and images too heavy: 2 findings, one fix
Cause: Images and resources are served too heavy, probably without compression or proper sizing.
Single fix: Compress and resize images (WebP or AVIF, srcset) once in the publishing pipeline.
- #10MinorPages and images too heavy — / (Chromium (Chrome's engine))
Why first: A slow page makes visitors leave before they even see the offer, especially on phones: fewer bookings. Effort : low
Page: https://riad-connect-hub.lovable.app/
Technical detail
Original title: 2 image(s) trop lourde(s) pour leur taille d'affichage
Expected: Images < 300 Ko, dimensionnées pour l'affichage
Observed: ttps://riad-connect-hub.lovable.app/assets/hero-O0-s_7b9.jpg : 461 Ko, 1920 px affichés en 1440 px; /riad-connect-hub.lovable.app/assets/room-atlas-DfmmbZJQ.jpg : 187 Ko, 1200 px affichés en 192 px
Recommended fix: SVG ou WebP pour le logo ; images responsives (srcset, AVIF/WebP) ; préchargement de l'image principale.
- #11MinorPages and images too heavy — / (Chromium (Chrome's engine))
Page: https://riad-connect-hub.lovable.app/
Observed: https://riad-connect-hub.lovable.app/assets/hero-O0-s_7b9.jpg (image/jpeg) : 462 Ko
Technical detail
Original title: Images lourdes : 1 fichier(s) au-dessus de 300 Ko
Expected: Chaque fichier ≤ 300 Ko transférés
Recommended fix: Convertir en WebP ou AVIF, redimensionner à la taille d'affichage (srcset), viser moins de 200 Ko par image ; charger en différé celles qui sont sous la ligne de flottaison.
The rest
- #12MinorInsufficient text contrast — /admin (Chromium (Chrome's engine))
Page: https://riad-connect-hub.lovable.app/admin
Technical detail
Original title: Accessibilité : contraste (color-contrast) (1 occurrence(s) sur 1 page(s)) — 8 sélecteur(s)
Expected: Conforme WCAG 2.2 AA — WCAG 2.2 : 1.4.3 Contraste (minimum) (AA) · RGAA 4.1 : 3.2 Contraste du texte
Observed: .p-3:nth-child(3) > .text-xs : ratio 2,12:1 (texte #b9ada6 sur fond #fffbf6), cible 4,5:1 — 1 page(s) : /admin ; .font-semibold.p-3 : ratio 3,17:1 (texte #978c86 sur fond #fffbf6), cible 4,5:1 — 1 page(s) : /admin ; .opacity-50 > .p-3:nth-child(2) : ratio 3,17:1 (texte #978c86 sur fond #fffbf6), cible 4,5:1 — 1 page(s) : /admin ; .opacity-50 > .p-3:nth-child(3) : ratio 3,17:1 (texte #978c86 sur fond #fffbf6), cible 4,5:1 — 1 page(s) : /admin ; .opacity-50 > .p-3:nth-child(4) : ratio 3,17:1 (texte #978c86 sur fond #fffbf6), cible 4,5:1 — 1 page(s) : /admin ; .opacity-50 > .p-3:nth-child(5) : ra
Recommended fix: Une règle CSS par sélecteur cité : foncer le texte ou éclaircir le fond jusqu'à la cible (4,5:1 ; 3:1 pour un texte d'au moins 24 px, ou 18,66 px en gras).
- One cause → one fixS3 issue — /: 2 findings, one fix
Cause: Same "S3 issue — /" defect repeated: probably one shared component or template.
Single fix: Fix it once in the shared component or template, then re-check every listed page.
- #13MinorS3 issue — / (Chromium (Chrome's engine))
Page: https://riad-connect-hub.lovable.app/
Technical detail
Original title: Aucun bandeau de consentement aux cookies détecté sur riad-connect-hub.lovable.app
Expected: Un bandeau qui demande l'accord (accepter / refuser / personnaliser)
Observed: Ni outil de consentement connu, ni texte « cookies » avec un bouton d'acceptation, alors que des traceurs ou cookies de mesure sont présents.
Recommended fix: Le RGPD et la directive « ePrivacy » (en France, les règles de la CNIL ; au Maroc, la loi 09-08 et la CNDP) demandent l'accord du visiteur AVANT de déposer un cookie ou d'appeler un service qui sert à mesurer l'audience ou à faire de la publicité. Les cookies strictement nécessaires (session, panier, langue) n'ont pas besoin d'accord. Installez un outil de gestion du consentement et bloquez les traceurs tant que le visiteur n'a pas choisi.
- #14MinorS3 issue — / (Chromium (Chrome's engine))
Page: https://riad-connect-hub.lovable.app/
Technical detail
Original title: Cookies de mesure ou de publicité déposés avant tout consentement sur riad-connect-hub.lovable.app
Expected: Seuls des cookies techniques (session, panier, langue) avant l'accord
Observed: Déposés sans accord : __cf_bm (supabase.co, tiers)
Recommended fix: Le RGPD et la directive « ePrivacy » (en France, les règles de la CNIL ; au Maroc, la loi 09-08 et la CNDP) demandent l'accord du visiteur AVANT de déposer un cookie ou d'appeler un service qui sert à mesurer l'audience ou à faire de la publicité. Les cookies strictement nécessaires (session, panier, langue) n'ont pas besoin d'accord. Déposez ces cookies seulement après l'accord, et proposez « Refuser » aussi simplement que « Accepter ».
- One cause → one fixSlow loading: 3 findings, one fix
Cause: Too many resources to load before display, especially on mobile networks.
Single fix: Lighten and defer images and scripts, and cache shared resources.
- #15MinorSlow loading (6252 ms) — / (phone · Chromium (Chrome's engine))
Page: https://riad-connect-hub.lovable.app/
Expected: Chargement < 3000 ms
Observed: / 6252 ms
Technical detail
Original title: Chargement lent (6252 ms) : / — téléphone uniquement
Recommended fix: Mesurer avec Lighthouse ; compresser les images, decouper le JavaScript, mettre en cache.
- #16MinorSlow loading (4600 ms, 4562 ms) — / (Chromium (Chrome's engine))
Page: https://riad-connect-hub.lovable.app/
Technical detail
Original title: Lent sur téléphone en réseau lent : LCP 4600 ms, chargement 4562 ms (non confirmé)
Expected: LCP ≤ 4000 ms et chargement ≤ 10000 ms dans ces conditions (profil mobile de Lighthouse)
Observed: LCP 4600 ms, chargement 4562 ms (2 mesure(s), non confirmé)
Recommended fix: Alléger d'abord l'élément principal affiché (image ou titre) : image compressée et préchargée (rel=preload), CSS critique en ligne, JavaScript différé ; servir les fichiers depuis un CDN proche des visiteurs.
- #17MinorPages and images too heavy — / (Chromium (Chrome's engine))
Page: https://riad-connect-hub.lovable.app/
Technical detail
Original title: Fichiers JavaScript lourds : 1 fichier(s) au-dessus de 500 Ko
Expected: Chaque fichier ≤ 500 Ko transférés
Observed: https://riad-connect-hub.lovable.app/assets/index-BYEaChBb.js (text/javascript) : 574 Ko décompressés (167 Ko transférés)
Recommended fix: Découper le JavaScript par page (code splitting), retirer les bibliothèques inutilisées (tree shaking), minifier et compresser (brotli) ; différer les scripts non essentiels (defer/async).
- #18MinorSign-in pages open to search engines — /auth (Chromium (Chrome's engine))
Page: https://riad-connect-hub.lovable.app/auth
Observed: Indexables : /auth ; robots.txt : User-agent: Googlebot Allow: / User-agent: Bingbot Allow: / User-agent: Twitterbot Allow: / User-agent: facebookexter
Technical detail
Original title: Pages de connexion ouvertes aux moteurs de recherche
Expected: noindex et Disallow sur les espaces privés
Recommended fix: Ajouter <meta name=robots content=noindex> et Disallow: /admin, /vendeur (ou équivalents).
- #19NoteNo security.txt file — /.well-known/security.txt (Chromium (Chrome's engine))
Page: https://riad-connect-hub.lovable.app/.well-known/security.txt
Observed: HTTP 404
Technical detail
Original title: Pas de /.well-known/security.txt
Expected: Un fichier security.txt indiquant comment signaler une faille (RFC 9116)
Recommended fix: Ajouter /.well-known/security.txt avec un contact de sécurité.
- #20NoteHeading levels skipped — /faq (Chromium (Chrome's engine))
Page: https://riad-connect-hub.lovable.app/faq
Observed: .border-b:nth-child(1) > h3 Heading levels should only increase by one; .border-b:nth-child(1) > h3 Heading levels should only increase by one
Technical detail
Original title: Accessibilité : ordre-titres (heading-order) (2 occurrence(s) sur 1 page(s)) — ordinateur, téléphone
Expected: Conforme WCAG 2.2 AA — RGAA 4.1 : 9.1 Hiérarchie des titres
Recommended fix: axe-core (moteur de référence) : corriger chaque élément cité.
- #21NoteSearch optimisation to improve — / (Chromium (Chrome's engine))
Page: https://riad-connect-hub.lovable.app/
Technical detail
Original title: Référencement : 1 problème(s) sur riad-connect-hub.lovable.app
Expected: Canonical propre à chaque langue, og:image, titres distincts
Observed: sans canonical : /; /auth; /contact; /faq (+3)
Recommended fix: Canonical auto-référent par langue, og:image/og:title partout, titre et canonical sur chaque page.
By theme
- Security and trust — A weakness exposes customer accounts and data; lost trust costs bookings and puts the publisher at risk.
4 finding(s), 1 critical or major; 2 fix(es) cover them. #2, #3, #4, #19 - Accessibility — Some visitors (keyboard users, visually impaired) cannot finish: these are lost bookings, and accessibility is becoming a legal duty in several markets.
5 finding(s), 2 critical or major; 3 fix(es) cover them. #5, #6, #7, #12, #20 - Legal obligations — This information is usually mandatory for a site that sells online; its absence exposes the publisher and reassures buyers less.
4 finding(s), 0 critical or major; 2 fix(es) cover them. #8, #9, #13, #14 - Loading speed — A slow page makes visitors leave before they even see the offer, especially on phones: fewer bookings.
5 finding(s), 0 critical or major; 2 fix(es) cover them. #10, #11, #15, #16, #17 - Search visibility — Search brings visitors for free; poorly described or poorly indexed pages bring fewer.
2 finding(s), 0 critical or major; 2 fix(es) cover them. #18, #21
Next steps
- Fix the 5 "fix first" points, in order.
- Apply the 6 grouped fixes: each one settles several findings at once.
- Then handle the remaining minor findings, section by section.
- Run a new Avalyz test to verify the fixes.
- Extend the scope to the 5 untested area(s) (for example with a test account).
Coverage limits
- Accessibility : partial
Technical detail
axe-core sur chaque page (bureau et téléphone) + focus clavier ; critères WCAG 2.2 et RGAA 4.1 cités dans les constats ; compléments navigateur : 8 page(s) (8 pages lues sur 8 visitées (mode complet)), contraste mesuré sur 16 texte(s) (clair, et sombre sur 8 page(s)), 320 tabulation(s) (135 élément(s) vérifiés pour le focus visible, 0 fenêtre(s) modale(s) cachée(s) parcourue(s) sans clic, 0 piège(s)), noms accessibles vérifiés sur 8 page(s), 0 PDF lié(s) non audité(s)
- Visual regression : not tested
Technical detail
Aucune reference approuvee : approuve un passage comme reference.
- Journeys by role : partial
Technical detail
3 pages, 57 actions relevées, 0 action jouée (lecture seule) — rôle « [email] » ; 1 autre(s) rôle(s) : voir les lignes « Profil »
- Business logic : partial
Technical detail
logique métier décrite par le client jouée par les scénarios métier (voir la ligne « Scénarios métier ») ; aucune idée « Depuis ton idée » à rapprocher
- API / integration : partial
Technical detail
pas de spécification OpenAPI trouvée (/openapi.json, /swagger.json, /api-docs, /api/openapi.json…) ; sondes GET : /api → 406, /api/health → 406, /graphql → 406 — importe le contrat de l'API pour des cas par opération ; spec reconstituée depuis le navigateur (7 page(s) — 7 pages lues sur 8 visitées (mode complet), 9 appel(s) observé(s), aucune requête ajoutée) : 1 point(s) d'entrée — POST /__l5e/trackevents [?] ; 0 constat(s)
- Data security : not tested
Technical detail
aucune base détectée (Supabase : clé anon dans la page ; Firebase : apiKey + databaseURL) — le contrôle RLS demande un accès à la base ou une clé publique visible
- Business scenarios : partial
Technical detail
15 cas conçus (1 nominal, 6 secondaires, 8 limites) ; joués : 15 (mode complet : CN-1, CU-1, CU-2, CS-1, CS-2, CS-3, CS-4, CL-1, CL-2, CL-3, CL-4, CL-5, CL-6, CL-7, CL-8) ; 13 réussis / 1 échecs / 1 bloqués / 0 non jouables ; écriture autorisée, 38 soumission(s) ; exploration en jouant : 5 écran(s) découvert(s) (https://riad-connect-hub.lovable.app/book/atlas?checkIn=2026-11-10&checkOut=2026-11-12&adults=2&children=0, https://riad-connect-hub.lovable.app/book/majorelle?checkIn=2026-11-10&checkOut=2026-11-12&adults=2&children=0, https://riad-connect-hub.lovable.a
- Static analysis : not tested
Technical detail
code source non fourni (champ « URL du code source » du panneau) ou mode rapide
- Unit tests : not tested
Technical detail
code source non fourni (champ « URL du code source » du panneau) ou mode rapide
- Components : not tested
Technical detail
code source non fourni (champ « URL du code source » du panneau) ou mode rapide
- Another area : partial
Technical detail
Niveaux
6/13 exécutés, 3 partiels, 4 non testés (sur 13 niveaux du plan) ; demandés : 6/10 faits
- Another area : partial
Technical detail
À vérifier (sans constat)
1 point(s) non mesuré(s), sans constat : Accessibilité : contraste à vérifier à la main — fond non uni (image, dégradé, élément superposé ou transparence) : 18 sélecteur(s) sur 8 page(s) — .tracking-\[0\.25em\] : Element's background color could not be determined due to a background gradient — 1 page(s) : / ; h1 : Element's background color could not be determined due to a background gradient — 1 page(s) : / ; .max-w-xl : Element's background color could not be determined due to a bac
Test timings
- 6779 msplan du site (0 adresse(s) à visiter en plus)
- 11188 mscréation des comptes de recette (1/1 créé(s))
- 1813 msnavigation bureau p1 (chargement 547, réseau calme 1246, relevés 20)
- 5980 msa11y bureau p1
- 216 msfocus clavier bureau p1
- 1862 mscapture bureau p1
- 1151 msnavigation bureau p2 (chargement 440, réseau calme 691, relevés 20)
- 639 msa11y bureau p2
- 110 mscapture bureau p2
- 1359 msnavigation bureau p3 (chargement 566, réseau calme 782, relevés 11)
- 692 msa11y bureau p3
- 115 mscapture bureau p3
- 1206 msnavigation bureau p4 (chargement 551, réseau calme 644, relevés 11)
- 669 msa11y bureau p4
- 117 mscapture bureau p4
- 1147 msnavigation bureau p5 (chargement 454, réseau calme 670, relevés 23)
- 549 msa11y bureau p5
- 100 mscapture bureau p5
- 1109 msnavigation bureau p6 (chargement 402, réseau calme 691, relevés 16)
- 622 msa11y bureau p6
- 135 mscapture bureau p6
- 3075 msconnexion avec le compte de test (avalyz-test-gerante-143a7d4d@test.avalyz.com) (réussie)
- 1449 msnavigation bureau p1 (chargement 385, réseau calme 1042, relevés 22)
- 765 msa11y bureau p1
- 179 mscapture bureau p1
- 1427 msnavigation bureau p2 (chargement 431, réseau calme 979, relevés 17)
- 814 msa11y bureau p2
- 2198 mscapture bureau p2
- 1411 msnavigation bureau p3 (chargement 415, réseau calme 969, relevés 27)
- 1227 msa11y bureau p3
- 551 mscapture bureau p3
- 8294 msconnexion avec le compte de test (client) (réussie)
- 1461 msnavigation bureau p1 (chargement 422, réseau calme 994, relevés 45)
- 5656 msa11y bureau p1
- 119 mscapture bureau p1
- 1518 msnavigation bureau p2 (chargement 542, réseau calme 956, relevés 20)
- 825 msa11y bureau p2
- 1836 mscapture bureau p2
- 581 mssondes (robots.txt, pages inexistantes, paramètres, limites)
- 75 msliens (0 lien(s) vérifié(s) (plafond 50), 0 fil(s) réellement utilisé(s) sur 4, délai 8000 ms par lien, périmètre 4 ms, requêtes 0 ms, lien le plus lent 0 ms, 0 non vérifié(s) (délai ou réseau), 0 erreur(s) HTTP)
Reasoned GO / NO-GO decision
Technical detail
La recherche de disponibilités et ses bornes, la connexion, l'affichage des réservations et les contrôles de saisie de la page de réservation se comportent comme attendu (CN-1, CL-1 à CL-8, CS-2, CL-20 à CL-23). En revanche, le parcours de l'argent n'est pas démontré de bout en bout : le paiement de l'acompte n'a jamais pu être joué (CN-2, I1), le calcul RIAD10 reste non confirmé (CS-20, I3) et la gérante ne retrouve pas dans la Gestion les réservations confirmées du voyageur, défaut reproduit (C01, I4). La mise en service n'est envisageable qu'une fois ces points démontrés ou corrigés et les
Reasons (evidence)
- 17 cases pass out of 22 played; 1 fail; 1 inconclusive; 3 blocked.
- Failing cases: CU-2.
- Technical hygiene: 0 critical, 3 major, 17 minor finding(s).
Expert opinion
Decision: GO WITH CONDITIONS
Arguments
- see the technical detail (strong)
evidence : CN-1, CL-2, CL-3, CL-4, CL-5, CL-6, processus:VIS-02 - see the technical detail (strong)
evidence : #1 — Business journey fails — /admin, I4, CU-2, processus:ADM-01, https://riad-connect-hub.lovable.app/adm - see the technical detail (strong)
evidence : CN-2, I1, CS-21, I2, processus:CLI-03 - see the technical detail (medium)
evidence : CS-20, I3 - see the technical detail (medium)
evidence : CS-2, processus:CLI-04 - see the technical detail (medium)
evidence : CL-20, CL-21, CL-22, CL-23, I1 - see the technical detail (medium)
evidence : CL-1, CL-7, processus:CLI-01 - see the technical detail (medium)
evidence : M03, M01, M02, https://riad-connect-hub.lovable.app/aut - see the technical detail (weak)
evidence : CS-3, CS-4, CL-8
Residual risks
- see the technical detail
- see the technical detail
- see the technical detail
- see the technical detail
- see the technical detail
- see the technical detail
- see the technical detail
Conditions
- see the technical detail
- see the technical detail
- see the technical detail
- see the technical detail
- see the technical detail
- see the technical detail
Scope of the opinion
- tested : see the technical detail
- not tested : see the technical detail
Confidence: medium
Technical detail
Arguments: La recherche de disponibilités est conforme, y compris les bornes de dates (passé, départ avant arrivée, zéro nuit) et de capacité (4 et 5 adultes).
Arguments: US-2 est en défaut reproduit : les réservations confirmées du voyageur (DZ-2610-A646A) n'apparaissent pas sur la page Gestion de la gérante ; la cause (absence réelle ou filtre de période) reste à établir.
Arguments: Le paiement de l'acompte, cœur du parcours de l'argent, n'a jamais été joué : CN-2 est non jouable deux fois et aucune réservation payée n'a pu être vérifiée.
Arguments: La règle client RIAD10 n'est pas confirmée sur les montants : le total attendu est absent après application du code sur la Suite Koutoubia, résultat non concluant.
Arguments: Les montants affichés dans Mes réservations sont conformes aux règles de taxe et d'acompte.
Arguments: La page de réservation refuse un code promo inconnu, un nom manquant et un e-mail invalide ; le refus de double réservation (CL-21) est observé mais sa précondition n'est pas établie, CN-2 n'ayant pas payé.
Arguments: La connexion refuse un mauvais mot de passe et la Gestion comme Mes réservations restent fermées sans connexion.
Arguments: Les pages de connexion et de Gestion sont encadrables par un autre site et la Gestion présente des défauts d'accessibilité.
Arguments: La FAQ est cohérente avec les règles de promo, de taxe et d'annulation, la bascule anglaise fonctionne et l'avis est refusé sans séjour passé.
Residual risks: Encaissement de l'acompte et émission du numéro de réservation jamais observés (CN-2, I1) : un défaut sur le parcours de l'argent reste possible.
Residual risks: Calcul RIAD10 (remise sur l'hébergement seul, taxe non remisée) non confirmé (CS-20, I3).
Residual risks: Cause de C01 non établie : réservations absentes de la Gestion ou simple filtre de période.
Residual risks: Règle anti-double réservation non démontrée : CL-21 a réussi sans réservation préalable établie.
Residual risks: Annulation jusqu'à 48 h non testée (CS-1 bloqué).
Residual risks: Sécurité des données non testée (couverture:Securite des donnees).
Residual risks: Constats de moindre gravité omis du dossier (tronque) non examinés ici.
Conditions: Rejouer CN-2 avec un statut réussi : réservation Majorelle avec RIAD10, paiement simulé de l'acompte, total, acompte et numéro conformes à la règle du client (processus:CLI-03).
Conditions: Corriger ou expliquer C01 puis rejouer CU-2 avec succès : toute réservation confirmée du voyageur visible dans la Gestion (processus:ADM-01).
Conditions: Rejouer CS-20 avec succès : total après RIAD10 conforme à la remise sur l'hébergement seul.
Conditions: Après CN-2, rejouer CS-21 et CL-21 avec succès : réservation visible dans Mes réservations et dans la Gestion, seconde réservation des mêmes dates refusée.
Conditions: Couvrir processus:VIS-01 et processus:VIS-03 du parcours principal.
Conditions: Rendre /auth et /admin non encadrables (M03) et corriger M01 et M02.
tested: processus:VIS-02 Rechercher des disponibilités (CN-1, CL-2 à CL-6), processus:CLI-01 Se connecter et se déconnecter (CL-1), processus:CLI-02 Réserver une chambre, partiellement (CU-1 s'arrête au choix de la chambre ; CL-20 à CL-23 sur la page de réservation), processus:CLI-04 Consulter ses réservations (CS-2), processus:ADM-01 Retrouver la réservation au tableau de bord (CU-2, CL-7) : défaut C01, processus:VIS-05 Consulter la FAQ (CS-3), processus:VIS-06 Basculer le site en anglais (CS-4), processus:CLI-06 Laisser un avis, refus seulement (CL-8), couverture:Securite applicative, couverture:Per
not tested: processus:CLI-03 Payer l'acompte de 30 % (simulé) : CN-2 non jouable (I1), processus:VIS-01 Consulter les chambres et les prix, processus:VIS-03 Créer un compte, processus:CLI-05 Annuler une réservation : CS-1 bloqué, processus:VIS-04 Envoyer un message de contact, processus:ADM-02 Consulter le calendrier des réservations, processus:ADM-03 Bloquer des dates, processus:ADM-04 Gérer les chambres et les prix, processus:ADM-05 Lire les messages de contact, couverture:Securite des donnees
Avalyz proves what it saw, it does not guarantee the rest: what was not tested is not covered. Without a test account, signed-in pages are not explored; with a test account, signing in is the only form submitted.
The full account report (journeys, evidence, ISO 29119 format) is for accounts only.
8/8 pages
Exemple de rapport
Application fictive créée pour la démonstration : aucune donnée réelle. Ton rapport suivra la même structure.
Ce qui casse dans ton app
Riad Dar Zitoun
riad-connect-hub.lovable.app
Rapport de synthèse
Décision
Le site tient ses promesses sur la recherche de disponibilités, la connexion et l'affichage des réservations, mais le paiement de l'acompte n'a pas pu être vérifié de bout en bout et la gérante ne retrouve pas dans sa Gestion une réservation confirmée du voyageur. Avant la mise en service : corriger la Gestion, protéger les pages de connexion et démontrer le parcours de paiement.
Chiffres clés
À corriger d'abord
- #1MajeurUS-2 : réservation absente du tableau de bord de la gérante
La gérante doit voir chaque réservation confirmée pour préparer l'accueil et éviter une double vente : c'est le parcours qui fait entrer l'argent. - #2MajeurPages /auth et /admin encadrables (clickjacking)
Protège la connexion des voyageurs et de la gérante ; le même réglage d'en-têtes corrige aussi C10 et C19. - #3MineurEn-têtes CSP et Permissions-Policy absents
- #4RemarqueEn-tête Cross-Origin-Opener-Policy absent
- #5MajeurChamps de formulaire sans libellé
Rend les formulaires et la Gestion utilisables par tous ; le même travail corrige C02 et C17.
Prochaines étapes
- Établir la cause de C04 (réservation absente ou tableau limité à une période), corriger puis rejouer le scénario US-2.
- Rendre jouable et rejouer de bout en bout la réservation avec RIAD10 et le paiement simulé de l'acompte, en confirmant le calcul de la remise.
- Ajouter les en-têtes de sécurité chez l'hébergeur (C03, C10, C19) et publier security.txt (C20).
- Publier mentions légales et politique de confidentialité, puis trancher la question du consentement aux cookies.
Rapport détaillé
Notre compréhension du métier (à valider)
Précisions du client prises en compte (round 2)
- Business model : Le code promo RIAD10 donne -10 % sur l hebergement seulement ; la taxe de sejour (30 MAD par adulte et par nuit) n est jamais remisee ; l acompte de 30 % porte sur le total remise, taxe comprise.
- Organisation et profils : La gerante est la seule administratrice : elle gere le calendrier des reservations, les dates bloquees, les chambres et les prix, et lit les messages de contact. Le voyageur connecte voit ses reservations dans Mes reservations.
User stories ajoutées
- En tant que voyageur connecte, je veux reserver la chambre Majorelle 2 nuits pour 2 adultes avec le code RIAD10, afin de payer un acompte calcule sur le total remise.
- En tant que gerante, je veux retrouver dans mon tableau de bord la reservation que le voyageur vient de faire, afin de preparer son arrivee.
Concept
Riad Dar Zitoun vend en direct des nuitées dans ses 5 chambres de la Médina de Marrakech à des voyageurs, réservées en ligne avec un acompte de 30 % payé en ligne. Promesse : un riad paisible au cœur de la Médina, des prix clairs par nuit et une annulation possible jusqu'à 48 h avant l'arrivée.
Clients visés : Voyageurs (couples, familles, petits groupes jusqu'à 4 personnes par chambre) visitant Marrakech ; site FR avec bascule EN.
Chaîne de valeur
- AttirerVIS-01, VIS-05, VIS-06
- ConvertirVIS-02, VIS-03, CLI-01, CLI-02
- EncaisserCLI-03
- Délivrer le séjourCLI-04, ADM-01, ADM-02, ADM-03, ADM-04
- Servir et fidéliserCLI-05, CLI-06, VIS-04, ADM-05
Business model
| Segments de clients | Voyageurs, couples et petites familles (jusqu'à 4 personnes) visitant Marrakech, francophones et anglophones. |
|---|---|
| Proposition de valeur | Riad paisible au cœur de la Médina, 5 chambres de 750 à 1 800 MAD, annulation jusqu'à 48 h. |
| Canaux | Site web direct FR/EN : recherche de disponibilités, réservation en ligne, Mes réservations, contact, téléphone, e-mail. |
| Sources de revenus | Nuitées vendues par chambre, acompte 30 % en ligne (simulé), taxe de séjour 30 MAD/adulte/nuit. |
Organisation
- riad-connect-hub.lovable.app
- Espace public (accueil, disponibilités, avis, FAQ, contact)
- Visiteur VIS ★
- Espace voyageur « Mes réservations »
- Client voyageur connecté CLI ★
- Gestion (administration de la gérante)
- Gérante (seule administratrice) ADM ★
- Espace public (accueil, disponibilités, avis, FAQ, contact)
Tableau des fonctions
| Fonction (profil) | Mission | Principales responsabilités | Retenu pour les tests |
|---|---|---|---|
| Visiteur VIS | Découvrir le riad et vérifier les disponibilités avant de réserver. |
| ★ oui |
| Client voyageur connecté CLI | Réserver et suivre son séjour au riad en payant l'acompte en ligne. |
| ★ oui |
| Gérante (seule administratrice) ADM | Piloter les réservations, l'offre de chambres et l'accueil des voyageurs. |
| ★ oui |
Domaines
Métier
- Découverte de l'offre et disponibilités VIS-01, VIS-02, VIS-06
- Réservation et suivi des séjours CLI-02, CLI-04, CLI-05, ADM-01
- Gestion de l'offre (chambres, prix, calendrier, dates bloquées) ADM-02, ADM-03, ADM-04
Support
- Paiement de l'acompte CLI-03
- Comptes et accès VIS-03, CLI-01
- Relation client (avis, contact, FAQ) VIS-04, VIS-05, CLI-06, ADM-05
Cartographie des macro-processus et processus
| Macro-processus | Processus | Profil | Issues | Couverture |
|---|---|---|---|---|
| Faire découvrir le riad Métier · Découverte de l'offre et disponibilités | VIS-01 — Consulter les chambres et les prix | VIS | ✓ Chambres, capacités et prix affichés, ✗ Prix ou capacité différents de la description | non testé |
| VIS-02 — Rechercher des disponibilités | VIS | ✓ Chambres libres listées pour les dates, ✗ Date d'arrivée passée refusée, ✗ Départ non postérieur à l'arrivée refusé, ✗ Chambre réservée ou bloquée non proposée, ✗ Capacité dépassée : chambre non proposée | testé : conforme (CN-1, CL-2, CL-3, CL-4, CL-5, CL-6) | |
| VIS-06 — Basculer le site en anglais | VIS | ✓ Site affiché en anglais, ✗ Textes restés en français | testé : conforme (CS-4) | |
| Préparer l'accueil Métier · Réservation et suivi des séjours | ADM-01 — Retrouver la réservation au tableau de bord (US-2) | ADM | ✓ Réservation du voyageur affichée, montants justes, ✗ Réservation absente du tableau de bord, ✗ Total ou statut divergent de Mes réservations | testé : défaut (CU-2, CL-7) |
| Suivre ses séjours Métier · Réservation et suivi des séjours | CLI-04 — Consulter ses réservations | CLI | ✓ Réservation listée, statut Confirmée, montants justes, ✗ Réservation absente ou montants faux | testé : conforme (CS-2) |
| CLI-05 — Annuler une réservation | CLI | ✓ Réservation annulée, dates libérées, ✗ Annulation à moins de 48 h refusée | bloqué (CS-1) | |
| Vendre un séjour Métier · Réservation et suivi des séjours | CLI-02 — Réserver une chambre avec code promo (US-1) | CLI | ✓ Récapitulatif juste : hébergement remisé, taxe, total, ✗ Code promo invalide refusé, ✗ Dates chevauchant une réservation refusées, ✗ Capacité de la chambre dépassée refusée | testé : conforme (CU-1) |
| Gérer l'offre Métier · Gestion de l'offre (chambres, prix, calendrier, dates bloquées) | ADM-03 — Bloquer des dates | ADM | ✓ Dates bloquées non réservables, ✗ Blocage sur dates déjà réservées | non testé |
| ADM-04 — Gérer les chambres et les prix | ADM | ✓ Nouveau prix affiché et appliqué, ✗ Prix invalide refusé | non testé | |
| Préparer l'accueil Métier · Gestion de l'offre (chambres, prix, calendrier, dates bloquées) | ADM-02 — Consulter le calendrier des réservations | ADM | ✓ Occupation conforme aux réservations, ✗ Réservation manquante au calendrier | non testé |
| Vendre un séjour Support · Paiement de l'acompte | CLI-03 — Payer l'acompte de 30 % (simulé) | CLI | ✓ Acompte payé, numéro remis, statut Confirmée, ✗ Paiement simulé refusé, réservation non confirmée | non testé |
| Gérer les comptes Support · Comptes et accès | VIS-03 — Créer un compte | VIS | ✓ Compte créé puis confirmé par e-mail, ✗ Mot de passe trop court refusé, ✗ E-mail déjà utilisé refusé, ✗ E-mail de confirmation non reçu | non testé |
| CLI-01 — Se connecter et se déconnecter | CLI | ✓ Menu « Mes réservations » affiché, ✗ Identifiants erronés refusés, ✗ Voyageur voyant « Gestion » (accès indu) | testé : conforme (CL-1) | |
| Fidéliser les hôtes Support · Relation client (avis, contact, FAQ) | CLI-06 — Laisser un avis | CLI | ✓ Avis publié après un séjour passé, ✗ Avis refusé sans séjour passé | testé : conforme (CL-8) |
| Informer et assister Support · Relation client (avis, contact, FAQ) | VIS-04 — Envoyer un message de contact | VIS | ✓ Message envoyé et confirmé, ✗ Champ obligatoire vide refusé, ✗ E-mail invalide refusé | non testé |
| VIS-05 — Consulter la FAQ | VIS | ✓ Réponses cohérentes avec les règles, ✗ Réponse contredisant taxe, acompte ou annulation | testé : conforme (CS-3) | |
| ADM-05 — Lire les messages de contact | ADM | ✓ Message du formulaire Contact reçu, ✗ Message absent de la Gestion | non testé |
Règles de gestion clés par processus
| Processus | Règle de gestion | Source |
|---|---|---|
| VIS-01 — Consulter les chambres et les prix | RG-01 — Atlas : 900 MAD par nuit, 2 personnes | lue sur le site : « 900 MAD / nuit » |
| RG-02 — Majorelle : 1 200 MAD par nuit, 3 personnes | lue sur le site : « 1 200 MAD / nuit » | |
| RG-03 — Suite Koutoubia : 1 800 MAD par nuit, 4 personnes | lue sur le site : « 1 800 MAD / nuit » | |
| RG-04 — Palmeraie : 750 MAD par nuit, 2 personnes | lue sur le site : « 750 MAD / nuit » | |
| RG-05 — Menara : 1 000 MAD par nuit, 2 personnes | lue sur le site : « 1 000 MAD / nuit » | |
| VIS-02 — Rechercher des disponibilités | RG-12 — Une chambre ne peut pas être réservée deux fois sur des dates qui se chevauchent | lue sur le site : « une chambre ne peut pas etre reservee deux fois sur des dates qui se chevauchent » |
| RG-13 — Pas de réservation dans le passé | lue sur le site : « pas de reservation dans le passe » | |
| RG-14 — 1 nuit minimum | lue sur le site : « 1 nuit minimum » | |
| RG-15 — Recherche : 1 à 4 adultes et 0 à 3 enfants (limites du formulaire) | à confirmer | |
| RG-20 — La gérante bloque des dates, qui deviennent non réservables | lue sur le site : « blocage de dates » | |
| VIS-03 — Créer un compte | RG-17 — Inscription par e-mail et mot de passe avec e-mail de confirmation | lue sur le site : « inscription par e-mail + mot de passe avec e-mail de confirmation » |
| RG-18 — Mot de passe de 6 caractères minimum (limite du formulaire) | à confirmer | |
| VIS-04 — Envoyer un message de contact | RG-21 — Contact : nom (100 car.), e-mail et message (2 000 car.) obligatoires, sujet facultatif (150 car.) | à confirmer |
| VIS-05 — Consulter la FAQ | RG-06 — Taxe de séjour : 30 MAD par adulte et par nuit, jamais remisée | lue sur le site : « la taxe de sejour (30 MAD par adulte et par nuit) n est jamais remisee » |
| RG-07 — Code RIAD10 : -10 % sur l'hébergement seulement (US-1 : Majorelle 2 nuits 2 adultes = 2 400 - 240 + 120 = 2 280 MAD) | lue sur le site : « Le code promo RIAD10 donne -10 % sur l hebergement seulement » | |
| RG-08 — Acompte de 30 % du total remisé, taxe comprise, payé en ligne (US-1 : 684 MAD) | lue sur le site : « l acompte de 30 % porte sur le total remise, taxe comprise » | |
| RG-11 — Annulation possible jusqu'à 48 h avant l'arrivée | lue sur le site : « Annulation possible jusqu'à 48 h avant l'arrivée. » | |
| VIS-06 — Basculer le site en anglais | RG-22 — Site en français avec bascule EN | lue sur le site : « FR avec bascule EN » |
| CLI-01 — Se connecter et se déconnecter | RG-19 — La gérante est la seule administratrice : seule elle accède à la Gestion | lue sur le site : « La gerante est la seule administratrice » |
| CLI-02 — Réserver une chambre avec code promo (US-1) | RG-02 — Majorelle : 1 200 MAD par nuit, 3 personnes | lue sur le site : « 1 200 MAD / nuit » |
| RG-06 — Taxe de séjour : 30 MAD par adulte et par nuit, jamais remisée | lue sur le site : « la taxe de sejour (30 MAD par adulte et par nuit) n est jamais remisee » | |
| RG-07 — Code RIAD10 : -10 % sur l'hébergement seulement (US-1 : Majorelle 2 nuits 2 adultes = 2 400 - 240 + 120 = 2 280 MAD) | lue sur le site : « Le code promo RIAD10 donne -10 % sur l hebergement seulement » | |
| RG-08 — Acompte de 30 % du total remisé, taxe comprise, payé en ligne (US-1 : 684 MAD) | lue sur le site : « l acompte de 30 % porte sur le total remise, taxe comprise » | |
| RG-12 — Une chambre ne peut pas être réservée deux fois sur des dates qui se chevauchent | lue sur le site : « une chambre ne peut pas etre reservee deux fois sur des dates qui se chevauchent » | |
| RG-14 — 1 nuit minimum | lue sur le site : « 1 nuit minimum » | |
| CLI-03 — Payer l'acompte de 30 % (simulé) | RG-08 — Acompte de 30 % du total remisé, taxe comprise, payé en ligne (US-1 : 684 MAD) | lue sur le site : « l acompte de 30 % porte sur le total remise, taxe comprise » |
| RG-09 — Paiement simulé, jamais réel | lue sur le site : « paiement SIMULE, jamais reel » | |
| RG-10 — Un numéro de réservation est remis après le paiement de l'acompte | lue sur le site : « numero de reservation » | |
| CLI-04 — Consulter ses réservations | RG-08 — Acompte de 30 % du total remisé, taxe comprise, payé en ligne (US-1 : 684 MAD) | lue sur le site : « l acompte de 30 % porte sur le total remise, taxe comprise » |
| RG-23 — Statuts de réservation visibles : Confirmée, Annulée | lue sur le site : « Confirmée » | |
| RG-25 — Le voyageur connecté voit ses réservations dans Mes réservations | lue sur le site : « Le voyageur connecte voit ses reservations dans Mes reservations » | |
| CLI-05 — Annuler une réservation | RG-11 — Annulation possible jusqu'à 48 h avant l'arrivée | lue sur le site : « Annulation possible jusqu'à 48 h avant l'arrivée. » |
| RG-23 — Statuts de réservation visibles : Confirmée, Annulée | lue sur le site : « Confirmée » | |
| CLI-06 — Laisser un avis | RG-16 — Seuls les hôtes ayant séjourné peuvent publier un avis | lue sur le site : « Seuls les hôtes ayant séjourné au riad peuvent publier un avis. » |
| ADM-01 — Retrouver la réservation au tableau de bord (US-2) | RG-08 — Acompte de 30 % du total remisé, taxe comprise, payé en ligne (US-1 : 684 MAD) | lue sur le site : « l acompte de 30 % porte sur le total remise, taxe comprise » |
| RG-19 — La gérante est la seule administratrice : seule elle accède à la Gestion | lue sur le site : « La gerante est la seule administratrice » | |
| RG-23 — Statuts de réservation visibles : Confirmée, Annulée | lue sur le site : « Confirmée » | |
| ADM-02 — Consulter le calendrier des réservations | RG-12 — Une chambre ne peut pas être réservée deux fois sur des dates qui se chevauchent | lue sur le site : « une chambre ne peut pas etre reservee deux fois sur des dates qui se chevauchent » |
| RG-19 — La gérante est la seule administratrice : seule elle accède à la Gestion | lue sur le site : « La gerante est la seule administratrice » | |
| ADM-03 — Bloquer des dates | RG-20 — La gérante bloque des dates, qui deviennent non réservables | lue sur le site : « blocage de dates » |
| RG-19 — La gérante est la seule administratrice : seule elle accède à la Gestion | lue sur le site : « La gerante est la seule administratrice » | |
| ADM-04 — Gérer les chambres et les prix | RG-01 — Atlas : 900 MAD par nuit, 2 personnes | lue sur le site : « 900 MAD / nuit » |
| RG-02 — Majorelle : 1 200 MAD par nuit, 3 personnes | lue sur le site : « 1 200 MAD / nuit » | |
| RG-03 — Suite Koutoubia : 1 800 MAD par nuit, 4 personnes | lue sur le site : « 1 800 MAD / nuit » | |
| RG-04 — Palmeraie : 750 MAD par nuit, 2 personnes | lue sur le site : « 750 MAD / nuit » | |
| RG-05 — Menara : 1 000 MAD par nuit, 2 personnes | lue sur le site : « 1 000 MAD / nuit » | |
| RG-19 — La gérante est la seule administratrice : seule elle accède à la Gestion | lue sur le site : « La gerante est la seule administratrice » | |
| ADM-05 — Lire les messages de contact | RG-19 — La gérante est la seule administratrice : seule elle accède à la Gestion | lue sur le site : « La gerante est la seule administratrice » |
| RG-21 — Contact : nom (100 car.), e-mail et message (2 000 car.) obligatoires, sujet facultatif (150 car.) | à confirmer | |
| — | RG-24 — Prix affichés en MAD, par chambre et par nuit | lue sur le site : « 750 MAD / nuit » |
Cahier de recette
| Réf. | User story | Résultat attendu | Résultat obtenu et preuves | Recommandation |
|---|---|---|---|---|
| CN-1 | En tant que Client voyageur connecté, je veux trouver une chambre libre pour mes dates, afin de réserver mon séjour au riad. VIS-02 · RG-02 · RG-12 · RG-13 · RG-14 | Connexion réussie ; la Majorelle est proposée pour 2 adultes du 10 au 12 novembre à 1 200 MAD la nuit. | Conforme Réponses du serveur
| Garder ce cas dans la recette de non-régression. |
| CU-1 | En tant que Client voyageur connecté, je veux réserver la Majorelle 2 nuits pour 2 adultes avec RIAD10, afin de payer un acompte calculé sur le total remisé. user story du client · CLI-02 · RG-02 · RG-06 · RG-07 · RG-08 | Récapitulatif : hébergement 2 400, remise RIAD10 -240, taxe 120, total 2 280 MAD ; acompte 684 MAD ; numéro de réservation affiché. | Conforme Réponses du serveur
| Garder ce cas dans la recette de non-régression. |
| CU-2 | En tant que Gérante (seule administratrice), je veux retrouver dans mon tableau de bord la réservation du voyageur, afin de préparer son arrivée. user story du client · ADM-01 · RG-19 · RG-23 | Le tableau de bord liste DZ-2610-A646A et DZ-2610-39268 (Atlas, 1 920 MAD) avec chambre, client, dates et statut. | Non conforme texte attendu absent : « DZ-2610-A646A » (page : « Riad Dar Zitoun Accueil Disponibilités Avis FAQ Contact Mes réservations Gestion EN Déconnexion Tableau de bord Calendrier Dates bloquées Chambres & prix Messag ») Réponses du serveur
Hygiène des pages liées : #2, #5, #6, #7, #12, #18 Constat : #1 | Gravité S2 : un cas secondaire ou limite important du métier ne se comporte pas comme promis. Rejouer les étapes avec le compte de test, corriger, relancer la recette. |
| CS-1 | En tant que Client voyageur connecté, je veux annuler une réservation plus de 48 h avant l'arrivée, afin de libérer mes dates sans litige. CLI-05 · RG-11 · RG-23 | La réservation passe au statut Annulée ; ses dates redeviennent réservables. | Bloqué « Annuler » : paiement, suppression ou annulation, jamais cliqué Réponses du serveur
| Lever le blocage (« Annuler » : paiement, suppression ou annulation, jamais cliqué), puis rejouer. |
| CS-2 | En tant que Client voyageur connecté, je veux voir un total et un acompte justes dans Mes réservations, afin de payer le bon montant. CLI-04 · RG-01 · RG-06 · RG-08 | Atlas 2 nuits 2 adultes : 1 800 + taxe 120 = 1 920 MAD ; acompte 30 % = 576 MAD. | Conforme Réponses du serveur
| Garder ce cas dans la recette de non-régression. |
| CS-3 | En tant que Visiteur, je veux lire dans la FAQ les règles de promo, de taxe et d'annulation, afin de réserver en confiance. VIS-05 · RG-06 · RG-07 · RG-11 | Les réponses citent RIAD10, la taxe de 30 MAD et l'annulation jusqu'à 48 h, sans contradiction. | Conforme Hygiène des pages liées : #20 | Garder ce cas dans la recette de non-régression. |
| CS-4 | En tant que Visiteur, je veux afficher le site en anglais, afin de comprendre l'offre sans parler français. VIS-06 · RG-22 | Les libellés passent en anglais ; les chambres restent affichées. | Conforme Hygiène des pages liées : #3, #4, #8, #9, #10, #11, #13, #14, #15, #16 | Garder ce cas dans la recette de non-régression. |
| CL-1 | En tant que Client voyageur connecté, je veux être refusé avec un mauvais mot de passe, afin que personne n'accède à mes réservations. CLI-01 · RG-17 | Connexion refusée avec un message d'erreur ; aucun accès à Mes réservations. | Conforme Réponses du serveur
| Garder ce cas dans la recette de non-régression. |
| CL-2 | En tant que Visiteur, je veux être empêché de chercher une arrivée passée, afin de ne pas réserver une date impossible. VIS-02 · RG-13 | Date passée refusée ; aucune chambre proposée. | Conforme Hygiène des pages liées : aucun constat technique sur ces pages | Garder ce cas dans la recette de non-régression. |
| CL-3 | En tant que Visiteur, je veux être alerté si mon départ précède mon arrivée, afin de corriger mes dates. VIS-02 · RG-14 | Dates incohérentes refusées ; aucune chambre proposée. | Conforme Hygiène des pages liées : aucun constat technique sur ces pages | Garder ce cas dans la recette de non-régression. |
| CL-4 | En tant que Visiteur, je veux être empêché de réserver zéro nuit, afin de respecter le minimum d'une nuit. VIS-02 · RG-14 | Séjour de zéro nuit refusé ; aucune chambre proposée. | Conforme Hygiène des pages liées : aucun constat technique sur ces pages | Garder ce cas dans la recette de non-régression. |
| CL-5 | En tant que Visiteur, je veux ne voir que les chambres assez grandes pour 4 adultes, afin de réserver une chambre adaptée. VIS-02 · RG-02 · RG-03 · RG-15 | Seule la Suite Koutoubia (4 pers.) est proposée. | Conforme Réponses du serveur
Hygiène des pages liées : aucun constat technique sur ces pages | Garder ce cas dans la recette de non-régression. |
| CL-6 | En tant que Visiteur, je veux être bloqué au-delà de 4 adultes, afin de ne pas réserver une capacité inexistante. VIS-02 · RG-15 | Saisie refusée ; aucune chambre proposée pour 5 adultes. | Conforme Hygiène des pages liées : aucun constat technique sur ces pages | Garder ce cas dans la recette de non-régression. |
| CL-7 | En tant que Gérante (seule administratrice), je veux que la Gestion soit fermée aux visiteurs, afin de protéger les réservations et les clients. ADM-01 · RG-19 · RG-25 | Sans connexion, ni la Gestion ni les réservations ne s'affichent. | Conforme | Garder ce cas dans la recette de non-régression. |
| CL-8 | En tant que Client voyageur connecté, je veux être empêché de publier un avis sans séjour passé, afin que les avis restent authentiques. CLI-06 · RG-16 | Le compte sans séjour passé ne peut pas publier ; la règle est rappelée. | Conforme Réponses du serveur
| Garder ce cas dans la recette de non-régression. |
| CN-2 | En tant que Client voyageur connecté, je veux réserver la Majorelle 2 nuits avec RIAD10 et payer l'acompte, afin de confirmer mon séjour. CLI-03 · RG-02 · RG-06 · RG-07 · RG-08 · RG-09 | Total 2 280 MAD après RIAD10, acompte de 684 MAD payé (simulé), réservation confirmée avec numéro. | Non jouable non joué : élément introuvable : input >> nth=0 — à confirmer Hygiène des pages liées : aucun constat technique sur ces pages | Lever le blocage (non joué : élément introuvable : input >> nth=0 — à confirmer), puis rejouer. |
| CS-20 | En tant que Client voyageur connecté, je veux appliquer RIAD10 à la Suite Koutoubia, afin de payer un acompte juste sur le total remisé. CLI-02 · RG-03 · RG-06 · RG-07 · RG-08 | Total 3 360 MAD, acompte 1 008 MAD, solde 2 352 MAD ; la taxe de 120 MAD n'est pas remisée. | Non jouable non joué : élément introuvable : input[placeholder="RIAD10"] — à confirmer Hygiène des pages liées : aucun constat technique sur ces pages | Lever le blocage (non joué : élément introuvable : input[placeholder="RIAD10"] — à confirmer), puis rejouer. |
| CS-21 | En tant que Gérante (seule administratrice), je veux retrouver la réservation Majorelle que le voyageur vient de payer, afin de préparer son arrivée. ADM-01 · RG-08 · RG-19 · RG-23 · RG-25 | Mes réservations affiche 2 280 MAD et 684 MAD ; la Gestion liste la réservation Majorelle du 2026-11-10. | Non concluant — à confirmer texte attendu absent : « Total: 2 280 MAD » (page : « Riad Dar Zitoun Accueil Disponibilités Avis FAQ Contact EN Connexion Connexion E-mail Mot de passe ConnexionPas encore de compte ? Créer un compte Riad Dar Zito ») | Faire confirmer l'attendu par le métier, puis rejouer. |
| CL-20 | En tant que Client voyageur connecté, je veux qu'un code promo inconnu soit refusé, afin de payer le prix juste. CLI-02 · RG-04 · RG-07 | Code refusé ; total 1 620 MAD et acompte 486 MAD inchangés. | Conforme Réponses du serveur
Hygiène des pages liées : aucun constat technique sur ces pages | Garder ce cas dans la recette de non-régression. |
| CL-21 | En tant que Client voyageur connecté, je veux être empêché de réserver une chambre déjà prise, afin d'éviter un surbooking. CLI-02 · RG-12 | Réservation refusée : chambre indisponible sur ces dates, aucun numéro émis. | Conforme paiement en mode test (prestataire : simulation) Réponses du serveur
Hygiène des pages liées : aucun constat technique sur ces pages | Garder ce cas dans la recette de non-régression. |
| CL-22 | En tant que Client voyageur connecté, je veux être bloqué si le nom complet manque, afin que la gérante sache qui accueillir. CLI-03 · RG-08 | Paiement bloqué, champ Nom complet signalé ; aucune réservation créée. | Conforme paiement en mode test (prestataire : simulation) Réponses du serveur
Hygiène des pages liées : aucun constat technique sur ces pages | Garder ce cas dans la recette de non-régression. |
| CL-23 | En tant que Client voyageur connecté, je veux être alerté si mon e-mail est invalide, afin de recevoir ma confirmation. CLI-03 · RG-08 | Paiement bloqué, format d'e-mail signalé ; aucune réservation créée. | Conforme paiement en mode test (prestataire : simulation) Réponses du serveur
Hygiène des pages liées : aucun constat technique sur ces pages | Garder ce cas dans la recette de non-régression. |
Hygiène technique
Recette du site du Riad Dar Zitoun : avis GO SOUS CONDITIONS
Le site tient ses promesses sur la recherche de disponibilités, la connexion et l'affichage des réservations, mais le paiement de l'acompte n'a pas pu être vérifié de bout en bout et la gérante ne retrouve pas dans sa Gestion une réservation confirmée du voyageur. Avant la mise en service : corriger la Gestion, protéger les pages de connexion et démontrer le parcours de paiement.
20 problèmes trouvés, dont 3 à corriger d'abord.
À corriger en premier
- Une cause → un correctifEn-têtes de sécurité non envoyés par l'hébergeur
Cause : La configuration de l'hébergeur n'envoie pas les en-têtes de sécurité standard.
Correctif unique : Déclarer en une fois dans la configuration de l'hébergeur : Content-Security-Policy avec frame-ancestors 'none', X-Frame-Options: DENY, Permissions-Policy et Cross-Origin-Opener-Policy.
- #2MajeurPages /auth et /admin encadrables (clickjacking) (Chromium (moteur de Chrome))
Pourquoi d'abord : Protège la connexion des voyageurs et de la gérante ; le même réglage d'en-têtes corrige aussi C10 et C19. Effort : faible
Page : https://riad-connect-hub.lovable.app/auth
Attendu : Ces pages refusent d'être affichées dans un cadre étranger
Constaté : Encadrables : /admin; /auth
Correction conseillée : Envoyer Content-Security-Policy: frame-ancestors 'none' (et X-Frame-Options: DENY).
Détail technique
Titre d'origine : Pages de connexion affichables dans un autre site (clickjacking)
- #3MineurEn-têtes CSP et Permissions-Policy absents (ordinateur · Chromium (moteur de Chrome))
Page : https://riad-connect-hub.lovable.app/
Attendu : En-têtes de sécurité présents
Constaté : Manquants : Content-Security-Policy, Permissions-Policy
Correction conseillée : Les ajouter dans la configuration de l'hébergeur (fichier _headers Netlify, vercel.json...).
Détail technique
Titre d'origine : En-têtes de sécurité absents sur riad-connect-hub.lovable.app
- #4RemarqueEn-tête Cross-Origin-Opener-Policy absent (Chromium (moteur de Chrome))
Page : https://riad-connect-hub.lovable.app/
Attendu : Cross-Origin-Opener-Policy: same-origin (ou same-origin-allow-popups si des fenêtres de paiement/connexion sont utilisées)
Constaté : Cross-Origin-Opener-Policy: absent
Correction conseillée : Ajouter Cross-Origin-Opener-Policy: same-origin-allow-popups, puis same-origin si aucun parcours n'en souffre.
Détail technique
Titre d'origine : Cross-Origin-Opener-Policy absente : une fenêtre ouverte par un autre site garde un lien vers la vôtre
- Une cause → un correctifÉléments d'interface sans nom accessible
Cause : Des composants sont posés sans libellé ni texte lisible par les lecteurs d'écran.
Correctif unique : Associer un libellé à chaque champ, un aria-label au bouton icône et un texte à la colonne d'en-tête vide.
- #5MajeurChamps de formulaire sans libellé (Chromium (moteur de Chrome))
Pourquoi d'abord : Rend les formulaires et la Gestion utilisables par tous ; le même travail corrige C02 et C17. Effort : faible
Page : https://riad-connect-hub.lovable.app/admin
Attendu : Conforme WCAG 2.2 AA — WCAG 2.2 : 4.1.2 Nom, rôle et valeur (A), 1.3.1 Information et relations (A) · RGAA 4.1 : 11.1 Champ de formulaire avec étiquette
Correction conseillée : axe-core (moteur de référence) : corriger chaque élément cité.
Détail technique
Titre d'origine : Accessibilité : champ-sans-libelle (label) (3 occurrence(s) sur 2 page(s)) — ordinateur, téléphone
Constaté : input[maxlength="100"] Form elements must have labels; input Form elements must have labels; input[maxlength="100"] Form elements must have labels
- #6MajeurBouton sans nom accessible dans la Gestion (Chromium (moteur de Chrome))
Page : https://riad-connect-hub.lovable.app/admin
Attendu : Conforme WCAG 2.2 AA — WCAG 2.2 : 4.1.2 Nom, rôle et valeur (A) · RGAA 4.1 : 11.9 Intitulé de bouton pertinent
Correction conseillée : axe-core (moteur de référence) : corriger chaque élément cité.
Détail technique
Titre d'origine : Accessibilité : nom-accessible (button-name) (1 occurrence(s) sur 1 page(s))
Constaté : .bg-background.w-9.\[\&_svg\]\:pointer-events-none:nth-child(1) Buttons must have discernible text
- #7RemarqueEn-tête de tableau vide dans la Gestion (Chromium (moteur de Chrome))
Page : https://riad-connect-hub.lovable.app/admin
Attendu : Conforme WCAG 2.2 AA — bonne pratique (aucun critère WCAG 2.2 ni RGAA 4.1 directement visé)
Correction conseillée : axe-core (moteur de référence) : corriger chaque élément cité.
Détail technique
Titre d'origine : Accessibilité : empty-table-header (1 occurrence(s) sur 1 page(s))
Constaté : thead > tr > .p-3:nth-child(7) Table header text should not be empty
- Une cause → un correctifPages légales absentes
Cause : Le site n'a pas encore de pages légales.
Correctif unique : Publier mentions légales et politique de confidentialité, liées depuis le pied de page.
- #8MineurPas de politique de confidentialité (Chromium (moteur de Chrome))
Pourquoi d'abord : Le site gère des comptes et des réservations : l'information légale est une obligation et un gage de confiance ; couvre aussi C16. Effort : faible
Page : https://riad-connect-hub.lovable.app/
Attendu : Un lien vers la politique de confidentialité (RGPD / loi 09-08)
Constaté : Aucun lien ni texte « confidentialité / privacy / données personnelles » trouvé sur l'accueil.
Correction conseillée : Publier une politique de confidentialité et la lier depuis le pied de page.
Détail technique
Titre d'origine : Pas de lien vers la politique de confidentialité
- #9MineurPas de mentions légales (Chromium (moteur de Chrome))
Page : https://riad-connect-hub.lovable.app/
Attendu : Des mentions légales (éditeur, hébergeur, contact)
Constaté : Aucun lien « mentions légales / CGU / CGV / legal » trouvé sur l'accueil.
Correction conseillée : Ajouter une page de mentions légales liée depuis le pied de page.
- Une cause → un correctifImages non optimisées
Cause : L'image d'accueil (461 Ko) et une photo de chambre sont servies plus grandes que leur affichage.
Correctif unique : Convertir en WebP ou AVIF, redimensionner avec srcset et précharger l'image d'accueil.
- #10MineurImages trop lourdes pour leur taille d'affichage (Chromium (moteur de Chrome))
Pourquoi d'abord : L'image d'accueil alourdit le premier affichage sur téléphone ; correctif simple qui couvre aussi C12. Effort : faible
Page : https://riad-connect-hub.lovable.app/
Attendu : Images < 300 Ko, dimensionnées pour l'affichage
Constaté : ttps://riad-connect-hub.lovable.app/assets/hero-O0-s_7b9.jpg : 461 Ko, 1920 px affichés en 1440 px; /riad-connect-hub.lovable.app/assets/room-atlas-DfmmbZJQ.jpg : 187 Ko, 1200 px affichés en 192 px
Correction conseillée : SVG ou WebP pour le logo ; images responsives (srcset, AVIF/WebP) ; préchargement de l'image principale.
Détail technique
Titre d'origine : 2 image(s) trop lourde(s) pour leur taille d'affichage
- #11MineurImage d'accueil de 462 Ko (Chromium (moteur de Chrome))
Page : https://riad-connect-hub.lovable.app/
Attendu : Chaque fichier ≤ 300 Ko transférés
Constaté : https://riad-connect-hub.lovable.app/assets/hero-O0-s_7b9.jpg (image/jpeg) : 462 Ko
Correction conseillée : Convertir en WebP ou AVIF, redimensionner à la taille d'affichage (srcset), viser moins de 200 Ko par image ; charger en différé celles qui sont sous la ligne de flottaison.
Détail technique
Titre d'origine : Images lourdes : 1 fichier(s) au-dessus de 300 Ko
Le reste
- #12MineurContraste insuffisant dans la Gestion (Chromium (moteur de Chrome))
Page : https://riad-connect-hub.lovable.app/admin
Attendu : Conforme WCAG 2.2 AA — WCAG 2.2 : 1.4.3 Contraste (minimum) (AA) · RGAA 4.1 : 3.2 Contraste du texte
Constaté : .p-3:nth-child(3) > .text-xs : ratio 2,12:1 (texte #b9ada6 sur fond #fffbf6), cible 4,5:1 — 1 page(s) : /admin ; .font-semibold.p-3 : ratio 3,17:1 (texte #978c86 sur fond #fffbf6), cible 4,5:1 — 1 page(s) : /admin ; .opacity-50 > .p-3:nth-child(2) : ratio 3,17:1 (texte #978c86 sur fond #fffbf6), cible 4,5:1 — 1 page(s) : /admin ; .opacity-50 > .p-3:nth-child(3) : ratio 3,17:1 (texte #978c86 sur fond #fffbf6), cible 4,5:1 — 1 page(s) : /admin ; .opacity-50 > .p-3:nth-child(4) : ratio 3,17:1 (texte #978c86 sur fond #fffbf6), cible 4,5:1 — 1 page(s) : /admin ; .opacity-50 > .p-3:nth-child(5) : ra
Correction conseillée : Une règle CSS par sélecteur cité : foncer le texte ou éclaircir le fond jusqu'à la cible (4,5:1 ; 3:1 pour un texte d'au moins 24 px, ou 18,66 px en gras).
Détail technique
Titre d'origine : Accessibilité : contraste (color-contrast) (1 occurrence(s) sur 1 page(s)) — 8 sélecteur(s)
- Une cause → un correctifConsentement aux cookies
Cause : Aucun dispositif n'encadre les cookies déposés à l'arrivée sur le site.
Correctif unique : Vérifier si __cf_bm est strictement nécessaire (probablement un cookie de sécurité du fournisseur) ; sinon, bloquer les cookies non essentiels jusqu'à l'accord via un bandeau de consentement.
- #13MineurAucun bandeau de consentement aux cookies (Chromium (moteur de Chrome))
Page : https://riad-connect-hub.lovable.app/
Attendu : Un bandeau qui demande l'accord (accepter / refuser / personnaliser)
Constaté : Ni outil de consentement connu, ni texte « cookies » avec un bouton d'acceptation, alors que des traceurs ou cookies de mesure sont présents.
Correction conseillée : Le RGPD et la directive « ePrivacy » (en France, les règles de la CNIL ; au Maroc, la loi 09-08 et la CNDP) demandent l'accord du visiteur AVANT de déposer un cookie ou d'appeler un service qui sert à mesurer l'audience ou à faire de la publicité. Les cookies strictement nécessaires (session, panier, langue) n'ont pas besoin d'accord. Installez un outil de gestion du consentement et bloquez les traceurs tant que le visiteur n'a pas choisi.
Détail technique
Titre d'origine : Aucun bandeau de consentement aux cookies détecté sur riad-connect-hub.lovable.app
- #14MineurCookie tiers déposé avant consentement (Chromium (moteur de Chrome))
Page : https://riad-connect-hub.lovable.app/
Attendu : Seuls des cookies techniques (session, panier, langue) avant l'accord
Constaté : Déposés sans accord : __cf_bm (supabase.co, tiers)
Correction conseillée : Le RGPD et la directive « ePrivacy » (en France, les règles de la CNIL ; au Maroc, la loi 09-08 et la CNDP) demandent l'accord du visiteur AVANT de déposer un cookie ou d'appeler un service qui sert à mesurer l'audience ou à faire de la publicité. Les cookies strictement nécessaires (session, panier, langue) n'ont pas besoin d'accord. Déposez ces cookies seulement après l'accord, et proposez « Refuser » aussi simplement que « Accepter ».
Détail technique
Titre d'origine : Cookies de mesure ou de publicité déposés avant tout consentement sur riad-connect-hub.lovable.app
- Une cause → un correctifPremier affichage lent sur téléphone
Cause : Probablement le poids cumulé de l'image d'accueil et du fichier JavaScript unique de 574 Ko.
Correctif unique : Découper et différer le JavaScript, puis remesurer sur téléphone après l'optimisation des images.
- #15MineurAccueil lent sur téléphone (6 252 ms) (téléphone · Chromium (moteur de Chrome))
Page : https://riad-connect-hub.lovable.app/
Attendu : Chargement < 3000 ms
Constaté : / 6252 ms
Correction conseillée : Mesurer avec Lighthouse ; compresser les images, decouper le JavaScript, mettre en cache.
Détail technique
Titre d'origine : Chargement lent (6252 ms) : / — téléphone uniquement
- #16MineurLCP lent sur téléphone en réseau lent (non confirmé) (Chromium (moteur de Chrome))
Page : https://riad-connect-hub.lovable.app/
Attendu : LCP ≤ 4000 ms et chargement ≤ 10000 ms dans ces conditions (profil mobile de Lighthouse)
Constaté : LCP 4600 ms, chargement 4562 ms (2 mesure(s), non confirmé)
Correction conseillée : Alléger d'abord l'élément principal affiché (image ou titre) : image compressée et préchargée (rel=preload), CSS critique en ligne, JavaScript différé ; servir les fichiers depuis un CDN proche des visiteurs.
Détail technique
Titre d'origine : Lent sur téléphone en réseau lent : LCP 4600 ms, chargement 4562 ms (non confirmé)
- #17MineurFichier JavaScript de 574 Ko (Chromium (moteur de Chrome))
Page : https://riad-connect-hub.lovable.app/
Attendu : Chaque fichier ≤ 500 Ko transférés
Constaté : https://riad-connect-hub.lovable.app/assets/index-BYEaChBb.js (text/javascript) : 574 Ko décompressés (167 Ko transférés)
Correction conseillée : Découper le JavaScript par page (code splitting), retirer les bibliothèques inutilisées (tree shaking), minifier et compresser (brotli) ; différer les scripts non essentiels (defer/async).
Détail technique
Titre d'origine : Fichiers JavaScript lourds : 1 fichier(s) au-dessus de 500 Ko
- #18MineurPage de connexion indexable par les moteurs (Chromium (moteur de Chrome))
Page : https://riad-connect-hub.lovable.app/auth
Attendu : noindex et Disallow sur les espaces privés
Constaté : Indexables : /auth ; robots.txt : User-agent: Googlebot Allow: / User-agent: Bingbot Allow: / User-agent: Twitterbot Allow: / User-agent: facebookexter
Correction conseillée : Ajouter <meta name=robots content=noindex> et Disallow: /admin, /vendeur (ou équivalents).
Détail technique
Titre d'origine : Pages de connexion ouvertes aux moteurs de recherche
- #19RemarqueFichier security.txt absent (Chromium (moteur de Chrome))
Page : https://riad-connect-hub.lovable.app/.well-known/security.txt
Attendu : Un fichier security.txt indiquant comment signaler une faille (RFC 9116)
Constaté : HTTP 404
Correction conseillée : Ajouter /.well-known/security.txt avec un contact de sécurité.
Détail technique
Titre d'origine : Pas de /.well-known/security.txt
- #20RemarqueOrdre des titres irrégulier dans la FAQ (Chromium (moteur de Chrome))
Page : https://riad-connect-hub.lovable.app/faq
Attendu : Conforme WCAG 2.2 AA — RGAA 4.1 : 9.1 Hiérarchie des titres
Correction conseillée : axe-core (moteur de référence) : corriger chaque élément cité.
Détail technique
Titre d'origine : Accessibilité : ordre-titres (heading-order) (2 occurrence(s) sur 1 page(s)) — ordinateur, téléphone
Constaté : .border-b:nth-child(1) > h3 Heading levels should only increase by one; .border-b:nth-child(1) > h3 Heading levels should only increase by one
- #21RemarqueAdresses canoniques manquantes (Chromium (moteur de Chrome))
Page : https://riad-connect-hub.lovable.app/
Attendu : Canonical propre à chaque langue, og:image, titres distincts
Constaté : sans canonical : /; /auth; /contact; /faq (+3)
Correction conseillée : Canonical auto-référent par langue, og:image/og:title partout, titre et canonical sur chaque page.
Détail technique
Titre d'origine : Référencement : 1 problème(s) sur riad-connect-hub.lovable.app
Par thème
- Sécurité des pages de connexion et de la Gestion — Une page de connexion encadrable permet de piéger les clics ou les identifiants des voyageurs et de la gérante.
Les pages /auth et /admin peuvent être affichées à l'intérieur d'un autre site (C03), plusieurs en-têtes de sécurité manquent (C10, C19) et aucun contact de sécurité n'est publié (C20). #2, #3, #4, #19 - Accessibilité des formulaires et de la Gestion — Un voyageur ou une gérante qui utilise un lecteur d'écran ne peut pas remplir ces formulaires ni lire le tableau des réservations.
Champs sans libellé, bouton sans nom et en-tête de tableau vide, surtout dans la Gestion ; contraste insuffisant sur /admin et ordre des titres irrégulier sur /faq. #5, #6, #7, #12, #20 - Conformité et données personnelles — Le site gère des comptes et des réservations de voyageurs : la loi 09-08 et le RGPD imposent information et, le cas échéant, consentement.
Ni mentions légales ni politique de confidentialité ne sont liées depuis l'accueil, et aucun bandeau de consentement n'est affiché alors qu'un cookie tiers (__cf_bm, supabase.co) est déposé. #8, #9, #13, #14 - Vitesse d'affichage sur téléphone — Une page d'accueil lente fait perdre des visiteurs avant même la recherche de disponibilités.
L'accueil est lent sur téléphone (C08 : 6 252 ms ; C13 : LCP 4 600 ms, non confirmé), avec des images lourdes (C05, C12) et un JavaScript de 574 Ko (C11). #10, #11, #15, #16, #17 - Référencement — Indexer /auth n'apporte aucun client et expose la porte d'entrée de la Gestion ; les canoniques évitent de disperser le référencement.
La page de connexion est indexable par les moteurs (C14) et plusieurs pages n'ont pas d'adresse canonique (C21). #18, #21
Prochaines étapes
- Établir la cause de C04 (réservation absente ou tableau limité à une période), corriger puis rejouer le scénario US-2.
- Rendre jouable et rejouer de bout en bout la réservation avec RIAD10 et le paiement simulé de l'acompte, en confirmant le calcul de la remise.
- Ajouter les en-têtes de sécurité chez l'hébergeur (C03, C10, C19) et publier security.txt (C20).
- Publier mentions légales et politique de confidentialité, puis trancher la question du consentement aux cookies.
- Optimiser les images et découper le JavaScript, puis remesurer sur téléphone.
- Relancer une recette complète après corrections, en couvrant aussi l'annulation et les écrans de la gérante.
Limites de couverture
- Accessibilite : partiel — axe-core sur chaque page (bureau et téléphone) + focus clavier ; critères WCAG 2.2 et RGAA 4.1 cités dans les constats ; compléments navigateur : 8 page(s) (8 pages lues sur 8 visitées (mode complet)), contraste mesuré sur 16 texte(s) (clair, et sombre sur 8 page(s)), 320 tabulation(s) (135 élément(s) vérifiés pour le focus visible, 0 fenêtre(s) modale(s) cachée(s) parcourue(s) sans clic, 0 piège(s)), noms accessibles vérifiés sur 8 page(s), 0 PDF lié(s) non audité(s)
- Regression visuelle : non testé — Aucune reference approuvee : approuve un passage comme reference.
- Parcours par rôle : partiel — 3 pages, 57 actions relevées, 0 action jouée (lecture seule) — rôle « avalyz-test-gerante-143a7d4d@test.avalyz.com » ; 1 autre(s) rôle(s) : voir les lignes « Profil »
- Logique metier : partiel — logique métier décrite par le client jouée par les scénarios métier (voir la ligne « Scénarios métier ») ; aucune idée « Depuis ton idée » à rapprocher
- API / integration : partiel — pas de spécification OpenAPI trouvée (/openapi.json, /swagger.json, /api-docs, /api/openapi.json…) ; sondes GET : /api → 406, /api/health → 406, /graphql → 406 — importe le contrat de l'API pour des cas par opération ; spec reconstituée depuis le navigateur (7 page(s) — 7 pages lues sur 8 visitées (mode complet), 9 appel(s) observé(s), aucune requête ajoutée) : 1 point(s) d'entrée — POST /__l5e/trackevents [?] ; 0 constat(s)
- Securite des donnees : non testé — aucune base détectée (Supabase : clé anon dans la page ; Firebase : apiKey + databaseURL) — le contrôle RLS demande un accès à la base ou une clé publique visible
- Scénarios métier : partiel — 15 cas conçus (1 nominal, 6 secondaires, 8 limites) ; joués : 15 (mode complet : CN-1, CU-1, CU-2, CS-1, CS-2, CS-3, CS-4, CL-1, CL-2, CL-3, CL-4, CL-5, CL-6, CL-7, CL-8) ; 13 réussis / 1 échecs / 1 bloqués / 0 non jouables ; écriture autorisée, 38 soumission(s) ; exploration en jouant : 5 écran(s) découvert(s) (https://riad-connect-hub.lovable.app/book/atlas?checkIn=2026-11-10&checkOut=2026-11-12&adults=2&children=0, https://riad-connect-hub.lovable.app/book/majorelle?checkIn=2026-11-10&checkOut=2026-11-12&adults=2&children=0, https://riad-connect-hub.lovable.app/book/koutoubia?checkIn=2026-11-10&checkOut=2026-11-12&adults=2&children=0, https://riad-connect-hub.lovable.app/book/palmeraie?checkIn=2026-11-10&checkOut=2026-11-12&adults=2&children=0) → complément de 7 cas (CN-2, CS-20, CS-21, CL-20, CL-21, CL-22, CL-23) : 4 réussis / 0 échecs / 0 bloqués / 2
- Statique : non testé — code source non fourni (champ « URL du code source » du panneau) ou mode rapide
- Unitaire : non testé — code source non fourni (champ « URL du code source » du panneau) ou mode rapide
- Composant : non testé — code source non fourni (champ « URL du code source » du panneau) ou mode rapide
- Niveaux : partiel — 6/13 exécutés, 3 partiels, 4 non testés (sur 13 niveaux du plan) ; demandés : 6/10 faits
- À vérifier (sans constat) : partiel — 1 point(s) non mesuré(s), sans constat : Accessibilité : contraste à vérifier à la main — fond non uni (image, dégradé, élément superposé ou transparence) : 18 sélecteur(s) sur 8 page(s) — .tracking-\[0\.25em\] : Element's background color could not be determined due to a background gradient — 1 page(s) : / ; h1 : Element's background color could not be determined due to a background gradient — 1 page(s) : / ; .max-w-xl : Element's background color could not be determined due to a bac
Durées du test
- 6779 msplan du site (0 adresse(s) à visiter en plus)
- 11188 mscréation des comptes de recette (1/1 créé(s))
- 1813 msnavigation bureau p1 (chargement 547, réseau calme 1246, relevés 20)
- 5980 msa11y bureau p1
- 216 msfocus clavier bureau p1
- 1862 mscapture bureau p1
- 1151 msnavigation bureau p2 (chargement 440, réseau calme 691, relevés 20)
- 639 msa11y bureau p2
- 110 mscapture bureau p2
- 1359 msnavigation bureau p3 (chargement 566, réseau calme 782, relevés 11)
- 692 msa11y bureau p3
- 115 mscapture bureau p3
- 1206 msnavigation bureau p4 (chargement 551, réseau calme 644, relevés 11)
- 669 msa11y bureau p4
- 117 mscapture bureau p4
- 1147 msnavigation bureau p5 (chargement 454, réseau calme 670, relevés 23)
- 549 msa11y bureau p5
- 100 mscapture bureau p5
- 1109 msnavigation bureau p6 (chargement 402, réseau calme 691, relevés 16)
- 622 msa11y bureau p6
- 135 mscapture bureau p6
- 3075 msconnexion avec le compte de test (avalyz-test-gerante-143a7d4d@test.avalyz.com) (réussie)
- 1449 msnavigation bureau p1 (chargement 385, réseau calme 1042, relevés 22)
- 765 msa11y bureau p1
- 179 mscapture bureau p1
- 1427 msnavigation bureau p2 (chargement 431, réseau calme 979, relevés 17)
- 814 msa11y bureau p2
- 2198 mscapture bureau p2
- 1411 msnavigation bureau p3 (chargement 415, réseau calme 969, relevés 27)
- 1227 msa11y bureau p3
- 551 mscapture bureau p3
- 8294 msconnexion avec le compte de test (client) (réussie)
- 1461 msnavigation bureau p1 (chargement 422, réseau calme 994, relevés 45)
- 5656 msa11y bureau p1
- 119 mscapture bureau p1
- 1518 msnavigation bureau p2 (chargement 542, réseau calme 956, relevés 20)
- 825 msa11y bureau p2
- 1836 mscapture bureau p2
- 581 mssondes (robots.txt, pages inexistantes, paramètres, limites)
- 75 msliens (0 lien(s) vérifié(s) (plafond 50), 0 fil(s) réellement utilisé(s) sur 4, délai 8000 ms par lien, périmètre 4 ms, requêtes 0 ms, lien le plus lent 0 ms, 0 non vérifié(s) (délai ou réseau), 0 erreur(s) HTTP)
Décision GO / NO-GO motivée
Motifs (preuves)
- 17 cas conformes sur 22 joués ; 1 non conforme(s) ; 1 non concluant(s) ; 3 bloqué(s).
- Cas non conformes : CU-2.
- Hygiène technique : 0 constat(s) critique(s), 3 majeur(s), 17 mineur(s).
Avis d'expert
Décision : GO SOUS CONDITIONS
Arguments
- La recherche de disponibilités est conforme, y compris les bornes de dates (passé, départ avant arrivée, zéro nuit) et de capacité (4 et 5 adultes). (fort)
preuves : CN-1, CL-2, CL-3, CL-4, CL-5, CL-6, processus:VIS-02 - US-2 est en défaut reproduit : les réservations confirmées du voyageur (DZ-2610-A646A) n'apparaissent pas sur la page Gestion de la gérante ; la cause (absence réelle ou filtre de période) reste à établir. (fort)
preuves : #1 — US-2 : réservation absente du tableau de bord de la gérante, I4, CU-2, processus:ADM-01, https://riad-connect-hub.lovable.app/adm - Le paiement de l'acompte, cœur du parcours de l'argent, n'a jamais été joué : CN-2 est non jouable deux fois et aucune réservation payée n'a pu être vérifiée. (fort)
preuves : CN-2, I1, CS-21, I2, processus:CLI-03 - La règle client RIAD10 n'est pas confirmée sur les montants : le total attendu est absent après application du code sur la Suite Koutoubia, résultat non concluant. (moyen)
preuves : CS-20, I3 - Les montants affichés dans Mes réservations sont conformes aux règles de taxe et d'acompte. (moyen)
preuves : CS-2, processus:CLI-04 - La page de réservation refuse un code promo inconnu, un nom manquant et un e-mail invalide ; le refus de double réservation (CL-21) est observé mais sa précondition n'est pas établie, CN-2 n'ayant pas payé. (moyen)
preuves : CL-20, CL-21, CL-22, CL-23, I1 - La connexion refuse un mauvais mot de passe et la Gestion comme Mes réservations restent fermées sans connexion. (moyen)
preuves : CL-1, CL-7, processus:CLI-01 - Les pages de connexion et de Gestion sont encadrables par un autre site et la Gestion présente des défauts d'accessibilité. (moyen)
preuves : M03, M01, M02, https://riad-connect-hub.lovable.app/aut - La FAQ est cohérente avec les règles de promo, de taxe et d'annulation, la bascule anglaise fonctionne et l'avis est refusé sans séjour passé. (faible)
preuves : CS-3, CS-4, CL-8
Risques résiduels
- Encaissement de l'acompte et émission du numéro de réservation jamais observés (CN-2, I1) : un défaut sur le parcours de l'argent reste possible.
- Calcul RIAD10 (remise sur l'hébergement seul, taxe non remisée) non confirmé (CS-20, I3).
- Cause de C01 non établie : réservations absentes de la Gestion ou simple filtre de période.
- Règle anti-double réservation non démontrée : CL-21 a réussi sans réservation préalable établie.
- Annulation jusqu'à 48 h non testée (CS-1 bloqué).
- Sécurité des données non testée (couverture:Securite des donnees).
- Constats de moindre gravité omis du dossier (tronque) non examinés ici.
Conditions
- Rejouer CN-2 avec un statut réussi : réservation Majorelle avec RIAD10, paiement simulé de l'acompte, total, acompte et numéro conformes à la règle du client (processus:CLI-03).
- Corriger ou expliquer C01 puis rejouer CU-2 avec succès : toute réservation confirmée du voyageur visible dans la Gestion (processus:ADM-01).
- Rejouer CS-20 avec succès : total après RIAD10 conforme à la remise sur l'hébergement seul.
- Après CN-2, rejouer CS-21 et CL-21 avec succès : réservation visible dans Mes réservations et dans la Gestion, seconde réservation des mêmes dates refusée.
- Couvrir processus:VIS-01 et processus:VIS-03 du parcours principal.
- Rendre /auth et /admin non encadrables (M03) et corriger M01 et M02.
Périmètre de l'avis
- testé : processus:VIS-02 Rechercher des disponibilités (CN-1, CL-2 à CL-6), processus:CLI-01 Se connecter et se déconnecter (CL-1), processus:CLI-02 Réserver une chambre, partiellement (CU-1 s'arrête au choix de la chambre ; CL-20 à CL-23 sur la page de réservation), processus:CLI-04 Consulter ses réservations (CS-2), processus:ADM-01 Retrouver la réservation au tableau de bord (CU-2, CL-7) : défaut C01, processus:VIS-05 Consulter la FAQ (CS-3), processus:VIS-06 Basculer le site en anglais (CS-4), processus:CLI-06 Laisser un avis, refus seulement (CL-8), couverture:Securite applicative, couverture:Performance, couverture:Resilience, couverture:Conformite, couverture:Visuel et langues, couverture:Bout en bout par role, couverture:Accessibilite (partiel)
- non testé : processus:CLI-03 Payer l'acompte de 30 % (simulé) : CN-2 non jouable (I1), processus:VIS-01 Consulter les chambres et les prix, processus:VIS-03 Créer un compte, processus:CLI-05 Annuler une réservation : CS-1 bloqué, processus:VIS-04 Envoyer un message de contact, processus:ADM-02 Consulter le calendrier des réservations, processus:ADM-03 Bloquer des dates, processus:ADM-04 Gérer les chambres et les prix, processus:ADM-05 Lire les messages de contact, couverture:Securite des donnees
Confiance : moyenne
Avalyz prouve ce qu'il a vu, il ne garantit pas le reste : ce qui n'a pas été testé n'est pas couvert. Sans compte de test, les pages connectées ne sont pas explorées ; avec un compte de test, la connexion est le seul formulaire soumis.
Le rapport complet d'un compte (parcours, preuves, format ISO 29119) est réservé aux comptes.
8/8 صفحات
تقرير نموذجي
تطبيق خيالي أُنشئ للعرض: لا توجد بيانات حقيقية. سيتبع تقريرك البنية نفسها.
ما الذي ينكسر في تطبيقك
Riad Dar Zitoun
riad-connect-hub.lovable.app
التقرير الموجز
القرار
تفاصيل تقنية
La recherche de disponibilités et ses bornes, la connexion, l'affichage des réservations et les contrôles de saisie de la page de réservation se comportent comme attendu (CN-1, CL-1 à CL-8, CS-2, CL-20 à CL-23). En revanche, le parcours de l'argent n'est pas démontré de bout en bout : le paiement de l'acompte n'a jamais pu être joué (CN-2, I1), le calcul RIAD10 reste non confirmé (CS-20, I3) et la gérante ne retrouve pas dans la Gestion les réservations confirmées du voyageur, défaut reproduit (C01, I4). La mise en service n'est envisageable qu'une fois ces points démontrés ou corrigés et les
رصد اختبار riad-connect-hub.lovable.app عدد 21 ملاحظة، منها 4 حرجة أو رئيسية (S1 و S2)، وتعود إلى 12 إصلاحات. يُعالج أولًا: مسار عمل يفشل، ثم يمكن عرض صفحات الدخول داخل موقع آخر (clickjacking)، ثم حقول نموذج بلا تسمية.
أرقام أساسية
يُصلَح أولًا
- #1مهممسار عمل يفشل — /admin
لا يستطيع العميل إكمال مسار يدرّ المال: الحجوزات ضائعة حتى الإصلاح. - #2مهميمكن عرض صفحات الدخول داخل موقع آخر (clickjacking) — /auth
يمكن لموقع خارجي اختطاف النقرات على صفحة الدخول: حسابات العملاء معرضة والثقة مفقودة. - #3طفيفترويسات الأمان غائبة — /
- #4ملاحظةترويسات الأمان غائبة — /
- #5مهمحقول نموذج بلا تسمية — /admin
جزء من الزوار (مستخدمو لوحة المفاتيح وضعاف البصر) لا يستطيعون الإكمال: إنها الحجوزات ضائعة، وإمكانية الوصول أصبحت التزامًا قانونيًا في عدة أسواق.
الخطوات التالية
- إصلاح النقاط الـ5 المصنّفة «تُصلح أولًا» بالترتيب.
- تطبيق الإصلاحات المجمّعة الـ6: كل واحد منها يعالج عدة ملاحظات دفعة واحدة.
- ثم معالجة الملاحظات الثانوية المتبقية، قسمًا بعد قسم.
- إعادة تشغيل اختبار Avalyz للتحقق من الإصلاحات.
التقرير المفصّل
فهمنا للنشاط (للتأكيد)
توضيحات العميل المأخوذة بعين الاعتبار (الجولة 2)
- نموذج العمل: Le code promo RIAD10 donne -10 % sur l hebergement seulement ; la taxe de sejour (30 MAD par adulte et par nuit) n est jamais remisee ; l acompte de 30 % porte sur le total remise, taxe comprise.
- التنظيم والملفات: La gerante est la seule administratrice : elle gere le calendrier des reservations, les dates bloquees, les chambres et les prix, et lit les messages de contact. Le voyageur connecte voit ses reservations dans Mes reservations.
قصص المستخدم المضافة
- En tant que voyageur connecte, je veux reserver la chambre Majorelle 2 nuits pour 2 adultes avec le code RIAD10, afin de payer un acompte calcule sur le total remise.
- En tant que gerante, je veux retrouver dans mon tableau de bord la reservation que le voyageur vient de faire, afin de preparer son arrivee.
المفهوم
Riad Dar Zitoun vend en direct des nuitées dans ses 5 chambres de la Médina de Marrakech à des voyageurs, réservées en ligne avec un acompte de 30 % payé en ligne. Promesse : un riad paisible au cœur de la Médina, des prix clairs par nuit et une annulation possible jusqu'à 48 h avant l'arrivée.
العملاء المستهدفون: Voyageurs (couples, familles, petits groupes jusqu'à 4 personnes par chambre) visitant Marrakech ; site FR avec bascule EN.
سلسلة القيمة
- AttirerVIS-01, VIS-05, VIS-06
- ConvertirVIS-02, VIS-03, CLI-01, CLI-02
- EncaisserCLI-03
- Délivrer le séjourCLI-04, ADM-01, ADM-02, ADM-03, ADM-04
- Servir et fidéliserCLI-05, CLI-06, VIS-04, ADM-05
نموذج العمل
| شرائح العملاء | Voyageurs, couples et petites familles (jusqu'à 4 personnes) visitant Marrakech, francophones et anglophones. |
|---|---|
| عرض القيمة | Riad paisible au cœur de la Médina, 5 chambres de 750 à 1 800 MAD, annulation jusqu'à 48 h. |
| القنوات | Site web direct FR/EN : recherche de disponibilités, réservation en ligne, Mes réservations, contact, téléphone, e-mail. |
| مصادر الإيرادات | Nuitées vendues par chambre, acompte 30 % en ligne (simulé), taxe de séjour 30 MAD/adulte/nuit. |
التنظيم
- riad-connect-hub.lovable.app
- Espace public (accueil, disponibilités, avis, FAQ, contact)
- Visiteur VIS ★
- Espace voyageur « Mes réservations »
- Client voyageur connecté CLI ★
- Gestion (administration de la gérante)
- Gérante (seule administratrice) ADM ★
- Espace public (accueil, disponibilités, avis, FAQ, contact)
جدول الوظائف
| الوظيفة (الملف) | المهمة | أهم المسؤوليات | معتمد في الاختبار |
|---|---|---|---|
| Visiteur VIS | Découvrir le riad et vérifier les disponibilités avant de réserver. |
| ★ نعم |
| Client voyageur connecté CLI | Réserver et suivre son séjour au riad en payant l'acompte en ligne. |
| ★ نعم |
| Gérante (seule administratrice) ADM | Piloter les réservations, l'offre de chambres et l'accueil des voyageurs. |
| ★ نعم |
المجالات
أساسي
- Découverte de l'offre et disponibilités VIS-01, VIS-02, VIS-06
- Réservation et suivi des séjours CLI-02, CLI-04, CLI-05, ADM-01
- Gestion de l'offre (chambres, prix, calendrier, dates bloquées) ADM-02, ADM-03, ADM-04
داعم
- Paiement de l'acompte CLI-03
- Comptes et accès VIS-03, CLI-01
- Relation client (avis, contact, FAQ) VIS-04, VIS-05, CLI-06, ADM-05
خريطة العمليات الكبرى والعمليات
| عملية كبرى | العملية | الملف | النتائج | التغطية |
|---|---|---|---|---|
| Faire découvrir le riad أساسي · Découverte de l'offre et disponibilités | VIS-01 — Consulter les chambres et les prix | VIS | ✓ Chambres, capacités et prix affichés, ✗ Prix ou capacité différents de la description | غير مختبَر |
| VIS-02 — Rechercher des disponibilités | VIS | ✓ Chambres libres listées pour les dates, ✗ Date d'arrivée passée refusée, ✗ Départ non postérieur à l'arrivée refusé, ✗ Chambre réservée ou bloquée non proposée, ✗ Capacité dépassée : chambre non proposée | مختبَر: مطابق (CN-1, CL-2, CL-3, CL-4, CL-5, CL-6) | |
| VIS-06 — Basculer le site en anglais | VIS | ✓ Site affiché en anglais, ✗ Textes restés en français | مختبَر: مطابق (CS-4) | |
| Préparer l'accueil أساسي · Réservation et suivi des séjours | ADM-01 — Retrouver la réservation au tableau de bord (US-2) | ADM | ✓ Réservation du voyageur affichée, montants justes, ✗ Réservation absente du tableau de bord, ✗ Total ou statut divergent de Mes réservations | مختبَر: عيب (CU-2, CL-7) |
| Suivre ses séjours أساسي · Réservation et suivi des séjours | CLI-04 — Consulter ses réservations | CLI | ✓ Réservation listée, statut Confirmée, montants justes, ✗ Réservation absente ou montants faux | مختبَر: مطابق (CS-2) |
| CLI-05 — Annuler une réservation | CLI | ✓ Réservation annulée, dates libérées, ✗ Annulation à moins de 48 h refusée | متوقف (CS-1) | |
| Vendre un séjour أساسي · Réservation et suivi des séjours | CLI-02 — Réserver une chambre avec code promo (US-1) | CLI | ✓ Récapitulatif juste : hébergement remisé, taxe, total, ✗ Code promo invalide refusé, ✗ Dates chevauchant une réservation refusées, ✗ Capacité de la chambre dépassée refusée | مختبَر: مطابق (CU-1) |
| Gérer l'offre أساسي · Gestion de l'offre (chambres, prix, calendrier, dates bloquées) | ADM-03 — Bloquer des dates | ADM | ✓ Dates bloquées non réservables, ✗ Blocage sur dates déjà réservées | غير مختبَر |
| ADM-04 — Gérer les chambres et les prix | ADM | ✓ Nouveau prix affiché et appliqué, ✗ Prix invalide refusé | غير مختبَر | |
| Préparer l'accueil أساسي · Gestion de l'offre (chambres, prix, calendrier, dates bloquées) | ADM-02 — Consulter le calendrier des réservations | ADM | ✓ Occupation conforme aux réservations, ✗ Réservation manquante au calendrier | غير مختبَر |
| Vendre un séjour داعم · Paiement de l'acompte | CLI-03 — Payer l'acompte de 30 % (simulé) | CLI | ✓ Acompte payé, numéro remis, statut Confirmée, ✗ Paiement simulé refusé, réservation non confirmée | غير مختبَر |
| Gérer les comptes داعم · Comptes et accès | VIS-03 — Créer un compte | VIS | ✓ Compte créé puis confirmé par e-mail, ✗ Mot de passe trop court refusé, ✗ E-mail déjà utilisé refusé, ✗ E-mail de confirmation non reçu | غير مختبَر |
| CLI-01 — Se connecter et se déconnecter | CLI | ✓ Menu « Mes réservations » affiché, ✗ Identifiants erronés refusés, ✗ Voyageur voyant « Gestion » (accès indu) | مختبَر: مطابق (CL-1) | |
| Fidéliser les hôtes داعم · Relation client (avis, contact, FAQ) | CLI-06 — Laisser un avis | CLI | ✓ Avis publié après un séjour passé, ✗ Avis refusé sans séjour passé | مختبَر: مطابق (CL-8) |
| Informer et assister داعم · Relation client (avis, contact, FAQ) | VIS-04 — Envoyer un message de contact | VIS | ✓ Message envoyé et confirmé, ✗ Champ obligatoire vide refusé, ✗ E-mail invalide refusé | غير مختبَر |
| VIS-05 — Consulter la FAQ | VIS | ✓ Réponses cohérentes avec les règles, ✗ Réponse contredisant taxe, acompte ou annulation | مختبَر: مطابق (CS-3) | |
| ADM-05 — Lire les messages de contact | ADM | ✓ Message du formulaire Contact reçu, ✗ Message absent de la Gestion | غير مختبَر |
قواعد التسيير الأساسية لكل عملية
| العملية | قاعدة التسيير | المصدر |
|---|---|---|
| VIS-01 — Consulter les chambres et les prix | RG-01 — Atlas : 900 MAD par nuit, 2 personnes | مقروءة في الموقع : « 900 MAD / nuit » |
| RG-02 — Majorelle : 1 200 MAD par nuit, 3 personnes | مقروءة في الموقع : « 1 200 MAD / nuit » | |
| RG-03 — Suite Koutoubia : 1 800 MAD par nuit, 4 personnes | مقروءة في الموقع : « 1 800 MAD / nuit » | |
| RG-04 — Palmeraie : 750 MAD par nuit, 2 personnes | مقروءة في الموقع : « 750 MAD / nuit » | |
| RG-05 — Menara : 1 000 MAD par nuit, 2 personnes | مقروءة في الموقع : « 1 000 MAD / nuit » | |
| VIS-02 — Rechercher des disponibilités | RG-12 — Une chambre ne peut pas être réservée deux fois sur des dates qui se chevauchent | مقروءة في الموقع : « une chambre ne peut pas etre reservee deux fois sur des dates qui se chevauchent » |
| RG-13 — Pas de réservation dans le passé | مقروءة في الموقع : « pas de reservation dans le passe » | |
| RG-14 — 1 nuit minimum | مقروءة في الموقع : « 1 nuit minimum » | |
| RG-15 — Recherche : 1 à 4 adultes et 0 à 3 enfants (limites du formulaire) | للتأكيد | |
| RG-20 — La gérante bloque des dates, qui deviennent non réservables | مقروءة في الموقع : « blocage de dates » | |
| VIS-03 — Créer un compte | RG-17 — Inscription par e-mail et mot de passe avec e-mail de confirmation | مقروءة في الموقع : « inscription par e-mail + mot de passe avec e-mail de confirmation » |
| RG-18 — Mot de passe de 6 caractères minimum (limite du formulaire) | للتأكيد | |
| VIS-04 — Envoyer un message de contact | RG-21 — Contact : nom (100 car.), e-mail et message (2 000 car.) obligatoires, sujet facultatif (150 car.) | للتأكيد |
| VIS-05 — Consulter la FAQ | RG-06 — Taxe de séjour : 30 MAD par adulte et par nuit, jamais remisée | مقروءة في الموقع : « la taxe de sejour (30 MAD par adulte et par nuit) n est jamais remisee » |
| RG-07 — Code RIAD10 : -10 % sur l'hébergement seulement (US-1 : Majorelle 2 nuits 2 adultes = 2 400 - 240 + 120 = 2 280 MAD) | مقروءة في الموقع : « Le code promo RIAD10 donne -10 % sur l hebergement seulement » | |
| RG-08 — Acompte de 30 % du total remisé, taxe comprise, payé en ligne (US-1 : 684 MAD) | مقروءة في الموقع : « l acompte de 30 % porte sur le total remise, taxe comprise » | |
| RG-11 — Annulation possible jusqu'à 48 h avant l'arrivée | مقروءة في الموقع : « Annulation possible jusqu'à 48 h avant l'arrivée. » | |
| VIS-06 — Basculer le site en anglais | RG-22 — Site en français avec bascule EN | مقروءة في الموقع : « FR avec bascule EN » |
| CLI-01 — Se connecter et se déconnecter | RG-19 — La gérante est la seule administratrice : seule elle accède à la Gestion | مقروءة في الموقع : « La gerante est la seule administratrice » |
| CLI-02 — Réserver une chambre avec code promo (US-1) | RG-02 — Majorelle : 1 200 MAD par nuit, 3 personnes | مقروءة في الموقع : « 1 200 MAD / nuit » |
| RG-06 — Taxe de séjour : 30 MAD par adulte et par nuit, jamais remisée | مقروءة في الموقع : « la taxe de sejour (30 MAD par adulte et par nuit) n est jamais remisee » | |
| RG-07 — Code RIAD10 : -10 % sur l'hébergement seulement (US-1 : Majorelle 2 nuits 2 adultes = 2 400 - 240 + 120 = 2 280 MAD) | مقروءة في الموقع : « Le code promo RIAD10 donne -10 % sur l hebergement seulement » | |
| RG-08 — Acompte de 30 % du total remisé, taxe comprise, payé en ligne (US-1 : 684 MAD) | مقروءة في الموقع : « l acompte de 30 % porte sur le total remise, taxe comprise » | |
| RG-12 — Une chambre ne peut pas être réservée deux fois sur des dates qui se chevauchent | مقروءة في الموقع : « une chambre ne peut pas etre reservee deux fois sur des dates qui se chevauchent » | |
| RG-14 — 1 nuit minimum | مقروءة في الموقع : « 1 nuit minimum » | |
| CLI-03 — Payer l'acompte de 30 % (simulé) | RG-08 — Acompte de 30 % du total remisé, taxe comprise, payé en ligne (US-1 : 684 MAD) | مقروءة في الموقع : « l acompte de 30 % porte sur le total remise, taxe comprise » |
| RG-09 — Paiement simulé, jamais réel | مقروءة في الموقع : « paiement SIMULE, jamais reel » | |
| RG-10 — Un numéro de réservation est remis après le paiement de l'acompte | مقروءة في الموقع : « numero de reservation » | |
| CLI-04 — Consulter ses réservations | RG-08 — Acompte de 30 % du total remisé, taxe comprise, payé en ligne (US-1 : 684 MAD) | مقروءة في الموقع : « l acompte de 30 % porte sur le total remise, taxe comprise » |
| RG-23 — Statuts de réservation visibles : Confirmée, Annulée | مقروءة في الموقع : « Confirmée » | |
| RG-25 — Le voyageur connecté voit ses réservations dans Mes réservations | مقروءة في الموقع : « Le voyageur connecte voit ses reservations dans Mes reservations » | |
| CLI-05 — Annuler une réservation | RG-11 — Annulation possible jusqu'à 48 h avant l'arrivée | مقروءة في الموقع : « Annulation possible jusqu'à 48 h avant l'arrivée. » |
| RG-23 — Statuts de réservation visibles : Confirmée, Annulée | مقروءة في الموقع : « Confirmée » | |
| CLI-06 — Laisser un avis | RG-16 — Seuls les hôtes ayant séjourné peuvent publier un avis | مقروءة في الموقع : « Seuls les hôtes ayant séjourné au riad peuvent publier un avis. » |
| ADM-01 — Retrouver la réservation au tableau de bord (US-2) | RG-08 — Acompte de 30 % du total remisé, taxe comprise, payé en ligne (US-1 : 684 MAD) | مقروءة في الموقع : « l acompte de 30 % porte sur le total remise, taxe comprise » |
| RG-19 — La gérante est la seule administratrice : seule elle accède à la Gestion | مقروءة في الموقع : « La gerante est la seule administratrice » | |
| RG-23 — Statuts de réservation visibles : Confirmée, Annulée | مقروءة في الموقع : « Confirmée » | |
| ADM-02 — Consulter le calendrier des réservations | RG-12 — Une chambre ne peut pas être réservée deux fois sur des dates qui se chevauchent | مقروءة في الموقع : « une chambre ne peut pas etre reservee deux fois sur des dates qui se chevauchent » |
| RG-19 — La gérante est la seule administratrice : seule elle accède à la Gestion | مقروءة في الموقع : « La gerante est la seule administratrice » | |
| ADM-03 — Bloquer des dates | RG-20 — La gérante bloque des dates, qui deviennent non réservables | مقروءة في الموقع : « blocage de dates » |
| RG-19 — La gérante est la seule administratrice : seule elle accède à la Gestion | مقروءة في الموقع : « La gerante est la seule administratrice » | |
| ADM-04 — Gérer les chambres et les prix | RG-01 — Atlas : 900 MAD par nuit, 2 personnes | مقروءة في الموقع : « 900 MAD / nuit » |
| RG-02 — Majorelle : 1 200 MAD par nuit, 3 personnes | مقروءة في الموقع : « 1 200 MAD / nuit » | |
| RG-03 — Suite Koutoubia : 1 800 MAD par nuit, 4 personnes | مقروءة في الموقع : « 1 800 MAD / nuit » | |
| RG-04 — Palmeraie : 750 MAD par nuit, 2 personnes | مقروءة في الموقع : « 750 MAD / nuit » | |
| RG-05 — Menara : 1 000 MAD par nuit, 2 personnes | مقروءة في الموقع : « 1 000 MAD / nuit » | |
| RG-19 — La gérante est la seule administratrice : seule elle accède à la Gestion | مقروءة في الموقع : « La gerante est la seule administratrice » | |
| ADM-05 — Lire les messages de contact | RG-19 — La gérante est la seule administratrice : seule elle accède à la Gestion | مقروءة في الموقع : « La gerante est la seule administratrice » |
| RG-21 — Contact : nom (100 car.), e-mail et message (2 000 car.) obligatoires, sujet facultatif (150 car.) | للتأكيد | |
| — | RG-24 — Prix affichés en MAD, par chambre et par nuit | مقروءة في الموقع : « 750 MAD / nuit » |
دفتر الاستلام
| المرجع | قصة المستخدم | النتيجة المتوقعة | النتيجة المحصّلة والأدلة | التوصية |
|---|---|---|---|---|
| CN-1 | En tant que Client voyageur connecté, je veux trouver une chambre libre pour mes dates, afin de réserver mon séjour au riad. VIS-02 · RG-02 · RG-12 · RG-13 · RG-14 | Connexion réussie ; la Majorelle est proposée pour 2 adultes du 10 au 12 novembre à 1 200 MAD la nuit. | مطابق ردود الخادم
| الإبقاء على هذه الحالة في اختبارات عدم التراجع. |
| CU-1 | En tant que Client voyageur connecté, je veux réserver la Majorelle 2 nuits pour 2 adultes avec RIAD10, afin de payer un acompte calculé sur le total remisé. قصة من العميل · CLI-02 · RG-02 · RG-06 · RG-07 · RG-08 | Récapitulatif : hébergement 2 400, remise RIAD10 -240, taxe 120, total 2 280 MAD ; acompte 684 MAD ; numéro de réservation affiché. | مطابق ردود الخادم
| الإبقاء على هذه الحالة في اختبارات عدم التراجع. |
| CU-2 | En tant que Gérante (seule administratrice), je veux retrouver dans mon tableau de bord la réservation du voyageur, afin de préparer son arrivée. قصة من العميل · ADM-01 · RG-19 · RG-23 | Le tableau de bord liste DZ-2610-A646A et DZ-2610-39268 (Atlas, 1 920 MAD) avec chambre, client, dates et statut. | غير مطابق النص المتوقع غائب: « DZ-2610-A646A » (الصفحة: « Riad Dar Zitoun Accueil Disponibilités Avis FAQ Contact Mes réservations Gestion EN Déconnexion Tableau de bord Calendrier Dates bloquées Chambres & prix Messag ») ردود الخادم
سلامة الصفحات المرتبطة: #2, #5, #6, #7, #12, #18 ملاحظة: #1 | الخطورة S2: حالة ثانوية أو حدّية مهمة للنشاط لا تتصرف كما وُعد. أعد تنفيذ الخطوات بحساب الاختبار، أصلح، ثم أعد اختبار القبول. |
| CS-1 | En tant que Client voyageur connecté, je veux annuler une réservation plus de 48 h avant l'arrivée, afin de libérer mes dates sans litige. CLI-05 · RG-11 · RG-23 | La réservation passe au statut Annulée ; ses dates redeviennent réservables. | متوقف « Annuler » : paiement, suppression ou annulation, jamais cliqué ردود الخادم
| رفع العائق (« Annuler » : paiement, suppression ou annulation, jamais cliqué) ثم إعادة التنفيذ. |
| CS-2 | En tant que Client voyageur connecté, je veux voir un total et un acompte justes dans Mes réservations, afin de payer le bon montant. CLI-04 · RG-01 · RG-06 · RG-08 | Atlas 2 nuits 2 adultes : 1 800 + taxe 120 = 1 920 MAD ; acompte 30 % = 576 MAD. | مطابق ردود الخادم
| الإبقاء على هذه الحالة في اختبارات عدم التراجع. |
| CS-3 | En tant que Visiteur, je veux lire dans la FAQ les règles de promo, de taxe et d'annulation, afin de réserver en confiance. VIS-05 · RG-06 · RG-07 · RG-11 | Les réponses citent RIAD10, la taxe de 30 MAD et l'annulation jusqu'à 48 h, sans contradiction. | مطابق سلامة الصفحات المرتبطة: #20 | الإبقاء على هذه الحالة في اختبارات عدم التراجع. |
| CS-4 | En tant que Visiteur, je veux afficher le site en anglais, afin de comprendre l'offre sans parler français. VIS-06 · RG-22 | Les libellés passent en anglais ; les chambres restent affichées. | مطابق سلامة الصفحات المرتبطة: #3, #4, #8, #9, #10, #11, #13, #14, #15, #16 | الإبقاء على هذه الحالة في اختبارات عدم التراجع. |
| CL-1 | En tant que Client voyageur connecté, je veux être refusé avec un mauvais mot de passe, afin que personne n'accède à mes réservations. CLI-01 · RG-17 | Connexion refusée avec un message d'erreur ; aucun accès à Mes réservations. | مطابق ردود الخادم
| الإبقاء على هذه الحالة في اختبارات عدم التراجع. |
| CL-2 | En tant que Visiteur, je veux être empêché de chercher une arrivée passée, afin de ne pas réserver une date impossible. VIS-02 · RG-13 | Date passée refusée ; aucune chambre proposée. | مطابق سلامة الصفحات المرتبطة: لا توجد ملاحظة تقنية على هذه الصفحات | الإبقاء على هذه الحالة في اختبارات عدم التراجع. |
| CL-3 | En tant que Visiteur, je veux être alerté si mon départ précède mon arrivée, afin de corriger mes dates. VIS-02 · RG-14 | Dates incohérentes refusées ; aucune chambre proposée. | مطابق سلامة الصفحات المرتبطة: لا توجد ملاحظة تقنية على هذه الصفحات | الإبقاء على هذه الحالة في اختبارات عدم التراجع. |
| CL-4 | En tant que Visiteur, je veux être empêché de réserver zéro nuit, afin de respecter le minimum d'une nuit. VIS-02 · RG-14 | Séjour de zéro nuit refusé ; aucune chambre proposée. | مطابق سلامة الصفحات المرتبطة: لا توجد ملاحظة تقنية على هذه الصفحات | الإبقاء على هذه الحالة في اختبارات عدم التراجع. |
| CL-5 | En tant que Visiteur, je veux ne voir que les chambres assez grandes pour 4 adultes, afin de réserver une chambre adaptée. VIS-02 · RG-02 · RG-03 · RG-15 | Seule la Suite Koutoubia (4 pers.) est proposée. | مطابق ردود الخادم
سلامة الصفحات المرتبطة: لا توجد ملاحظة تقنية على هذه الصفحات | الإبقاء على هذه الحالة في اختبارات عدم التراجع. |
| CL-6 | En tant que Visiteur, je veux être bloqué au-delà de 4 adultes, afin de ne pas réserver une capacité inexistante. VIS-02 · RG-15 | Saisie refusée ; aucune chambre proposée pour 5 adultes. | مطابق سلامة الصفحات المرتبطة: لا توجد ملاحظة تقنية على هذه الصفحات | الإبقاء على هذه الحالة في اختبارات عدم التراجع. |
| CL-7 | En tant que Gérante (seule administratrice), je veux que la Gestion soit fermée aux visiteurs, afin de protéger les réservations et les clients. ADM-01 · RG-19 · RG-25 | Sans connexion, ni la Gestion ni les réservations ne s'affichent. | مطابق | الإبقاء على هذه الحالة في اختبارات عدم التراجع. |
| CL-8 | En tant que Client voyageur connecté, je veux être empêché de publier un avis sans séjour passé, afin que les avis restent authentiques. CLI-06 · RG-16 | Le compte sans séjour passé ne peut pas publier ; la règle est rappelée. | مطابق ردود الخادم
| الإبقاء على هذه الحالة في اختبارات عدم التراجع. |
| CN-2 | En tant que Client voyageur connecté, je veux réserver la Majorelle 2 nuits avec RIAD10 et payer l'acompte, afin de confirmer mon séjour. CLI-03 · RG-02 · RG-06 · RG-07 · RG-08 · RG-09 | Total 2 280 MAD après RIAD10, acompte de 684 MAD payé (simulé), réservation confirmée avec numéro. | غير قابل للتنفيذ لم يُنفَّذ: عنصر غير موجود: input >> nth=0 — يُؤكَّد لاحقًا سلامة الصفحات المرتبطة: لا توجد ملاحظة تقنية على هذه الصفحات | رفع العائق (لم يُنفَّذ: عنصر غير موجود: input >> nth=0 — يُؤكَّد لاحقًا) ثم إعادة التنفيذ. |
| CS-20 | En tant que Client voyageur connecté, je veux appliquer RIAD10 à la Suite Koutoubia, afin de payer un acompte juste sur le total remisé. CLI-02 · RG-03 · RG-06 · RG-07 · RG-08 | Total 3 360 MAD, acompte 1 008 MAD, solde 2 352 MAD ; la taxe de 120 MAD n'est pas remisée. | غير قابل للتنفيذ لم يُنفَّذ: عنصر غير موجود: input[placeholder="RIAD10"] — يُؤكَّد لاحقًا سلامة الصفحات المرتبطة: لا توجد ملاحظة تقنية على هذه الصفحات | رفع العائق (لم يُنفَّذ: عنصر غير موجود: input[placeholder="RIAD10"] — يُؤكَّد لاحقًا) ثم إعادة التنفيذ. |
| CS-21 | En tant que Gérante (seule administratrice), je veux retrouver la réservation Majorelle que le voyageur vient de payer, afin de préparer son arrivée. ADM-01 · RG-08 · RG-19 · RG-23 · RG-25 | Mes réservations affiche 2 280 MAD et 684 MAD ; la Gestion liste la réservation Majorelle du 2026-11-10. | غير حاسم — للتأكيد النص المتوقع غائب: « Total: 2 280 MAD » (الصفحة: « Riad Dar Zitoun Accueil Disponibilités Avis FAQ Contact EN Connexion Connexion E-mail Mot de passe ConnexionPas encore de compte ? Créer un compte Riad Dar Zito ») | تأكيد النتيجة المتوقعة مع فريق العمل ثم إعادة التنفيذ. |
| CL-20 | En tant que Client voyageur connecté, je veux qu'un code promo inconnu soit refusé, afin de payer le prix juste. CLI-02 · RG-04 · RG-07 | Code refusé ; total 1 620 MAD et acompte 486 MAD inchangés. | مطابق ردود الخادم
سلامة الصفحات المرتبطة: لا توجد ملاحظة تقنية على هذه الصفحات | الإبقاء على هذه الحالة في اختبارات عدم التراجع. |
| CL-21 | En tant que Client voyageur connecté, je veux être empêché de réserver une chambre déjà prise, afin d'éviter un surbooking. CLI-02 · RG-12 | Réservation refusée : chambre indisponible sur ces dates, aucun numéro émis. | مطابق دفع في وضع الاختبار (المزوّد: simulation) ردود الخادم
سلامة الصفحات المرتبطة: لا توجد ملاحظة تقنية على هذه الصفحات | الإبقاء على هذه الحالة في اختبارات عدم التراجع. |
| CL-22 | En tant que Client voyageur connecté, je veux être bloqué si le nom complet manque, afin que la gérante sache qui accueillir. CLI-03 · RG-08 | Paiement bloqué, champ Nom complet signalé ; aucune réservation créée. | مطابق دفع في وضع الاختبار (المزوّد: simulation) ردود الخادم
سلامة الصفحات المرتبطة: لا توجد ملاحظة تقنية على هذه الصفحات | الإبقاء على هذه الحالة في اختبارات عدم التراجع. |
| CL-23 | En tant que Client voyageur connecté, je veux être alerté si mon e-mail est invalide, afin de recevoir ma confirmation. CLI-03 · RG-08 | Paiement bloqué, format d'e-mail signalé ; aucune réservation créée. | مطابق دفع في وضع الاختبار (المزوّد: simulation) ردود الخادم
سلامة الصفحات المرتبطة: لا توجد ملاحظة تقنية على هذه الصفحات | الإبقاء على هذه الحالة في اختبارات عدم التراجع. |
السلامة التقنية
اختبار قبول riad-connect-hub.lovable.app: 21 ملاحظة و12 إصلاحات مطلوبة
رصد اختبار riad-connect-hub.lovable.app عدد 21 ملاحظة، منها 4 حرجة أو رئيسية (S1 و S2)، وتعود إلى 12 إصلاحات. يُعالج أولًا: مسار عمل يفشل، ثم يمكن عرض صفحات الدخول داخل موقع آخر (clickjacking)، ثم حقول نموذج بلا تسمية.
تم العثور على 20 مشكلات، منها 3 يجب إصلاحها أولًا.
أصلح هذه أولًا
- سبب واحد ← إصلاح واحديمكن عرض صفحات الدخول داخل موقع آخر (clickjacking): 3 ملاحظات وإصلاح واحد
السبب: الخلل نفسه «يمكن عرض صفحات الدخول داخل موقع آخر (clickjacking)» يتكرر: على الأرجح مكوّن أو قالب مشترك واحد.
إصلاح واحد: إرسال الترويسة Content-Security-Policy: frame-ancestors 'none' (و X-Frame-Options: DENY).
- #2مهميمكن عرض صفحات الدخول داخل موقع آخر (clickjacking) — /auth (Chromium (محرّك Chrome))
لماذا أولًا: يمكن لموقع خارجي اختطاف النقرات على صفحة الدخول: حسابات العملاء معرضة والثقة مفقودة. الجهد : منخفض
الصفحة: https://riad-connect-hub.lovable.app/auth
الملاحظ: Encadrables : /admin; /auth
تفاصيل تقنية
العنوان الأصلي: Pages de connexion affichables dans un autre site (clickjacking)
المتوقع: Ces pages refusent d'être affichées dans un cadre étranger
الإصلاح الموصى به: Envoyer Content-Security-Policy: frame-ancestors 'none' (et X-Frame-Options: DENY).
- #3طفيفترويسات الأمان غائبة — / (الحاسوب · Chromium (محرّك Chrome))
الصفحة: https://riad-connect-hub.lovable.app/
تفاصيل تقنية
العنوان الأصلي: En-têtes de sécurité absents sur riad-connect-hub.lovable.app
المتوقع: En-têtes de sécurité présents
الملاحظ: Manquants : Content-Security-Policy, Permissions-Policy
الإصلاح الموصى به: Les ajouter dans la configuration de l'hébergeur (fichier _headers Netlify, vercel.json...).
- #4ملاحظةترويسات الأمان غائبة — / (Chromium (محرّك Chrome))
الصفحة: https://riad-connect-hub.lovable.app/
تفاصيل تقنية
العنوان الأصلي: Cross-Origin-Opener-Policy absente : une fenêtre ouverte par un autre site garde un lien vers la vôtre
المتوقع: Cross-Origin-Opener-Policy: same-origin (ou same-origin-allow-popups si des fenêtres de paiement/connexion sont utilisées)
الملاحظ: Cross-Origin-Opener-Policy: absent
الإصلاح الموصى به: Ajouter Cross-Origin-Opener-Policy: same-origin-allow-popups, puis same-origin si aucun parcours n'en souffre.
- سبب واحد ← إصلاح واحدحقول نموذج بلا تسمية: 3 ملاحظات وإصلاح واحد
السبب: الحقول منشأة دون تسمية مرتبطة بها.
إصلاح واحد: ربط label (أو aria-label) بكل حقل في مكوّن النموذج المشترك.
- #5مهمحقول نموذج بلا تسمية — /admin (Chromium (محرّك Chrome))
لماذا أولًا: جزء من الزوار (مستخدمو لوحة المفاتيح وضعاف البصر) لا يستطيعون الإكمال: إنها الحجوزات ضائعة، وإمكانية الوصول أصبحت التزامًا قانونيًا في عدة أسواق. الجهد : منخفض
الصفحة: https://riad-connect-hub.lovable.app/admin
تفاصيل تقنية
العنوان الأصلي: Accessibilité : champ-sans-libelle (label) (3 occurrence(s) sur 2 page(s)) — ordinateur, téléphone
المتوقع: Conforme WCAG 2.2 AA — WCAG 2.2 : 4.1.2 Nom, rôle et valeur (A), 1.3.1 Information et relations (A) · RGAA 4.1 : 11.1 Champ de formulaire avec étiquette
الملاحظ: input[maxlength="100"] Form elements must have labels; input Form elements must have labels; input[maxlength="100"] Form elements must have labels
الإصلاح الموصى به: axe-core (moteur de référence) : corriger chaque élément cité.
- #6مهمخلل في إمكانية الوصول — /admin (Chromium (محرّك Chrome))
الصفحة: https://riad-connect-hub.lovable.app/admin
تفاصيل تقنية
العنوان الأصلي: Accessibilité : nom-accessible (button-name) (1 occurrence(s) sur 1 page(s))
المتوقع: Conforme WCAG 2.2 AA — WCAG 2.2 : 4.1.2 Nom, rôle et valeur (A) · RGAA 4.1 : 11.9 Intitulé de bouton pertinent
الملاحظ: .bg-background.w-9.\[\&_svg\]\:pointer-events-none:nth-child(1) Buttons must have discernible text
الإصلاح الموصى به: axe-core (moteur de référence) : corriger chaque élément cité.
- #7ملاحظةخلل في إمكانية الوصول — /admin (Chromium (محرّك Chrome))
الصفحة: https://riad-connect-hub.lovable.app/admin
تفاصيل تقنية
العنوان الأصلي: Accessibilité : empty-table-header (1 occurrence(s) sur 1 page(s))
المتوقع: Conforme WCAG 2.2 AA — bonne pratique (aucun critère WCAG 2.2 ni RGAA 4.1 directement visé)
الملاحظ: thead > tr > .p-3:nth-child(7) Table header text should not be empty
الإصلاح الموصى به: axe-core (moteur de référence) : corriger chaque élément cité.
- سبب واحد ← إصلاح واحدلا يوجد رابط لسياسة الخصوصية: 2 ملاحظات وإصلاح واحد
السبب: الخلل نفسه «لا يوجد رابط لسياسة الخصوصية» يتكرر: على الأرجح مكوّن أو قالب مشترك واحد.
إصلاح واحد: أصلحه مرة واحدة في المكوّن أو القالب المشترك، ثم أعد فحص كل الصفحات المذكورة.
- #8طفيفلا يوجد رابط لسياسة الخصوصية — / (Chromium (محرّك Chrome))
لماذا أولًا: هذه المعلومات إلزامية عادةً لموقع يبيع عبر الإنترنت؛ وغيابها يعرّض الناشر للمساءلة ويقلّل طمأنة المشترين. الجهد : منخفض
الصفحة: https://riad-connect-hub.lovable.app/
تفاصيل تقنية
العنوان الأصلي: Pas de lien vers la politique de confidentialité
المتوقع: Un lien vers la politique de confidentialité (RGPD / loi 09-08)
الملاحظ: Aucun lien ni texte « confidentialité / privacy / données personnelles » trouvé sur l'accueil.
الإصلاح الموصى به: Publier une politique de confidentialité et la lier depuis le pied de page.
- #9طفيفلا توجد بيانات قانونية — / (Chromium (محرّك Chrome))
الصفحة: https://riad-connect-hub.lovable.app/
تفاصيل تقنية
العنوان الأصلي: Pas de mentions légales
المتوقع: Des mentions légales (éditeur, hébergeur, contact)
الملاحظ: Aucun lien « mentions légales / CGU / CGV / legal » trouvé sur l'accueil.
الإصلاح الموصى به: Ajouter une page de mentions légales liée depuis le pied de page.
- سبب واحد ← إصلاح واحدصفحات وصور ثقيلة جدًا: 2 ملاحظات وإصلاح واحد
السبب: الصور والموارد ثقيلة جدًا، على الأرجح دون ضغط أو أبعاد مناسبة.
إصلاح واحد: ضغط الصور وتغيير أبعادها (WebP أو AVIF و srcset) مرة واحدة في سلسلة النشر.
- #10طفيفصفحات وصور ثقيلة جدًا — / (Chromium (محرّك Chrome))
لماذا أولًا: الصفحة البطيئة تجعل الزوار يغادرون قبل رؤية العرض، خاصة على الهاتف: الحجوزات أقل. الجهد : منخفض
الصفحة: https://riad-connect-hub.lovable.app/
تفاصيل تقنية
العنوان الأصلي: 2 image(s) trop lourde(s) pour leur taille d'affichage
المتوقع: Images < 300 Ko, dimensionnées pour l'affichage
الملاحظ: ttps://riad-connect-hub.lovable.app/assets/hero-O0-s_7b9.jpg : 461 Ko, 1920 px affichés en 1440 px; /riad-connect-hub.lovable.app/assets/room-atlas-DfmmbZJQ.jpg : 187 Ko, 1200 px affichés en 192 px
الإصلاح الموصى به: SVG ou WebP pour le logo ; images responsives (srcset, AVIF/WebP) ; préchargement de l'image principale.
- #11طفيفصفحات وصور ثقيلة جدًا — / (Chromium (محرّك Chrome))
الصفحة: https://riad-connect-hub.lovable.app/
الملاحظ: https://riad-connect-hub.lovable.app/assets/hero-O0-s_7b9.jpg (image/jpeg) : 462 Ko
تفاصيل تقنية
العنوان الأصلي: Images lourdes : 1 fichier(s) au-dessus de 300 Ko
المتوقع: Chaque fichier ≤ 300 Ko transférés
الإصلاح الموصى به: Convertir en WebP ou AVIF, redimensionner à la taille d'affichage (srcset), viser moins de 200 Ko par image ; charger en différé celles qui sont sous la ligne de flottaison.
الباقي
- #12طفيفتباين النص غير كافٍ — /admin (Chromium (محرّك Chrome))
الصفحة: https://riad-connect-hub.lovable.app/admin
تفاصيل تقنية
العنوان الأصلي: Accessibilité : contraste (color-contrast) (1 occurrence(s) sur 1 page(s)) — 8 sélecteur(s)
المتوقع: Conforme WCAG 2.2 AA — WCAG 2.2 : 1.4.3 Contraste (minimum) (AA) · RGAA 4.1 : 3.2 Contraste du texte
الملاحظ: .p-3:nth-child(3) > .text-xs : ratio 2,12:1 (texte #b9ada6 sur fond #fffbf6), cible 4,5:1 — 1 page(s) : /admin ; .font-semibold.p-3 : ratio 3,17:1 (texte #978c86 sur fond #fffbf6), cible 4,5:1 — 1 page(s) : /admin ; .opacity-50 > .p-3:nth-child(2) : ratio 3,17:1 (texte #978c86 sur fond #fffbf6), cible 4,5:1 — 1 page(s) : /admin ; .opacity-50 > .p-3:nth-child(3) : ratio 3,17:1 (texte #978c86 sur fond #fffbf6), cible 4,5:1 — 1 page(s) : /admin ; .opacity-50 > .p-3:nth-child(4) : ratio 3,17:1 (texte #978c86 sur fond #fffbf6), cible 4,5:1 — 1 page(s) : /admin ; .opacity-50 > .p-3:nth-child(5) : ra
الإصلاح الموصى به: Une règle CSS par sélecteur cité : foncer le texte ou éclaircir le fond jusqu'à la cible (4,5:1 ; 3:1 pour un texte d'au moins 24 px, ou 18,66 px en gras).
- سبب واحد ← إصلاح واحدملاحظة S3 — /: 2 ملاحظات وإصلاح واحد
السبب: الخلل نفسه «ملاحظة S3 — /» يتكرر: على الأرجح مكوّن أو قالب مشترك واحد.
إصلاح واحد: أصلحه مرة واحدة في المكوّن أو القالب المشترك، ثم أعد فحص كل الصفحات المذكورة.
- #13طفيفملاحظة S3 — / (Chromium (محرّك Chrome))
الصفحة: https://riad-connect-hub.lovable.app/
تفاصيل تقنية
العنوان الأصلي: Aucun bandeau de consentement aux cookies détecté sur riad-connect-hub.lovable.app
المتوقع: Un bandeau qui demande l'accord (accepter / refuser / personnaliser)
الملاحظ: Ni outil de consentement connu, ni texte « cookies » avec un bouton d'acceptation, alors que des traceurs ou cookies de mesure sont présents.
الإصلاح الموصى به: Le RGPD et la directive « ePrivacy » (en France, les règles de la CNIL ; au Maroc, la loi 09-08 et la CNDP) demandent l'accord du visiteur AVANT de déposer un cookie ou d'appeler un service qui sert à mesurer l'audience ou à faire de la publicité. Les cookies strictement nécessaires (session, panier, langue) n'ont pas besoin d'accord. Installez un outil de gestion du consentement et bloquez les traceurs tant que le visiteur n'a pas choisi.
- #14طفيفملاحظة S3 — / (Chromium (محرّك Chrome))
الصفحة: https://riad-connect-hub.lovable.app/
تفاصيل تقنية
العنوان الأصلي: Cookies de mesure ou de publicité déposés avant tout consentement sur riad-connect-hub.lovable.app
المتوقع: Seuls des cookies techniques (session, panier, langue) avant l'accord
الملاحظ: Déposés sans accord : __cf_bm (supabase.co, tiers)
الإصلاح الموصى به: Le RGPD et la directive « ePrivacy » (en France, les règles de la CNIL ; au Maroc, la loi 09-08 et la CNDP) demandent l'accord du visiteur AVANT de déposer un cookie ou d'appeler un service qui sert à mesurer l'audience ou à faire de la publicité. Les cookies strictement nécessaires (session, panier, langue) n'ont pas besoin d'accord. Déposez ces cookies seulement après l'accord, et proposez « Refuser » aussi simplement que « Accepter ».
- سبب واحد ← إصلاح واحدتحميل بطيء: 3 ملاحظات وإصلاح واحد
السبب: موارد كثيرة يجب تحميلها قبل العرض، خاصة على شبكة الهاتف.
إصلاح واحد: تخفيف الصور والسكربتات وتأجيلها وتخزين الموارد المشتركة مؤقتًا.
- #15طفيفتحميل بطيء (6252 ms) — / (الهاتف · Chromium (محرّك Chrome))
الصفحة: https://riad-connect-hub.lovable.app/
المتوقع: Chargement < 3000 ms
الملاحظ: / 6252 ms
تفاصيل تقنية
العنوان الأصلي: Chargement lent (6252 ms) : / — téléphone uniquement
الإصلاح الموصى به: Mesurer avec Lighthouse ; compresser les images, decouper le JavaScript, mettre en cache.
- #16طفيفتحميل بطيء (4600 ms, 4562 ms) — / (Chromium (محرّك Chrome))
الصفحة: https://riad-connect-hub.lovable.app/
تفاصيل تقنية
العنوان الأصلي: Lent sur téléphone en réseau lent : LCP 4600 ms, chargement 4562 ms (non confirmé)
المتوقع: LCP ≤ 4000 ms et chargement ≤ 10000 ms dans ces conditions (profil mobile de Lighthouse)
الملاحظ: LCP 4600 ms, chargement 4562 ms (2 mesure(s), non confirmé)
الإصلاح الموصى به: Alléger d'abord l'élément principal affiché (image ou titre) : image compressée et préchargée (rel=preload), CSS critique en ligne, JavaScript différé ; servir les fichiers depuis un CDN proche des visiteurs.
- #17طفيفصفحات وصور ثقيلة جدًا — / (Chromium (محرّك Chrome))
الصفحة: https://riad-connect-hub.lovable.app/
تفاصيل تقنية
العنوان الأصلي: Fichiers JavaScript lourds : 1 fichier(s) au-dessus de 500 Ko
المتوقع: Chaque fichier ≤ 500 Ko transférés
الملاحظ: https://riad-connect-hub.lovable.app/assets/index-BYEaChBb.js (text/javascript) : 574 Ko décompressés (167 Ko transférés)
الإصلاح الموصى به: Découper le JavaScript par page (code splitting), retirer les bibliothèques inutilisées (tree shaking), minifier et compresser (brotli) ; différer les scripts non essentiels (defer/async).
- #18طفيفصفحات الدخول مفتوحة لمحركات البحث — /auth (Chromium (محرّك Chrome))
الصفحة: https://riad-connect-hub.lovable.app/auth
تفاصيل تقنية
العنوان الأصلي: Pages de connexion ouvertes aux moteurs de recherche
المتوقع: noindex et Disallow sur les espaces privés
الملاحظ: Indexables : /auth ; robots.txt : User-agent: Googlebot Allow: / User-agent: Bingbot Allow: / User-agent: Twitterbot Allow: / User-agent: facebookexter
الإصلاح الموصى به: Ajouter <meta name=robots content=noindex> et Disallow: /admin, /vendeur (ou équivalents).
- #19ملاحظةلا يوجد ملف security.txt — /.well-known/security.txt (Chromium (محرّك Chrome))
الصفحة: https://riad-connect-hub.lovable.app/.well-known/security.txt
الملاحظ: HTTP 404
تفاصيل تقنية
العنوان الأصلي: Pas de /.well-known/security.txt
المتوقع: Un fichier security.txt indiquant comment signaler une faille (RFC 9116)
الإصلاح الموصى به: Ajouter /.well-known/security.txt avec un contact de sécurité.
- #20ملاحظةمستويات العناوين غير متسلسلة — /faq (Chromium (محرّك Chrome))
الصفحة: https://riad-connect-hub.lovable.app/faq
تفاصيل تقنية
العنوان الأصلي: Accessibilité : ordre-titres (heading-order) (2 occurrence(s) sur 1 page(s)) — ordinateur, téléphone
المتوقع: Conforme WCAG 2.2 AA — RGAA 4.1 : 9.1 Hiérarchie des titres
الملاحظ: .border-b:nth-child(1) > h3 Heading levels should only increase by one; .border-b:nth-child(1) > h3 Heading levels should only increase by one
الإصلاح الموصى به: axe-core (moteur de référence) : corriger chaque élément cité.
- #21ملاحظةتحسين الظهور في محركات البحث — / (Chromium (محرّك Chrome))
الصفحة: https://riad-connect-hub.lovable.app/
تفاصيل تقنية
العنوان الأصلي: Référencement : 1 problème(s) sur riad-connect-hub.lovable.app
المتوقع: Canonical propre à chaque langue, og:image, titres distincts
الملاحظ: sans canonical : /; /auth; /contact; /faq (+3)
الإصلاح الموصى به: Canonical auto-référent par langue, og:image/og:title partout, titre et canonical sur chaque page.
حسب الموضوع
- الأمان والثقة — أي ثغرة تعرّض حسابات العملاء وبياناتهم للخطر؛ وفقدان الثقة يكلّف الحجوزات ويُحمّل الناشر المسؤولية.
عدد الملاحظات: 4، منها 1 حرجة أو رئيسية؛ يكفي 2 إصلاح. #2, #3, #4, #19 - إمكانية الوصول — جزء من الزوار (مستخدمو لوحة المفاتيح وضعاف البصر) لا يستطيعون الإكمال: إنها الحجوزات ضائعة، وإمكانية الوصول أصبحت التزامًا قانونيًا في عدة أسواق.
عدد الملاحظات: 5، منها 2 حرجة أو رئيسية؛ يكفي 3 إصلاح. #5, #6, #7, #12, #20 - الالتزامات القانونية — هذه المعلومات إلزامية عادةً لموقع يبيع عبر الإنترنت؛ وغيابها يعرّض الناشر للمساءلة ويقلّل طمأنة المشترين.
عدد الملاحظات: 4، منها 0 حرجة أو رئيسية؛ يكفي 2 إصلاح. #8, #9, #13, #14 - سرعة التحميل — الصفحة البطيئة تجعل الزوار يغادرون قبل رؤية العرض، خاصة على الهاتف: الحجوزات أقل.
عدد الملاحظات: 5، منها 0 حرجة أو رئيسية؛ يكفي 2 إصلاح. #10, #11, #15, #16, #17 - الظهور في محركات البحث — محركات البحث تجلب الزوار مجانًا؛ والصفحات سيئة الوصف أو الفهرسة تجلب عددًا أقل.
عدد الملاحظات: 2، منها 0 حرجة أو رئيسية؛ يكفي 2 إصلاح. #18, #21
الخطوات التالية
- إصلاح النقاط الـ5 المصنّفة «تُصلح أولًا» بالترتيب.
- تطبيق الإصلاحات المجمّعة الـ6: كل واحد منها يعالج عدة ملاحظات دفعة واحدة.
- ثم معالجة الملاحظات الثانوية المتبقية، قسمًا بعد قسم.
- إعادة تشغيل اختبار Avalyz للتحقق من الإصلاحات.
- توسيع النطاق ليشمل 5 مجالات غير مختبرة (مثلًا بحساب تجريبي).
حدود التغطية
- إمكانية الوصول : جزئي
تفاصيل تقنية
axe-core sur chaque page (bureau et téléphone) + focus clavier ; critères WCAG 2.2 et RGAA 4.1 cités dans les constats ; compléments navigateur : 8 page(s) (8 pages lues sur 8 visitées (mode complet)), contraste mesuré sur 16 texte(s) (clair, et sombre sur 8 page(s)), 320 tabulation(s) (135 élément(s) vérifiés pour le focus visible, 0 fenêtre(s) modale(s) cachée(s) parcourue(s) sans clic, 0 piège(s)), noms accessibles vérifiés sur 8 page(s), 0 PDF lié(s) non audité(s)
- الانحدار البصري : لم يُختبر
تفاصيل تقنية
Aucune reference approuvee : approuve un passage comme reference.
- المسارات حسب الدور : جزئي
تفاصيل تقنية
3 pages, 57 actions relevées, 0 action jouée (lecture seule) — rôle « [email] » ; 1 autre(s) rôle(s) : voir les lignes « Profil »
- منطق العمل : جزئي
تفاصيل تقنية
logique métier décrite par le client jouée par les scénarios métier (voir la ligne « Scénarios métier ») ; aucune idée « Depuis ton idée » à rapprocher
- الواجهات البرمجية / التكامل : جزئي
تفاصيل تقنية
pas de spécification OpenAPI trouvée (/openapi.json, /swagger.json, /api-docs, /api/openapi.json…) ; sondes GET : /api → 406, /api/health → 406, /graphql → 406 — importe le contrat de l'API pour des cas par opération ; spec reconstituée depuis le navigateur (7 page(s) — 7 pages lues sur 8 visitées (mode complet), 9 appel(s) observé(s), aucune requête ajoutée) : 1 point(s) d'entrée — POST /__l5e/trackevents [?] ; 0 constat(s)
- أمن البيانات : لم يُختبر
تفاصيل تقنية
aucune base détectée (Supabase : clé anon dans la page ; Firebase : apiKey + databaseURL) — le contrôle RLS demande un accès à la base ou une clé publique visible
- سيناريوهات العمل : جزئي
تفاصيل تقنية
15 cas conçus (1 nominal, 6 secondaires, 8 limites) ; joués : 15 (mode complet : CN-1, CU-1, CU-2, CS-1, CS-2, CS-3, CS-4, CL-1, CL-2, CL-3, CL-4, CL-5, CL-6, CL-7, CL-8) ; 13 réussis / 1 échecs / 1 bloqués / 0 non jouables ; écriture autorisée, 38 soumission(s) ; exploration en jouant : 5 écran(s) découvert(s) (https://riad-connect-hub.lovable.app/book/atlas?checkIn=2026-11-10&checkOut=2026-11-12&adults=2&children=0, https://riad-connect-hub.lovable.app/book/majorelle?checkIn=2026-11-10&checkOut=2026-11-12&adults=2&children=0, https://riad-connect-hub.lovable.a
- التحليل الثابت : لم يُختبر
تفاصيل تقنية
code source non fourni (champ « URL du code source » du panneau) ou mode rapide
- اختبارات الوحدات : لم يُختبر
تفاصيل تقنية
code source non fourni (champ « URL du code source » du panneau) ou mode rapide
- المكوّنات : لم يُختبر
تفاصيل تقنية
code source non fourni (champ « URL du code source » du panneau) ou mode rapide
- مجال آخر : جزئي
تفاصيل تقنية
Niveaux
6/13 exécutés, 3 partiels, 4 non testés (sur 13 niveaux du plan) ; demandés : 6/10 faits
- مجال آخر : جزئي
تفاصيل تقنية
À vérifier (sans constat)
1 point(s) non mesuré(s), sans constat : Accessibilité : contraste à vérifier à la main — fond non uni (image, dégradé, élément superposé ou transparence) : 18 sélecteur(s) sur 8 page(s) — .tracking-\[0\.25em\] : Element's background color could not be determined due to a background gradient — 1 page(s) : / ; h1 : Element's background color could not be determined due to a background gradient — 1 page(s) : / ; .max-w-xl : Element's background color could not be determined due to a bac
مدد الاختبار
- 6779 msplan du site (0 adresse(s) à visiter en plus)
- 11188 mscréation des comptes de recette (1/1 créé(s))
- 1813 msnavigation bureau p1 (chargement 547, réseau calme 1246, relevés 20)
- 5980 msa11y bureau p1
- 216 msfocus clavier bureau p1
- 1862 mscapture bureau p1
- 1151 msnavigation bureau p2 (chargement 440, réseau calme 691, relevés 20)
- 639 msa11y bureau p2
- 110 mscapture bureau p2
- 1359 msnavigation bureau p3 (chargement 566, réseau calme 782, relevés 11)
- 692 msa11y bureau p3
- 115 mscapture bureau p3
- 1206 msnavigation bureau p4 (chargement 551, réseau calme 644, relevés 11)
- 669 msa11y bureau p4
- 117 mscapture bureau p4
- 1147 msnavigation bureau p5 (chargement 454, réseau calme 670, relevés 23)
- 549 msa11y bureau p5
- 100 mscapture bureau p5
- 1109 msnavigation bureau p6 (chargement 402, réseau calme 691, relevés 16)
- 622 msa11y bureau p6
- 135 mscapture bureau p6
- 3075 msconnexion avec le compte de test (avalyz-test-gerante-143a7d4d@test.avalyz.com) (réussie)
- 1449 msnavigation bureau p1 (chargement 385, réseau calme 1042, relevés 22)
- 765 msa11y bureau p1
- 179 mscapture bureau p1
- 1427 msnavigation bureau p2 (chargement 431, réseau calme 979, relevés 17)
- 814 msa11y bureau p2
- 2198 mscapture bureau p2
- 1411 msnavigation bureau p3 (chargement 415, réseau calme 969, relevés 27)
- 1227 msa11y bureau p3
- 551 mscapture bureau p3
- 8294 msconnexion avec le compte de test (client) (réussie)
- 1461 msnavigation bureau p1 (chargement 422, réseau calme 994, relevés 45)
- 5656 msa11y bureau p1
- 119 mscapture bureau p1
- 1518 msnavigation bureau p2 (chargement 542, réseau calme 956, relevés 20)
- 825 msa11y bureau p2
- 1836 mscapture bureau p2
- 581 mssondes (robots.txt, pages inexistantes, paramètres, limites)
- 75 msliens (0 lien(s) vérifié(s) (plafond 50), 0 fil(s) réellement utilisé(s) sur 4, délai 8000 ms par lien, périmètre 4 ms, requêtes 0 ms, lien le plus lent 0 ms, 0 non vérifié(s) (délai ou réseau), 0 erreur(s) HTTP)
قرار GO / NO-GO معلّل
تفاصيل تقنية
La recherche de disponibilités et ses bornes, la connexion, l'affichage des réservations et les contrôles de saisie de la page de réservation se comportent comme attendu (CN-1, CL-1 à CL-8, CS-2, CL-20 à CL-23). En revanche, le parcours de l'argent n'est pas démontré de bout en bout : le paiement de l'acompte n'a jamais pu être joué (CN-2, I1), le calcul RIAD10 reste non confirmé (CS-20, I3) et la gérante ne retrouve pas dans la Gestion les réservations confirmées du voyageur, défaut reproduit (C01, I4). La mise en service n'est envisageable qu'une fois ces points démontrés ou corrigés et les
الأسباب (الأدلة)
- 17 حالة مطابقة من 22 منفّذة؛ 1 غير مطابقة؛ 1 غير حاسمة؛ 3 متوقفة.
- الحالات غير المطابقة: CU-2.
- السلامة التقنية: 0 حرجة، 3 كبيرة، 17 صغيرة.
رأي الخبير
القرار: موافقة بشروط
الحجج
- انظر التفاصيل التقنية (قوي)
الأدلة : CN-1, CL-2, CL-3, CL-4, CL-5, CL-6, processus:VIS-02 - انظر التفاصيل التقنية (قوي)
الأدلة : #1 — مسار عمل يفشل — /admin, I4, CU-2, processus:ADM-01, https://riad-connect-hub.lovable.app/adm - انظر التفاصيل التقنية (قوي)
الأدلة : CN-2, I1, CS-21, I2, processus:CLI-03 - انظر التفاصيل التقنية (متوسط)
الأدلة : CS-20, I3 - انظر التفاصيل التقنية (متوسط)
الأدلة : CS-2, processus:CLI-04 - انظر التفاصيل التقنية (متوسط)
الأدلة : CL-20, CL-21, CL-22, CL-23, I1 - انظر التفاصيل التقنية (متوسط)
الأدلة : CL-1, CL-7, processus:CLI-01 - انظر التفاصيل التقنية (متوسط)
الأدلة : M03, M01, M02, https://riad-connect-hub.lovable.app/aut - انظر التفاصيل التقنية (ضعيف)
الأدلة : CS-3, CS-4, CL-8
المخاطر المتبقية
- انظر التفاصيل التقنية
- انظر التفاصيل التقنية
- انظر التفاصيل التقنية
- انظر التفاصيل التقنية
- انظر التفاصيل التقنية
- انظر التفاصيل التقنية
- انظر التفاصيل التقنية
الشروط
- انظر التفاصيل التقنية
- انظر التفاصيل التقنية
- انظر التفاصيل التقنية
- انظر التفاصيل التقنية
- انظر التفاصيل التقنية
- انظر التفاصيل التقنية
نطاق الرأي
- مختبَر : انظر التفاصيل التقنية
- غير مختبَر : انظر التفاصيل التقنية
درجة الثقة: متوسطة
تفاصيل تقنية
الحجج: La recherche de disponibilités est conforme, y compris les bornes de dates (passé, départ avant arrivée, zéro nuit) et de capacité (4 et 5 adultes).
الحجج: US-2 est en défaut reproduit : les réservations confirmées du voyageur (DZ-2610-A646A) n'apparaissent pas sur la page Gestion de la gérante ; la cause (absence réelle ou filtre de période) reste à établir.
الحجج: Le paiement de l'acompte, cœur du parcours de l'argent, n'a jamais été joué : CN-2 est non jouable deux fois et aucune réservation payée n'a pu être vérifiée.
الحجج: La règle client RIAD10 n'est pas confirmée sur les montants : le total attendu est absent après application du code sur la Suite Koutoubia, résultat non concluant.
الحجج: Les montants affichés dans Mes réservations sont conformes aux règles de taxe et d'acompte.
الحجج: La page de réservation refuse un code promo inconnu, un nom manquant et un e-mail invalide ; le refus de double réservation (CL-21) est observé mais sa précondition n'est pas établie, CN-2 n'ayant pas payé.
الحجج: La connexion refuse un mauvais mot de passe et la Gestion comme Mes réservations restent fermées sans connexion.
الحجج: Les pages de connexion et de Gestion sont encadrables par un autre site et la Gestion présente des défauts d'accessibilité.
الحجج: La FAQ est cohérente avec les règles de promo, de taxe et d'annulation, la bascule anglaise fonctionne et l'avis est refusé sans séjour passé.
المخاطر المتبقية: Encaissement de l'acompte et émission du numéro de réservation jamais observés (CN-2, I1) : un défaut sur le parcours de l'argent reste possible.
المخاطر المتبقية: Calcul RIAD10 (remise sur l'hébergement seul, taxe non remisée) non confirmé (CS-20, I3).
المخاطر المتبقية: Cause de C01 non établie : réservations absentes de la Gestion ou simple filtre de période.
المخاطر المتبقية: Règle anti-double réservation non démontrée : CL-21 a réussi sans réservation préalable établie.
المخاطر المتبقية: Annulation jusqu'à 48 h non testée (CS-1 bloqué).
المخاطر المتبقية: Sécurité des données non testée (couverture:Securite des donnees).
المخاطر المتبقية: Constats de moindre gravité omis du dossier (tronque) non examinés ici.
الشروط: Rejouer CN-2 avec un statut réussi : réservation Majorelle avec RIAD10, paiement simulé de l'acompte, total, acompte et numéro conformes à la règle du client (processus:CLI-03).
الشروط: Corriger ou expliquer C01 puis rejouer CU-2 avec succès : toute réservation confirmée du voyageur visible dans la Gestion (processus:ADM-01).
الشروط: Rejouer CS-20 avec succès : total après RIAD10 conforme à la remise sur l'hébergement seul.
الشروط: Après CN-2, rejouer CS-21 et CL-21 avec succès : réservation visible dans Mes réservations et dans la Gestion, seconde réservation des mêmes dates refusée.
الشروط: Couvrir processus:VIS-01 et processus:VIS-03 du parcours principal.
الشروط: Rendre /auth et /admin non encadrables (M03) et corriger M01 et M02.
مختبَر: processus:VIS-02 Rechercher des disponibilités (CN-1, CL-2 à CL-6)، processus:CLI-01 Se connecter et se déconnecter (CL-1)، processus:CLI-02 Réserver une chambre, partiellement (CU-1 s'arrête au choix de la chambre ; CL-20 à CL-23 sur la page de réservation)، processus:CLI-04 Consulter ses réservations (CS-2)، processus:ADM-01 Retrouver la réservation au tableau de bord (CU-2, CL-7) : défaut C01، processus:VIS-05 Consulter la FAQ (CS-3)، processus:VIS-06 Basculer le site en anglais (CS-4)، processus:CLI-06 Laisser un avis, refus seulement (CL-8)، couverture:Securite applicative، couverture:Per
غير مختبَر: processus:CLI-03 Payer l'acompte de 30 % (simulé) : CN-2 non jouable (I1)، processus:VIS-01 Consulter les chambres et les prix، processus:VIS-03 Créer un compte، processus:CLI-05 Annuler une réservation : CS-1 bloqué، processus:VIS-04 Envoyer un message de contact، processus:ADM-02 Consulter le calendrier des réservations، processus:ADM-03 Bloquer des dates، processus:ADM-04 Gérer les chambres et les prix، processus:ADM-05 Lire les messages de contact، couverture:Securite des donnees
يثبت Avalyz ما رآه ولا يضمن الباقي: ما لم يُختبر غير مشمول. دون حساب اختبار لا تُستكشف الصفحات المتصلة؛ ومع حساب اختبار، تسجيل الدخول هو النموذج الوحيد المُرسل.
التقرير الكامل للحساب (المسارات، الأدلة، صيغة ISO 29119) مخصص للحسابات.