ความท้าทายของนักพัฒนาสแต็กเต็มรูปแบบของ Unstop
คำสั่งปัญหา
- มี 80 ที่นั่งในโค้ชของรถไฟที่มีเพียง 7 ที่นั่งติดต่อกันและแถวสุดท้ายเพียง 3 ที่นั่ง เพื่อความเรียบง่ายมีโค้ชเพียงคนเดียวในรถไฟขบวนนี้
- คนหนึ่งสามารถจองได้มากถึง 7 ที่นั่งในแต่ละครั้ง
- หากบุคคลจองที่นั่งลำดับความสำคัญจะต้องจองไว้ในแถวเดียว
- หากไม่มีที่นั่งในแถวเดียวการจองควรทำในลักษณะที่จองที่นั่งใกล้เคียง
สารละลาย
- สถานการณ์ปัญหาเกี่ยวข้องกับโค้ชรถไฟที่มี 80 ที่นั่งจัดเรียงเป็นแถว แต่ละที่นั่งสามารถอยู่ในหนึ่งในสองรัฐ: ว่าง ('0') หรือจอง ('1') สถานะที่นั่งจะแสดงด้วยสตริงที่เรียกว่า "all_seats" ที่มี ความยาว 80
- เพื่อคงอยู่สถานะที่นั่งสตริง "all_seats" จะถูกเก็บไว้ในฐานข้อมูล สิ่งนี้ช่วยให้โปรแกรมสามารถบันทึกการเปลี่ยนแปลงที่เกิดขึ้นกับการจองที่นั่ง
- ตรรกะในรหัสฟังก์ชั่น areseatsavailable () ตรวจสอบว่าแถวที่กำหนดมีบล็อกที่นั่งว่างที่ต่อเนื่องกันซึ่งสามารถรองรับจำนวนที่นั่งที่เฉพาะเจาะจง ต้องใช้ที่นั่งแถว ($ แถว) และจำนวนที่นั่งที่ต้องการที่จะสงวนไว้ ($ numseats)
- ฟังก์ ชั่นสำรอง () มีหน้าที่รับผิดชอบในการสำรองที่นั่งในโค้ชรถไฟ ต้องใช้สองพารามิเตอร์: Coach Array ($ Coach) และจำนวนที่นั่งที่ต้องการที่จะสงวนไว้ ($ numseats)
- ด้วยการจัดเก็บสตริง "all_seats" ในฐานข้อมูลการจองที่นั่งสามารถคงอยู่ในโปรแกรมที่แตกต่างกัน สิ่งนี้ช่วยให้โปรแกรมสามารถรักษาสถานะที่นั่งล่าสุดได้แม้หลังจากรีสตาร์ทหรือปิดแอปพลิเคชัน
วิธีเรียกใช้แอปพลิเคชัน
- ดาวน์โหลด Project Zip จาก GitHub [https://github.com/kunalpandharkar/unstop-challenge]
- ติดตั้งการพึ่งพาโครงการทั้งหมดโดยใช้คำสั่ง
- ตั้งค่าไฟล์สภาพแวดล้อมคัดลอกไฟล์ * . env.example เป็น . env ในรูทโครงการ
- อัปเดตไฟล์ . ENV พร้อมรายละเอียดการกำหนดค่าที่เหมาะสม (การตั้งค่าฐานข้อมูล ฯลฯ ) สำหรับสภาพแวดล้อมในท้องถิ่นของคุณ
- สร้างคีย์แอปพลิเคชัน:
- เริ่มเซิร์ฟเวอร์ XAMPP [mysql]
- เรียกใช้การย้ายฐานข้อมูล:
php artisan migrate:fresh
- * สำคัญมาก: ฐานข้อมูล Seeder ซึ่งแทรกสตริงที่มีความยาว 80 ในตาราง
ไฟล์ที่ใช้ในโครงการ
app/Http/Controllers/TicketBookingController
database/migrations/
database/seeders/TicketbookingSeeder
resources/views/welcome.blade.php
resources/views/ticket-info.blade.php
routes/web.php
เกี่ยวกับฉัน
นักพัฒนาเว็บสแต็คเต็มรูปแบบที่มีประสบการณ์ในการพัฒนาและปรับใช้โครงการที่ประสบความสำเร็จตามข้อกำหนดและข้อกำหนดของลูกค้าโดยมองหาบทบาทที่ท้าทายในองค์กรที่มีชื่อเสียงเพื่อใช้ประโยชน์จากทักษะของฉัน
- ลิงค์