Expérience de tour de codage de machine Flipkart

Application de covoiturage – SDE II. 2h (90min de codage + 30min de révision)

La description: Mettre en place une application de covoiturage avec la caractéristiques inférieures aux attentes.

Traits:

  1. L’application permet aux utilisateurs de partager des trajets sur un itinéraire.
  2. Les utilisateurs peuvent soit proposer un trajet partagé (Conducteur), soit consommer un trajet partagé (Passager).
  3. Les utilisateurs peuvent rechercher et sélectionner l’un des nombreux trajets disponibles sur un itinéraire avec la même source et la même destination.

Conditions:

L’application doit permettre l’intégration des utilisateurs.

add_user(user_detail)

Ajouter des détails utilisateur de base

add_vehicle(vehicle_detail)

Ajouter la détails du ou des véhicules de l’utilisateur

L’utilisateur doit être en mesure d’offrir un trajet partagé sur un itinéraire avec des détails.

offre_ride(ride_detail)

Le trajet aura des détails comme le véhicule, l’origine, la destination, les sièges disponibles. (Un trajet n’aura pas d’arrêts intermédiaires.)

Les utilisateurs peuvent sélectionner un trajet parmi plusieurs trajets proposés à l’aide d’une stratégie de sélection. (Un utilisateur peut uniquement demander une course (uniquement pour 1 ou 2 personnes))

select_ride(source, destination, sièges, selection_strategy)

Véhicule préféré (Activa/Polo/XUV)

Le plus vacant.

Le système devrait pouvoir se terminer la balade. L’utilisateur ne peut proposer un trajet pour un véhicule donné qu’une fois qu’il n’y a plus de trajets proposés actifs pour ce véhicule.

end_ride(ride_details)

Trouvez le nombre total de trajets proposés / effectués par tous les utilisateurs.

print_ride_stats()

Question bonus:

  • Si la les origines/destinations de l’utilisateur ne sont pas disponibles directement mais c’est possible via plusieurs trajets, alors la l’application doit générer plusieurs trajets. (Exemple : pour l’entrée : Bangalore à Mumbai, la sortie peut être Bangalore à Goa et Goa à Mumbai)

Autres notes:

  1. Écrire une classe de pilote pour la démo fins. Qui exécutera toutes les commandes dans une place dans le code et les cas de test.
  2. N’utilisez aucune base de données ou magasin NoSQL, utilisez la structure de données en mémoire pour l’instant.
  3. Ne créez aucune interface utilisateur pour l’application.
  4. Veuillez donner la priorité à la compilation et à l’exécution du code, et l’achèvement.
  5. Travaillez d’abord sur la sortie attendue, puis ajoutez vos propres fonctionnalités utiles.

Attentes:

  1. Assurez-vous que vous avez un code fonctionnel et démontrable.
  2. Sois sûr que la code est fonctionnellement correct.
  3. L’utilisation d’une abstraction, d’une modélisation et d’une séparation des préoccupations appropriées est requise.
  4. Le code doit être modulaire, lisible et testable à l’unité.
  5. Le code devrait facilement s’adapter aux nouvelles exigences avec un minimum de modifications.
  6. Une gestion appropriée des exceptions est requise.

Exemples de cas de test :

Embarquer 5 utilisateurs

add_user(“Rohan, M, 36”); add_vehicle(“Rohan, Swift, KA-01-12345)

add_user(“Shashank, M, 29”); add_vehicle(“Shashank, Baleno, TS-05-62395)

add_user(“Nandini, F, 29)

add_user(“Shipra, F, 27”) ; add_vehicle(“Shipra”, Polo, KA-05-41491); add_vehicle(“Shipra, Activa KA-12-12332”)

add_user(“Gaurav, M, 29)

add_user(“Rahul, M, 35 ans); add_vehicle(“Rahul”, “XUV”, KA-05-1234);

Offrez 4 trajets par 3 utilisateurs

offer_ride (“Rohan, Origine = Hyderabad, Sièges disponibles = 1, Véhicule = Rapide, KA-01-12345, Destination = Bangalore”)

offer_ride (“Shipra, Origine = Bangalore, Sièges disponibles = 1, Véhicule = Activa KA-12-12332, Destination = Mysore”)

offer_ride(“Shipra, Origine=Bangalore, Sièges disponibles=2, Véhicule=Polo, KA-05-41491, Destination=Mysore”)

offer_ride (“Shashank, Origine = Hyderabad, Sièges disponibles = 2, Véhicule = Baleno, TS-05-62395, Destination = Bangalore”)

offer_ride(“Rahul, Origine=Hyderabad, Sièges disponibles=5, Véhicule=XUV, KA-05-1234, Destination=Bangalore”)

offer_ride(“Rohan, Origine=Bangalore, Sièges disponibles=1, Véhicule=Swift, KA-01-12345, Destination=Pune”)

Cet appel devrait échouer, car un trajet a déjà été proposé par cet utilisateur pour ce véhicule.

Trouver des courses pour 4 utilisateurs

select_ride(“Nandini, Origin=Bangalore, Destination=Mysore, Seats=1, Most Vacant”)

2(c) est la sortie souhaitée.

select_ride(“Gaurav, Origine=Bangalore, Destination=Mysore, Sièges=1, Véhicule préféré=Activa”)

2(b) est la sortie désirée

select_ride(“Shashank, Origin=Mumbai, Destination=Bangalore, Seats=1, Most Vacant”)

Aucun trajet trouvé

select_ride(“Rohan, Origine=Hyderabad, Destination=Bangalore, Sièges=1, Véhicule préféré=Baleno”)

2(d) est la sortie souhaitée

select_ride(“Shashank, Origine=Hyderabad, Destination=Bangalore, Sièges=1,Véhicule préféré=Polo”)

Aucun trajet trouvé

Fin des trajets

end_ride(2-a)

end_ride(2-b)

end_ride(2-c)

end_ride(2-d)

Rechercher le nombre total de trajets par utilisateur : Remplacements pris : trajets effectués et marqués comme “terminés”. Remarque : Même si le trajet proposé n’a été effectué par aucun utilisateur, il compte comme un trajet proposé.

print_ride_stats()

Nandini : 1 prise, 0 offerte

Rohan : 1 pris, 1 offert

Shashank : 0 pris, 1 offert

Gaurav : 1 prise, 0 offerte

Rahul : 0 Pris, 0 Offert

Shipra : 0 prise, 2 offerte

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Aller en haut