0% found this document useful (0 votes)
36 views5 pages

Python Capstone Project - Ipynb - Colab

python project
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
36 views5 pages

Python Capstone Project - Ipynb - Colab

python project
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 5

24/09/2024, 22:02 Python Capstone Project.

ipynb - Colab

import re

class User:
def __init__(self, user_id, name, email, aadhaar_number):
self.user_id = user_id
self.name = name
self.email = email
self.aadhaar_number = aadhaar_number

class Ticket:
def __init__(self, ticket_id, seat_number, price):
self.ticket_id = ticket_id
self.seat_number = seat_number
self.price = price

class Event:
def __init__(self, event_id, date, time, venue):
self.event_id = event_id
self.date = date
self.time = time
self.venue = venue
self.tickets = []

def add_ticket(self, ticket):


self.tickets.append(ticket)

class Booking:
def __init__(self, booking_id, user_id, ticket_id, booking_status):
self.booking_id = booking_id
self.user_id = user_id
self.ticket_id = ticket_id
self.booking_status = booking_status

class BookingSystem:
def __init__(self):
self.users = []
self.events = []
self.bookings = []

def add_user(self, user):


self.users.append(user)

def add_event(self, event):


self.events.append(event)

def add_ticket(self, event_id, ticket):


event = next((e for e in self.events if e.event_id == event_id), None)
if event:
event.add_ticket(ticket)

def verify_aadhaar(self, aadhaar_number):


# Simple Aadhaar validation: 12-digit number
return bool(re.fullmatch(r'\d{12}', aadhaar_number))

def get_user_bookings(self, user_id):


return [b for b in self.bookings if b.user_id == user_id and b.booking_status == "confirmed"]

def book_ticket(self, user_id, event_id, seat_number):


user = next((u for u in self.users if u.user_id == user_id), None)
if user:
# Check if user has already booked 2 tickets
user_bookings = self.get_user_bookings(user_id)
if len(user_bookings) >= 2:
print(f"User {user.name} has already booked the maximum allowed tickets (2).")
return None

event = next((e for e in self.events if e.event_id == event_id), None)


if event:
ticket = next((t for t in event.tickets if t.seat_number == seat_number), None)
if ticket:
# Check if the ticket is already booked
if any(b.ticket_id == ticket.ticket_id for b in self.bookings):
print(f"Seat {seat_number} is already booked.")
return None

if self.verify_aadhaar(user.aadhaar_number):
booking = Booking(len(self.bookings) + 1, user_id, ticket.ticket_id, "confirmed")
self.bookings.append(booking)
print(f"Booking successful for seat {seat_number}! Booking ID: {booking.booking_id}")
return booking
else:
i t("A dh ifi ti f il d ")
https://colab.research.google.com/drive/1OxItiGLMs8unw5JSsiKuP2FVvyTDDOEx?authuser=0#printMode=true 1/5
24/09/2024, 22:02 Python Capstone Project.ipynb - Colab
print("Aadhaar verification failed.")
return None
else:
print("Invalid seat number.")
return None
else:
print("Event not found.")
return None
else:
print("User not found.")
return None

def cancel_ticket(self, user_id, booking_id):


booking = next((b for b in self.bookings if b.booking_id == booking_id and b.user_id == user_id), None)
if booking:
booking.booking_status = "cancelled"
print(f"Booking {booking_id} has been cancelled.")
return True
else:
print("Booking ID not found or does not belong to the user.")
return False

def get_available_tickets(self, event_id):


event = next((e for e in self.events if e.event_id == event_id), None)
if event:
booked_tickets = [b.ticket_id for b in self.bookings if b.booking_status == "confirmed"]
available_tickets = [t for t in event.tickets if t.ticket_id not in booked_tickets]
return available_tickets
return []

def find_user_by_aadhaar(self, aadhaar_number):


return next((u for u in self.users if u.aadhaar_number == aadhaar_number), None)

def list_user_bookings(self, user_id):


return [b for b in self.bookings if b.user_id == user_id and b.booking_status == "confirmed"]

def main():
# Initialize the booking system
system = BookingSystem()

# Create an event
event1 = Event("E001", "2024-12-25", "20:00", "Wembley Stadium")

# Add tickets to the event


tickets = [
Ticket("T001", "12A", 500),
Ticket("T002", "12B", 500),
Ticket("T003", "13A", 300),
Ticket("T004", "13B", 300),
Ticket("T005", "14A", 200),
Ticket("T006", "14B", 200),
]
for ticket in tickets:
event1.add_ticket(ticket)

# Add the event to the system


system.add_event(event1)

while True:
print("\nWelcome to the Coldplay Concert Ticket Booking System!")
print("1. Register")
print("2. Login")
print("3. Exit")
choice = input("Enter your choice (1-3): ")

if choice == "1":
# Registration
print("\n--- User Registration ---")
user_name = input("Enter your name: ").strip()
email = input("Enter your email: ").strip()
aadhaar_number = input("Enter your 12-digit Aadhaar number: ").strip()

# Validate Aadhaar
if not system.verify_aadhaar(aadhaar_number):
print("Invalid Aadhaar number. Registration failed.")
continue

# Check if user already exists


existing_user = system.find_user_by_aadhaar(aadhaar_number)
if existing_user:
print("User already exists! Please login to book a ticket.")
continue

