d4:tp03

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
d4:tp03 [2025/10/01 18:07] – [Lister tarifs de tous les chauffeurs pour une distance donnée] dthevenotd4:tp03 [2025/10/01 18:12] (Version actuelle) – [Tester avec un programme client] dthevenot
Ligne 14: Ligne 14:
   - Un passager propose **une course en partance d’un lieu et à destination d’un autre lieu**. Pour des raisons d’affichage encore, **les lieux sont stockés sous la forme de couples longitude/latitude.** La **course** intervient à **une date et une heure donnée**. Le logiciel se charge de fournir une estimation de la date et de l’heure d’arrivée.   - Un passager propose **une course en partance d’un lieu et à destination d’un autre lieu**. Pour des raisons d’affichage encore, **les lieux sont stockés sous la forme de couples longitude/latitude.** La **course** intervient à **une date et une heure donnée**. Le logiciel se charge de fournir une estimation de la date et de l’heure d’arrivée.
   - Les chauffeurs peuvent consulter les courses qui sont dans leur périmètre d’intervention. Si la course est dans ce périmètre, ils peuvent proposer leurs services à titre de candidats. Ils peuvent alors consulter les coordonnées du passager et le contacter. Il appartient au passager de choisir le chauffeur qui réalisera sa course. Pour l’accompagner dans sa décision, grâce à la plateforme, le passager peut consulter le profil des chauffeurs et son tarif. La plateforme fournie, pour chaque chauffeur une estimation du **tarif pratiqué** ;   - Les chauffeurs peuvent consulter les courses qui sont dans leur périmètre d’intervention. Si la course est dans ce périmètre, ils peuvent proposer leurs services à titre de candidats. Ils peuvent alors consulter les coordonnées du passager et le contacter. Il appartient au passager de choisir le chauffeur qui réalisera sa course. Pour l’accompagner dans sa décision, grâce à la plateforme, le passager peut consulter le profil des chauffeurs et son tarif. La plateforme fournie, pour chaque chauffeur une estimation du **tarif pratiqué** ;
-  - Dans la première version, le tarif du chauffeur est **tarif forfaitaire (montant fixe) assorti d’un tarif kilométrique** ;+  - Dans la première version, le tarif du chauffeur est un **tarif forfaitaire (montant fixe) assorti d’un tarif kilométrique** ;
   - Pour chaque course, **la longueur du trajet est stockée**. Elle est arrondie au kilomètre le plus proche. Elle est obtenue grâce à l’API Google Maps. Cette longueur sert de base de calcul à l’estimation du tarif pratiqué par le chauffeur.   - Pour chaque course, **la longueur du trajet est stockée**. Elle est arrondie au kilomètre le plus proche. Elle est obtenue grâce à l’API Google Maps. Cette longueur sert de base de calcul à l’estimation du tarif pratiqué par le chauffeur.
   - Par ailleurs, TOPCHRONO, société soucieuse de respecter ses partenaires, chauffeurs et passages, prélève une **commission** d’apporteur d’affaire sur chacune des candidatures des chauffeurs. La commission est un montant fixe fonction de la longueur du trajet. Le montant est fixé au moyen d’un **barème progressif** (exemple : 5€ si le trajet a une longueur comprise entre 0km et 49km, 9€ s’il est compris entre 50km et 99km, etc.).     - Par ailleurs, TOPCHRONO, société soucieuse de respecter ses partenaires, chauffeurs et passages, prélève une **commission** d’apporteur d’affaire sur chacune des candidatures des chauffeurs. La commission est un montant fixe fonction de la longueur du trajet. Le montant est fixé au moyen d’un **barème progressif** (exemple : 5€ si le trajet a une longueur comprise entre 0km et 49km, 9€ s’il est compris entre 50km et 99km, etc.).  
  
 +**Remarque sur le type d’une personne :** une personne est soit « Passager » (par défaut) soit « Inscription » pour une personne qui a fait une demande d’inscription pour devenir chauffeur sans être déjà passager. Elle devient « Chauffeur » si sa demande d'inscription a été acceptée. Un passager qui demande à devenir chauffeur est un « PassagerInscription ». Si sa demande d’inscription pour devenir chauffeur est acceptée elle devient « ChauffeurPassager».
 ===== Travail préalable - Modélisation de la base de données ===== ===== Travail préalable - Modélisation de la base de données =====
   - **45min maxi** : Modéliser la base de données sous forme d’un diagramme de classes(données et liens entre classes avec multiplicités).   - **45min maxi** : Modéliser la base de données sous forme d’un diagramme de classes(données et liens entre classes avec multiplicités).
Ligne 56: Ligne 57:
   - on ne valide une inscription que si l'inscription n'a pas encore été validée(refus ou acceptation)   - on ne valide une inscription que si l'inscription n'a pas encore été validée(refus ou acceptation)
   - validation en trois temps : mise à jour du type de la personne correspondante + enregistrement du chauffeur + mise à jour du champ acceptationDate    - validation en trois temps : mise à jour du type de la personne correspondante + enregistrement du chauffeur + mise à jour du champ acceptationDate 
-**Remarque sur le type d’une personne :** une personne est soit « Passager » (par défaut) soit « Inscription » pour une personne qui a fait une demande d’inscription pour devenir chauffeur sans être déjà passager. Elle devient « Chauffeur » si sa demande d'inscription a été acceptée. Un passager qui demande à devenir chauffeur est un « PassagerInscription ». Si sa demande d’inscription pour devenir chauffeur est acceptée elle devient « ChauffeurPassager».+
  
 ===== Tester avec un programme client ===== ===== Tester avec un programme client =====
-<code ruby php pdo> 
-<?php 
-$dsn = "mysql:host=localhost;dbname=topchrono;charset=utf8"; 
-$user = "root"; 
-$pass = "root"; 
- 
-try { 
-    $pdo = new PDO($dsn, $user, $pass); 
- 
-    // Appel fonction 
-    $res = $pdo->query("SELECT tarifChauffeur(1, 15) AS prix")->fetch(); 
-    echo "Tarif Chauffeur 1 (15km) = {$res['prix']} €<br>"; 
- 
-    // Appel procédure avec paramètre 
-    $stmt = $pdo->prepare("CALL tarifChauffeurs(:distance)"); 
-    $stmt->execute([':distance' => 20]); 
-    echo "Tarifs chauffeurs pour 20 km :<br>"; 
-    foreach ($stmt as $row) { 
-        echo $row['nom'] . " → " . $row['Tarif'] . " €<br>"; 
-    } 
- 
-    // Appel procédure validation inscription 
-    $pdo->prepare("CALL validerInscription(:id)") 
-        ->execute([':id' => 5]); 
-    echo "Inscription validée pour l’utilisateur 5<br>"; 
- 
-} catch (PDOException $e) { 
-    echo "Erreur : " . $e->getMessage(); 
-} 
-?> 
-</code> 
  
 +En PHP(pdo) ou en Java(jdbc)
  • d4/tp03.1759334828.txt.gz
  • Dernière modification : 2025/10/01 18:07
  • de dthevenot