Challenge du développeur de pile complet de l'UNSTOP
Déclaration de problème
- Il y a 80 sièges dans un entraîneur d'un train avec seulement 7 sièges d'affilée et la dernière rangée de seulement 3 sièges. Pour plus de simplicité, il n'y a qu'un seul entraîneur dans ce train.
- Une personne peut réserver jusqu'à 7 sièges à la fois.
- Si la personne réserve des sièges, la priorité sera de les réserver dans une ligne.
- Si les sièges ne sont pas disponibles dans une ligne, la réservation doit être effectuée de telle manière que les sièges à proximité sont réservés.
Solution
- Le scénario du problème implique un entraîneur de train avec 80 sièges, organisé en rangées. Chaque siège peut être dans l'un des deux états: vide ('0') ou réservé ('1'). L'état du siège est représenté par une chaîne appelée "all_seats" avec une longueur de 80 .
- Pour persister l'état du siège, la chaîne "all_seats" est stockée dans une base de données. Cela permet au programme d'économiser les modifications apportées aux réservations de siège.
- Logique dans le code, la fonction areSeATSavailable () vérifie si une ligne donnée a un bloc consécutif de sièges vides qui peuvent accueillir un nombre spécifique de sièges. Il faut une rangée de sièges ($ Row) et le nombre souhaité de sièges à réserver ($ numseats)
- La fonction ReserveSeats () est responsable de la réserve des sièges dans l'entraîneur du train. Il faut deux paramètres: le tableau des entraîneurs ($ coach) et le nombre souhaité de sièges à réserver ($ numseats).
- En stockant la chaîne "All_Seats" dans une base de données, les réservations de siège peuvent être persistées entre les différents exécutions du programme. Cela permet au programme de maintenir le dernier statut de siège même après le redémarrage ou la fermeture de l'application.
Comment exécuter l'application
- Téléchargez le projet zip depuis le github [https://github.com/kunalpandharkar/unstop-challenge]
- Installez toutes les dépendances du projet en exécutant la commande
- Configurez le fichier d'environnement Copiez le fichier * .env.example sur .env dans la racine du projet.
- Mettez à jour le fichier .env avec les détails de configuration appropriés (paramètres de la base de données, etc.) pour votre environnement local.
- Générer une clé d'application:
- Démarrez le serveur XAMPP. [Mysql]
- Exécutez les migrations de la base de données:
php artisan migrate:fresh
- * Très important: Seeder de base de données qui insère la chaîne avec une longueur de 80 dans le tableau.
Fichiers utilisés dans le projet
app/Http/Controllers/TicketBookingController
database/migrations/
database/seeders/TicketbookingSeeder
resources/views/welcome.blade.php
resources/views/ticket-info.blade.php
routes/web.php
Sur moi
Développeur Web Full Stack Ayant une expérience de développement et de déploiement de projets réussis conformément aux exigences et aux spécifications du client, à la recherche d'un rôle difficile dans l'organisation réputée pour utiliser mes compétences
? Links