https://colab.research.google.com/drive/1OxItiGLMs8unw5JSsiKuP2FVvyTDDOEx?authuser=0#printMode=true 2/5
24/09/2024, 22:02 Python Capstone Project.ipynb - Colab
# Create a new user
user_id = f"U{len(system.users) + 1:03}"
user = User(user_id, user_name, email, aadhaar_number)
system.add_user(user)

print(f"User registered successfully! Your User ID is {user_id}.")

elif choice == "2":


# Login
print("\n--- User Login ---")
aadhaar_number = input("Enter your Aadhaar number: ").strip()

user = system.find_user_by_aadhaar(aadhaar_number)
if not user:
print("User not found. Please register first.")
continue

print(f"Welcome back, {user.name}!")

while True:
print("\n--- Menu ---")
print("1. View Available Tickets")
print("2. Book a Ticket")
print("3. View My Bookings")
print("4. Cancel a Booking")
print("5. Logout")
user_choice = input("Enter your choice (1-5): ")

if user_choice == "1":
# View available tickets
available_tickets = system.get_available_tickets("E001")
if available_tickets:
print("\nAvailable Tickets:")
for ticket in available_tickets:
print(f"Seat Number: {ticket.seat_number}, Price: {ticket.price}")
else:
print("No tickets available.")

elif user_choice == "2":


# Book a ticket
available_tickets = system.get_available_tickets("E001")
if not available_tickets:
print("No tickets available to book.")
continue

print("\nAvailable Tickets:")
for ticket in available_tickets:
print(f"Seat Number: {ticket.seat_number}, Price: {ticket.price}")

seat_number = input("Enter the seat number you'd like to book: ").strip()


booking = system.book_ticket(user.user_id, "E001", seat_number)
if booking:
print(f"Booking ID: {booking.booking_id} for seat {seat_number} confirmed.")
else:
print("Booking failed. Please try again.")

elif user_choice == "3":


# View user's bookings
user_bookings = system.list_user_bookings(user.user_id)
if user_bookings:
print("\nYour Bookings:")
for booking in user_bookings:
ticket = next((t for t in event1.tickets if t.ticket_id == booking.ticket_id), None)
if ticket:
print(f"Booking ID: {booking.booking_id}, Seat: {ticket.seat_number}, Price: {ticket.price}")
else:
print("You have no bookings.")

elif user_choice == "4":


# Cancel a booking
user_bookings = system.list_user_bookings(user.user_id)
if not user_bookings:
print("You have no bookings to cancel.")
continue

print("\nYour Bookings:")
for booking in user_bookings:
ticket = next((t for t in event1.tickets if t.ticket_id == booking.ticket_id), None)
if ticket:
print(f"Booking ID: {booking.booking_id}, Seat: {ticket.seat_number}, Price: {ticket.price}")

try:
booking id = int(input("Enter the Booking ID you want to cancel: ").strip())
https://colab.research.google.com/drive/1OxItiGLMs8unw5JSsiKuP2FVvyTDDOEx?authuser=0#printMode=true 3/5
24/09/2024, 22:02 Python Capstone Project.ipynb - Colab
g_ ( p ( g y ) p())
success = system.cancel_ticket(user.user_id, booking_id)
if success:
print("Booking cancelled successfully.")
except ValueError:
print("Invalid Booking ID.")

elif user_choice == "5":


# Logout
print(f"Goodbye, {user.name}!")
break

else:
print("Invalid choice. Please try again.")

elif choice == "3":


# Exit
print("Thank you for using the Coldplay Concert Ticket Booking System. Goodbye!")
break

else:
print("Invalid choice. Please try again.")

if __name__ == "__main__":
main()

Welcome to the Coldplay Concert Ticket Booking System!


1. Register
2. Login
3. Exit
Enter your choice (1-3): 1

--- User Registration ---


Enter your name: vanshika
Enter your email: vanshikakhetan@123.com
Enter your 12-digit Aadhaar number: 123456789123
User registered successfully! Your User ID is U001.

Welcome to the Coldplay Concert Ticket Booking System!


1. Register
2. Login
3. Exit
Enter your choice (1-3): 2

--- User Login ---


Enter your Aadhaar number: 123456789123
Welcome back, vanshika!

--- Menu ---


1. View Available Tickets
2. Book a Ticket
3. View My Bookings
4. Cancel a Booking
5. Logout
Enter your choice (1-5): 1

Available Tickets:
Seat Number: 12A, Price: 500
Seat Number: 12B, Price: 500
Seat Number: 13A, Price: 300
Seat Number: 13B, Price: 300
Seat Number: 14A, Price: 200
Seat Number: 14B, Price: 200

--- Menu ---


1. View Available Tickets
2. Book a Ticket
3. View My Bookings
4. Cancel a Booking
5. Logout
Enter your choice (1-5): 2

Available Tickets:
Seat Number: 12A, Price: 500
Seat Number: 12B, Price: 500
Seat Number: 13A, Price: 300
Seat Number: 13B, Price: 300
Seat Number: 14A, Price: 200
Seat Number: 14B, Price: 200
Enter the seat number you'd like to book: 12A
Booking successful for seat 12A! Booking ID: 1
Booking ID: 1 for seat 12A confirmed.

https://colab.research.google.com/drive/1OxItiGLMs8unw5JSsiKuP2FVvyTDDOEx?authuser=0#printMode=true 4/5
24/09/2024, 22:02 Python Capstone Project.ipynb - Colab

https://colab.research.google.com/drive/1OxItiGLMs8unw5JSsiKuP2FVvyTDDOEx?authuser=0#printMode=true 5/5

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy